44"bytes"
55"context"
66"net/http"
7+ "slices"
78"testing"
89"time"
910
@@ -38,17 +39,19 @@ func TestTemplates(t *testing.T) {
3839t .Run ("Deprecated" ,func (t * testing.T ) {
3940t .Parallel ()
4041
42+ notifyEnq := & testutil.FakeNotificationsEnqueuer {}
4143owner ,user := coderdenttest .New (t ,& coderdenttest.Options {
4244Options :& coderdtest.Options {
4345IncludeProvisionerDaemon :true ,
46+ NotificationsEnqueuer :notifyEnq ,
4447},
4548LicenseOptions :& coderdenttest.LicenseOptions {
4649Features : license.Features {
4750codersdk .FeatureAccessControl :1 ,
4851},
4952},
5053})
51- client ,_ := coderdtest .CreateAnotherUser (t ,owner ,user .OrganizationID ,rbac .RoleTemplateAdmin ())
54+ client ,anotherUser := coderdtest .CreateAnotherUser (t ,owner ,user .OrganizationID ,rbac .RoleTemplateAdmin ())
5255version := coderdtest .CreateTemplateVersion (t ,client ,user .OrganizationID ,nil )
5356template := coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
5457coderdtest .AwaitTemplateVersionJobCompleted (t ,client ,version .ID )
@@ -65,6 +68,25 @@ func TestTemplates(t *testing.T) {
6568assert .True (t ,updated .Deprecated )
6669assert .NotEmpty (t ,updated .DeprecationMessage )
6770
71+ notifs := []* testutil.Notification {}
72+ for _ ,notif := range notifyEnq .Sent {
73+ if notif .TemplateID == notifications .TemplateTemplateDeprecated {
74+ notifs = append (notifs ,notif )
75+ }
76+ }
77+ require .Equal (t ,2 ,len (notifs ))
78+
79+ expectedSentTo := []string {user .UserID .String (),anotherUser .ID .String ()}
80+ slices .Sort (expectedSentTo )
81+
82+ sentTo := []string {}
83+ for _ ,notif := range notifs {
84+ sentTo = append (sentTo ,notif .UserID .String ())
85+ }
86+ slices .Sort (sentTo )
87+
88+ assert .Equal (t ,expectedSentTo ,sentTo )
89+
6890_ ,err = client .CreateWorkspace (ctx ,user .OrganizationID ,codersdk .Me , codersdk.CreateWorkspaceRequest {
6991TemplateID :template .ID ,
7092Name :"foobar" ,