@@ -432,6 +432,42 @@ describe('DefinedSchemas', () => {
432
432
expect ( testSchema . indexes ) . toBeUndefined ( ) ;
433
433
expect ( userSchema . indexes ) . toEqual ( expectedIndexes ) ;
434
434
} ) ;
435
+
436
+ it ( 'should detect protected indexes for _User class' , ( ) => {
437
+ const definedSchema = new DefinedSchemas ( { } , { } ) ;
438
+ const protectedUserIndexes = [ '_id_' , 'case_insensitive_email' , 'username_1' , 'email_1' ] ;
439
+ protectedUserIndexes . forEach ( field => {
440
+ expect ( definedSchema . isProtectedIndex ( '_User' , field ) ) . toEqual ( true ) ;
441
+ } ) ;
442
+ expect ( definedSchema . isProtectedIndex ( '_User' , 'test' ) ) . toEqual ( false ) ;
443
+ } ) ;
444
+
445
+ it ( 'should detect protected indexes for _Role class' , ( ) => {
446
+ const definedSchema = new DefinedSchemas ( { } , { } ) ;
447
+ expect ( definedSchema . isProtectedIndex ( '_Role' , 'name_1' ) ) . toEqual ( true ) ;
448
+ expect ( definedSchema . isProtectedIndex ( '_Role' , 'test' ) ) . toEqual ( false ) ;
449
+ } ) ;
450
+
451
+ it ( 'should detect protected indexes for _Idempotency class' , ( ) => {
452
+ const definedSchema = new DefinedSchemas ( { } , { } ) ;
453
+ expect ( definedSchema . isProtectedIndex ( '_Idempotency' , 'reqId_1' ) ) . toEqual ( true ) ;
454
+ expect ( definedSchema . isProtectedIndex ( '_Idempotency' , 'test' ) ) . toEqual ( false ) ;
455
+ } ) ;
456
+
457
+ it ( 'should not detect protected indexes on user defined class' , ( ) => {
458
+ const definedSchema = new DefinedSchemas ( { } , { } ) ;
459
+ const protectedIndexes = [
460
+ 'case_insensitive_email' ,
461
+ 'username_1' ,
462
+ 'email_1' ,
463
+ 'reqId_1' ,
464
+ 'name_1' ,
465
+ ] ;
466
+ protectedIndexes . forEach ( field => {
467
+ expect ( definedSchema . isProtectedIndex ( 'ExampleClass' , field ) ) . toEqual ( false ) ;
468
+ } ) ;
469
+ expect ( definedSchema . isProtectedIndex ( 'ExampleClass' , '_id_' ) ) . toEqual ( true ) ;
470
+ } ) ;
435
471
} ) ;
436
472
437
473
describe ( 'ClassLevelPermissions' , ( ) => {
0 commit comments