@@ -291,6 +291,60 @@ func TestDatabaseUsers_CreateWithAWSIAMType(t *testing.T) {
291
291
}
292
292
}
293
293
294
+ func TestDatabaseUsers_CreateWithOIDC (t * testing.T ) {
295
+ client , mux , teardown := setup ()
296
+ defer teardown ()
297
+
298
+ groupID := "1"
299
+
300
+ createRequest := & DatabaseUser {
301
+ DatabaseName : "$external" ,
302
+ Username : "0oaqyt9fc2ySTWnA0357/test-cfn-config-name" ,
303
+ GroupID : groupID ,
304
+ OIDCAuthType : "IDP_GROUP" ,
305
+ Scopes : []Scope {},
306
+ }
307
+
308
+ mux .HandleFunc (fmt .Sprintf ("/api/atlas/v1.0/groups/%s/databaseUsers" , groupID ), func (w http.ResponseWriter , r * http.Request ) {
309
+ expected := map [string ]interface {}{
310
+ "databaseName" : "$external" ,
311
+ "username" : "0oaqyt9fc2ySTWnA0357/test-cfn-config-name" ,
312
+ "groupId" : groupID ,
313
+ "oidcAuthType" : "IDP_GROUP" ,
314
+ "scopes" : []interface {}{},
315
+ }
316
+
317
+ var v map [string ]interface {}
318
+ err := json .NewDecoder (r .Body ).Decode (& v )
319
+ if err != nil {
320
+ t .Fatalf ("decode json: %v" , err )
321
+ }
322
+
323
+ if ! reflect .DeepEqual (v , expected ) {
324
+ t .Errorf ("Request body\n got=%#v\n want=%#v" , v , expected )
325
+ }
326
+
327
+ fmt .Fprint (w , `{
328
+ "databaseName": "$external",
329
+ "username": "0oaqyt9fc2ySTWnA0357/test-cfn-config-name",
330
+ "groupId": "1",
331
+ "oidcAuthType": "IDP_GROUP",
332
+ "scopes" : []
333
+ }` )
334
+ })
335
+
336
+ dbUser , _ , err := client .DatabaseUsers .Create (ctx , groupID , createRequest )
337
+ if err != nil {
338
+ t .Errorf ("DatabaseUsers.Create returned error: %v" , err )
339
+ }
340
+ if username := dbUser .Username ; username != "0oaqyt9fc2ySTWnA0357/test-cfn-config-name" {
341
+ t .Errorf ("expected username '%s', received '%s'" , "0oaqyt9fc2ySTWnA0357/test-cfn-config-name" , username )
342
+ }
343
+ if id := dbUser .GroupID ; id != groupID {
344
+ t .Errorf ("expected groupId '%s', received '%s'" , groupID , id )
345
+ }
346
+ }
347
+
294
348
func TestDatabaseUsers_Create (t * testing.T ) {
295
349
client , mux , teardown := setup ()
296
350
defer teardown ()
0 commit comments