@@ -432,6 +432,42 @@ describe('DefinedSchemas', () => {
432432 expect ( testSchema . indexes ) . toBeUndefined ( ) ;
433433 expect ( userSchema . indexes ) . toEqual ( expectedIndexes ) ;
434434 } ) ;
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+ } ) ;
435471 } ) ;
436472
437473 describe ( 'ClassLevelPermissions' , ( ) => {
0 commit comments