@@ -583,6 +583,84 @@ def test_installation_creates_new_owner_if_dne_default_app(self, mock_refresh):
583
583
repos_affected = [("12321" , "R_kgDOG2tZYQ" ), ("12343" , "R_kgDOG2tABC" )],
584
584
)
585
585
586
+ @patch ("shared.events.amplitude.AmplitudeEventPublisher.publish" )
587
+ @patch ("services.task.TaskService.refresh" )
588
+ def test_installation_publishes_amplitude_event_without_installer (
589
+ self , mock_refresh , mock_amplitude_publish
590
+ ):
591
+ username , service_id = "newuser" , 123456
592
+
593
+ self ._post_event_data (
594
+ event = GitHubWebhookEvents .INSTALLATION ,
595
+ data = {
596
+ "installation" : {
597
+ "id" : 4 ,
598
+ "repository_selection" : "selected" ,
599
+ "account" : {"id" : service_id , "login" : username },
600
+ "app_id" : DEFAULT_APP_ID ,
601
+ },
602
+ "repositories" : [
603
+ {"id" : "12321" , "node_id" : "R_kgDOG2tZYQ" },
604
+ {"id" : "12343" , "node_id" : "R_kgDOG2tABC" },
605
+ ],
606
+ "sender" : {"type" : "User" },
607
+ },
608
+ )
609
+
610
+ owner_set = Owner .objects .filter (
611
+ service = "github" , service_id = service_id , username = username
612
+ )
613
+ assert owner_set .exists ()
614
+ owner = owner_set .first ()
615
+
616
+ mock_amplitude_publish .assert_called_with (
617
+ "App Installed" ,
618
+ {
619
+ "user_ownerid" : owner .ownerid ,
620
+ "ownerid" : owner .ownerid ,
621
+ },
622
+ )
623
+
624
+ @patch ("shared.events.amplitude.AmplitudeEventPublisher.publish" )
625
+ @patch ("services.task.TaskService.refresh" )
626
+ def test_installation_publishes_amplitude_event_with_installer (
627
+ self , mock_refresh , mock_amplitude_publish
628
+ ):
629
+ installer = OwnerFactory (service = "github" , username = "installer_username" )
630
+
631
+ username , service_id = "newuser" , 123456
632
+
633
+ self ._post_event_data (
634
+ event = GitHubWebhookEvents .INSTALLATION ,
635
+ data = {
636
+ "installation" : {
637
+ "id" : 4 ,
638
+ "repository_selection" : "selected" ,
639
+ "account" : {"id" : service_id , "login" : username },
640
+ "app_id" : DEFAULT_APP_ID ,
641
+ },
642
+ "repositories" : [
643
+ {"id" : "12321" , "node_id" : "R_kgDOG2tZYQ" },
644
+ {"id" : "12343" , "node_id" : "R_kgDOG2tABC" },
645
+ ],
646
+ "sender" : {"type" : "User" , "login" : "installer_username" },
647
+ },
648
+ )
649
+
650
+ owner_set = Owner .objects .filter (
651
+ service = "github" , service_id = service_id , username = username
652
+ )
653
+ assert owner_set .exists ()
654
+ owner = owner_set .first ()
655
+
656
+ mock_amplitude_publish .assert_called_with (
657
+ "App Installed" ,
658
+ {
659
+ "user_ownerid" : installer .ownerid ,
660
+ "ownerid" : owner .ownerid ,
661
+ },
662
+ )
663
+
586
664
@patch (
587
665
"services.task.TaskService.refresh" ,
588
666
lambda self ,
0 commit comments