@@ -571,6 +571,59 @@ func TestPostWorkspacesByOrganization(t *testing.T) {
571
571
require .Equal (t , http .StatusConflict , apiErr .StatusCode ())
572
572
})
573
573
574
+ t .Run ("CreateSendsNotification" , func (t * testing.T ) {
575
+ t .Parallel ()
576
+
577
+ enqueuer := notificationstest.FakeEnqueuer {}
578
+ client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true , NotificationsEnqueuer : & enqueuer })
579
+ user := coderdtest .CreateFirstUser (t , client )
580
+ memberClient , memberUser := coderdtest .CreateAnotherUser (t , client , user .OrganizationID )
581
+
582
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
583
+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
584
+ coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
585
+
586
+ workspace := coderdtest .CreateWorkspace (t , memberClient , template .ID )
587
+ coderdtest .AwaitWorkspaceBuildJobCompleted (t , memberClient , workspace .LatestBuild .ID )
588
+
589
+ sent := enqueuer .Sent (notificationstest .WithTemplateID (notifications .TemplateWorkspaceCreated ))
590
+ require .Len (t , sent , 1 )
591
+ require .Equal (t , memberUser .ID , sent [0 ].UserID )
592
+ require .Contains (t , sent [0 ].Targets , template .ID )
593
+ require .Contains (t , sent [0 ].Targets , workspace .ID )
594
+ require .Contains (t , sent [0 ].Targets , workspace .OrganizationID )
595
+ require .Contains (t , sent [0 ].Targets , workspace .OwnerID )
596
+ })
597
+
598
+ t .Run ("CreateSendsNotificationToCorrectUser" , func (t * testing.T ) {
599
+ t .Parallel ()
600
+
601
+ enqueuer := notificationstest.FakeEnqueuer {}
602
+ client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerDaemon : true , NotificationsEnqueuer : & enqueuer })
603
+ user := coderdtest .CreateFirstUser (t , client )
604
+ _ , memberUser := coderdtest .CreateAnotherUser (t , client , user .OrganizationID )
605
+
606
+ version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , nil )
607
+ template := coderdtest .CreateTemplate (t , client , user .OrganizationID , version .ID )
608
+ coderdtest .AwaitTemplateVersionJobCompleted (t , client , version .ID )
609
+
610
+ ctx := testutil .Context (t , testutil .WaitShort )
611
+ workspace , err := client .CreateUserWorkspace (ctx , memberUser .Username , codersdk.CreateWorkspaceRequest {
612
+ TemplateID : template .ID ,
613
+ Name : coderdtest .RandomUsername (t ),
614
+ })
615
+ require .NoError (t , err )
616
+ coderdtest .AwaitWorkspaceBuildJobCompleted (t , client , workspace .LatestBuild .ID )
617
+
618
+ sent := enqueuer .Sent (notificationstest .WithTemplateID (notifications .TemplateWorkspaceCreated ))
619
+ require .Len (t , sent , 1 )
620
+ require .Equal (t , memberUser .ID , sent [0 ].UserID )
621
+ require .Contains (t , sent [0 ].Targets , template .ID )
622
+ require .Contains (t , sent [0 ].Targets , workspace .ID )
623
+ require .Contains (t , sent [0 ].Targets , workspace .OrganizationID )
624
+ require .Contains (t , sent [0 ].Targets , workspace .OwnerID )
625
+ })
626
+
574
627
t .Run ("CreateWithAuditLogs" , func (t * testing.T ) {
575
628
t .Parallel ()
576
629
auditor := audit .NewMock ()
@@ -3596,15 +3649,14 @@ func TestWorkspaceNotifications(t *testing.T) {
3596
3649
3597
3650
// Then
3598
3651
require .NoError (t , err , "mark workspace as dormant" )
3599
- sent := notifyEnq .Sent ()
3600
- require .Len (t , sent , 2 )
3601
- // notifyEnq.Sent[0] is an event for created user account
3602
- require .Equal (t , sent [1 ].TemplateID , notifications .TemplateWorkspaceDormant )
3603
- require .Equal (t , sent [1 ].UserID , workspace .OwnerID )
3604
- require .Contains (t , sent [1 ].Targets , template .ID )
3605
- require .Contains (t , sent [1 ].Targets , workspace .ID )
3606
- require .Contains (t , sent [1 ].Targets , workspace .OrganizationID )
3607
- require .Contains (t , sent [1 ].Targets , workspace .OwnerID )
3652
+ sent := notifyEnq .Sent (notificationstest .WithTemplateID (notifications .TemplateWorkspaceDormant ))
3653
+ require .Len (t , sent , 1 )
3654
+ require .Equal (t , sent [0 ].TemplateID , notifications .TemplateWorkspaceDormant )
3655
+ require .Equal (t , sent [0 ].UserID , workspace .OwnerID )
3656
+ require .Contains (t , sent [0 ].Targets , template .ID )
3657
+ require .Contains (t , sent [0 ].Targets , workspace .ID )
3658
+ require .Contains (t , sent [0 ].Targets , workspace .OrganizationID )
3659
+ require .Contains (t , sent [0 ].Targets , workspace .OwnerID )
3608
3660
})
3609
3661
3610
3662
t .Run ("InitiatorIsOwner" , func (t * testing.T ) {
@@ -3635,7 +3687,7 @@ func TestWorkspaceNotifications(t *testing.T) {
3635
3687
3636
3688
// Then
3637
3689
require .NoError (t , err , "mark workspace as dormant" )
3638
- require .Len (t , notifyEnq .Sent (), 0 )
3690
+ require .Len (t , notifyEnq .Sent (notificationstest . WithTemplateID ( notifications . TemplateWorkspaceDormant ) ), 0 )
3639
3691
})
3640
3692
3641
3693
t .Run ("ActivateDormantWorkspace" , func (t * testing.T ) {
0 commit comments