@@ -28,6 +28,7 @@ import {
2828 adminAccountId ,
2929 slack
3030} from './fixtures/db_client' ;
31+ import { RouterTypes } from '../src/models/permission' ;
3132
3233const changeStrategy = async ( strategyId , newOperation , status , environment ) => {
3334 const strategy = await ConfigStrategy . findById ( strategyId ) ;
@@ -928,4 +929,71 @@ describe('Testing domain [Adm-GraphQL] ', () => {
928929 expect ( req . statusCode ) . toBe ( 200 ) ;
929930 expect ( JSON . parse ( req . text ) ) . toMatchObject ( JSON . parse ( expected ) ) ;
930931 } ) ;
932+
933+ test ( 'CLIENT_SUITE - Should return list of Groups permissions' , async ( ) => {
934+ const req = await request ( app )
935+ . post ( '/adm-graphql' )
936+ . set ( 'Authorization' , `Bearer ${ adminMasterAccountToken } ` )
937+ . send ( graphqlUtils . permissionsQuery ( domainId , undefined , `"UPDATE","DELETE"` , RouterTypes . GROUP ) ) ;
938+
939+ const exptected = '[{"action":"UPDATE","result":"ok"},{"action":"DELETE","result":"ok"}]' ;
940+ expect ( req . statusCode ) . toBe ( 200 ) ;
941+ expect ( JSON . parse ( req . text ) ) . not . toBe ( null ) ;
942+ expect ( JSON . parse ( req . text ) . data . permission [ 0 ] . name ) . toBe ( "Group Test" ) ;
943+ expect ( JSON . parse ( req . text ) . data . permission [ 0 ] . permissions ) . toMatchObject ( JSON . parse ( exptected ) ) ;
944+ } ) ;
945+
946+ test ( 'CLIENT_SUITE - Should return list of Groups permissions - Unauthorized access' , async ( ) => {
947+ const req = await request ( app )
948+ . post ( '/adm-graphql' )
949+ . set ( 'Authorization' , `Bearer ${ adminAccountToken } ` )
950+ . send ( graphqlUtils . permissionsQuery ( domainId , undefined , `"UPDATE","DELETE"` , RouterTypes . GROUP ) ) ;
951+
952+ const exptected = '[{"action":"UPDATE","result":"nok"},{"action":"DELETE","result":"nok"}]' ;
953+ expect ( req . statusCode ) . toBe ( 200 ) ;
954+ expect ( JSON . parse ( req . text ) ) . not . toBe ( null ) ;
955+ expect ( JSON . parse ( req . text ) . data . permission [ 0 ] . name ) . toBe ( "Group Test" ) ;
956+ expect ( JSON . parse ( req . text ) . data . permission [ 0 ] . permissions ) . toMatchObject ( JSON . parse ( exptected ) ) ;
957+ } ) ;
958+
959+ test ( 'CLIENT_SUITE - Should return list of Configs permissions' , async ( ) => {
960+ const req = await request ( app )
961+ . post ( '/adm-graphql' )
962+ . set ( 'Authorization' , `Bearer ${ adminMasterAccountToken } ` )
963+ . send ( graphqlUtils . permissionsQuery ( domainId , groupConfigId , `"UPDATE","DELETE"` , RouterTypes . CONFIG ) ) ;
964+
965+ const exptected = '[{"action":"UPDATE","result":"ok"},{"action":"DELETE","result":"ok"}]' ;
966+ expect ( req . statusCode ) . toBe ( 200 ) ;
967+ expect ( JSON . parse ( req . text ) ) . not . toBe ( null ) ;
968+ expect ( JSON . parse ( req . text ) . data . permission [ 0 ] . name ) . toBe ( "TEST_CONFIG_KEY" ) ;
969+ expect ( JSON . parse ( req . text ) . data . permission [ 1 ] . name ) . toBe ( "TEST_CONFIG_KEY_PRD_QA" ) ;
970+ expect ( JSON . parse ( req . text ) . data . permission [ 0 ] . permissions ) . toMatchObject ( JSON . parse ( exptected ) ) ;
971+ expect ( JSON . parse ( req . text ) . data . permission [ 1 ] . permissions ) . toMatchObject ( JSON . parse ( exptected ) ) ;
972+ } ) ;
973+
974+ test ( 'CLIENT_SUITE - Should return list of Configs permissions - Unauthorized access' , async ( ) => {
975+ const req = await request ( app )
976+ . post ( '/adm-graphql' )
977+ . set ( 'Authorization' , `Bearer ${ adminAccountToken } ` )
978+ . send ( graphqlUtils . permissionsQuery ( domainId , groupConfigId , `"UPDATE","DELETE"` , RouterTypes . CONFIG ) ) ;
979+
980+ const exptected = '[{"action":"UPDATE","result":"nok"},{"action":"DELETE","result":"nok"}]' ;
981+ expect ( req . statusCode ) . toBe ( 200 ) ;
982+ expect ( JSON . parse ( req . text ) ) . not . toBe ( null ) ;
983+ expect ( JSON . parse ( req . text ) . data . permission [ 0 ] . name ) . toBe ( "TEST_CONFIG_KEY" ) ;
984+ expect ( JSON . parse ( req . text ) . data . permission [ 1 ] . name ) . toBe ( "TEST_CONFIG_KEY_PRD_QA" ) ;
985+ expect ( JSON . parse ( req . text ) . data . permission [ 0 ] . permissions ) . toMatchObject ( JSON . parse ( exptected ) ) ;
986+ expect ( JSON . parse ( req . text ) . data . permission [ 1 ] . permissions ) . toMatchObject ( JSON . parse ( exptected ) ) ;
987+ } ) ;
988+
989+ test ( 'CLIENT_SUITE - Should NOT return list of permissions - Invalid router' , async ( ) => {
990+ const req = await request ( app )
991+ . post ( '/adm-graphql' )
992+ . set ( 'Authorization' , `Bearer ${ adminAccountToken } ` )
993+ . send ( graphqlUtils . permissionsQuery ( domainId , undefined , `"UPDATE","DELETE"` , RouterTypes . DOMAIN ) ) ;
994+
995+ expect ( req . statusCode ) . toBe ( 200 ) ;
996+ expect ( JSON . parse ( req . text ) ) . not . toBe ( null ) ;
997+ expect ( JSON . parse ( req . text ) . data . permission ) . toStrictEqual ( [ ] ) ;
998+ } ) ;
931999} ) ;
0 commit comments