@@ -432,6 +432,40 @@ 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+ it ( 'should detect protected indexes for _Role class' , ( ) => {
445+ const definedSchema = new DefinedSchemas ( { } , { } ) ;
446+ expect ( definedSchema . isProtectedIndex ( '_Role' , 'name_1' ) ) . toEqual ( true ) ;
447+ expect ( definedSchema . isProtectedIndex ( '_Role' , 'test' ) ) . toEqual ( false ) ;
448+ } ) ;
449+ it ( 'should detect protected indexes for _Idempotency class' , ( ) => {
450+ const definedSchema = new DefinedSchemas ( { } , { } ) ;
451+ expect ( definedSchema . isProtectedIndex ( '_Idempotency' , 'reqId_1' ) ) . toEqual ( true ) ;
452+ expect ( definedSchema . isProtectedIndex ( '_Idempotency' , 'test' ) ) . toEqual ( false ) ;
453+ } ) ;
454+
455+ it ( 'should not detect protected indexes on user defined class' , ( ) => {
456+ const definedSchema = new DefinedSchemas ( { } , { } ) ;
457+ const protectedIndexes = [
458+ 'case_insensitive_email' ,
459+ 'username_1' ,
460+ 'email_1' ,
461+ 'reqId_1' ,
462+ 'name_1' ,
463+ ] ;
464+ protectedIndexes . forEach ( field => {
465+ expect ( definedSchema . isProtectedIndex ( 'ExampleClass' , field ) ) . toEqual ( false ) ;
466+ } ) ;
467+ expect ( definedSchema . isProtectedIndex ( 'ExampleClass' , '_id_' ) ) . toEqual ( true ) ;
468+ } ) ;
435469 } ) ;
436470
437471 describe ( 'ClassLevelPermissions' , ( ) => {
0 commit comments