@@ -11,6 +11,9 @@ import (
11
11
"github.com/stretchr/testify/assert"
12
12
"github.com/stretchr/testify/require"
13
13
14
+ "github.com/coder/coder/v2/coderd/audit"
15
+ "github.com/coder/coder/v2/coderd/coderdtest"
16
+ "github.com/coder/coder/v2/coderd/database"
14
17
"github.com/coder/coder/v2/codersdk"
15
18
"github.com/coder/coder/v2/cryptorand"
16
19
"github.com/coder/coder/v2/enterprise/coderd"
@@ -109,21 +112,34 @@ func TestScim(t *testing.T) {
109
112
defer cancel ()
110
113
111
114
scimAPIKey := []byte ("hi" )
115
+ mockAudit := audit .NewMock ()
112
116
client , _ := coderdenttest .New (t , & coderdenttest.Options {
113
- SCIMAPIKey : scimAPIKey ,
117
+ Options : & coderdtest.Options {Auditor : mockAudit },
118
+ SCIMAPIKey : scimAPIKey ,
119
+ AuditLogging : true ,
114
120
LicenseOptions : & coderdenttest.LicenseOptions {
115
121
AccountID : "coolin" ,
116
122
Features : license.Features {
117
- codersdk .FeatureSCIM : 1 ,
123
+ codersdk .FeatureSCIM : 1 ,
124
+ codersdk .FeatureAuditLog : 1 ,
118
125
},
119
126
},
120
127
})
128
+ mockAudit .ResetLogs ()
121
129
122
130
sUser := makeScimUser (t )
123
131
res , err := client .Request (ctx , "POST" , "/scim/v2/Users" , sUser , setScimAuth (scimAPIKey ))
124
132
require .NoError (t , err )
125
133
defer res .Body .Close ()
126
- assert .Equal (t , http .StatusOK , res .StatusCode )
134
+ require .Equal (t , http .StatusOK , res .StatusCode )
135
+
136
+ aLogs := mockAudit .AuditLogs ()
137
+ require .Len (t , aLogs , 1 )
138
+ af := map [string ]string {}
139
+ err = json .Unmarshal ([]byte (aLogs [0 ].AdditionalFields ), & af )
140
+ require .NoError (t , err )
141
+ assert .Equal (t , coderd .SCIMAuditAdditionalFields , af )
142
+ assert .Equal (t , database .AuditActionCreate , aLogs [0 ].Action )
127
143
128
144
userRes , err := client .Users (ctx , codersdk.UsersRequest {Search : sUser .Emails [0 ].Value })
129
145
require .NoError (t , err )
@@ -306,21 +322,27 @@ func TestScim(t *testing.T) {
306
322
defer cancel ()
307
323
308
324
scimAPIKey := []byte ("hi" )
325
+ mockAudit := audit .NewMock ()
309
326
client , _ := coderdenttest .New (t , & coderdenttest.Options {
310
- SCIMAPIKey : scimAPIKey ,
327
+ Options : & coderdtest.Options {Auditor : mockAudit },
328
+ SCIMAPIKey : scimAPIKey ,
329
+ AuditLogging : true ,
311
330
LicenseOptions : & coderdenttest.LicenseOptions {
312
331
AccountID : "coolin" ,
313
332
Features : license.Features {
314
- codersdk .FeatureSCIM : 1 ,
333
+ codersdk .FeatureSCIM : 1 ,
334
+ codersdk .FeatureAuditLog : 1 ,
315
335
},
316
336
},
317
337
})
338
+ mockAudit .ResetLogs ()
318
339
319
340
sUser := makeScimUser (t )
320
341
res , err := client .Request (ctx , "POST" , "/scim/v2/Users" , sUser , setScimAuth (scimAPIKey ))
321
342
require .NoError (t , err )
322
343
defer res .Body .Close ()
323
344
assert .Equal (t , http .StatusOK , res .StatusCode )
345
+ mockAudit .ResetLogs ()
324
346
325
347
err = json .NewDecoder (res .Body ).Decode (& sUser )
326
348
require .NoError (t , err )
@@ -333,6 +355,10 @@ func TestScim(t *testing.T) {
333
355
_ = res .Body .Close ()
334
356
assert .Equal (t , http .StatusOK , res .StatusCode )
335
357
358
+ aLogs := mockAudit .AuditLogs ()
359
+ require .Len (t , aLogs , 1 )
360
+ assert .Equal (t , database .AuditActionWrite , aLogs [0 ].Action )
361
+
336
362
userRes , err := client .Users (ctx , codersdk.UsersRequest {Search : sUser .Emails [0 ].Value })
337
363
require .NoError (t , err )
338
364
require .Len (t , userRes .Users , 1 )
0 commit comments