diff --git a/package.json b/package.json index c3e5c80..e267cb9 100644 --- a/package.json +++ b/package.json @@ -96,7 +96,13 @@ "json", "ts" ], - "rootDir": "src", + "rootDir": ".", + "modulePaths": [ + "" + ], + "moduleDirectories": [ + "node_modules" + ], "testRegex": ".*\\.spec\\.ts$", "transform": { "^.+\\.(t|j)s$": "ts-jest" diff --git a/src/authentication/authentication.guard.spec.ts b/src/authentication/authentication.guard.spec.ts index a2b9ac3..fc6fed1 100644 --- a/src/authentication/authentication.guard.spec.ts +++ b/src/authentication/authentication.guard.spec.ts @@ -32,19 +32,25 @@ class NoClassAuthController { } @Get('required-permission') - @RequireSomePermission(PERMISSIONS.ZENDESK.OPEN) + @RequireSomePermission(PERMISSIONS.ZENDESK.permissions.OPEN) async requiredPermission(@Body() body) { return { body }; } @Get('has-all-permissions') - @RequireAllPermissions(PERMISSIONS.ZENDESK.OPEN, PERMISSIONS.METABASE.OPEN) + @RequireAllPermissions( + PERMISSIONS.ZENDESK.permissions.OPEN, + PERMISSIONS.METABASE.permissions.OPEN, + ) async hasAllPermissions(@Body() body) { return { body }; } @Get('has-some-permission') - @RequireSomePermission(PERMISSIONS.ZENDESK.OPEN, PERMISSIONS.METABASE.OPEN) + @RequireSomePermission( + PERMISSIONS.ZENDESK.permissions.OPEN, + PERMISSIONS.METABASE.permissions.OPEN, + ) async hasSomePermission(@Body() body) { return { body }; } @@ -52,7 +58,7 @@ class NoClassAuthController { @Controller('class-auth-condition') @AuthenticateCondition((req) => req.get('x-on-class') === 'ok') -@RequireSomePermission(PERMISSIONS.METABASE.OPEN) +@RequireSomePermission(PERMISSIONS.METABASE.permissions.OPEN) class ClassAuthConditionController { @Get('body') async getBody(@Body() body) { @@ -67,7 +73,7 @@ class ClassAuthConditionController { @Get('required-permission') @AuthenticateCondition((req) => req.get('x-on-route') === 'ok') - @RequireSomePermission(PERMISSIONS.ZENDESK.OPEN) + @RequireSomePermission(PERMISSIONS.ZENDESK.permissions.OPEN) async requiredPermission(@Body() body) { return { body }; } @@ -430,17 +436,17 @@ describe('authentication.guard', () => { NoClassAuthTest(null, null); ClassAuthConditionTest(null, null); - const tokenZ = CreateToken([PERMISSIONS.ZENDESK.OPEN]); + const tokenZ = CreateToken([PERMISSIONS.ZENDESK.permissions.OPEN]); NoClassAuthTest(tokenZ, ['zendesk']); ClassAuthConditionTest(tokenZ, ['zendesk']); - const tokenM = CreateToken([PERMISSIONS.METABASE.OPEN]); + const tokenM = CreateToken([PERMISSIONS.METABASE.permissions.OPEN]); NoClassAuthTest(tokenM, ['metabase']); ClassAuthConditionTest(tokenM, ['metabase']); const tokenZM = CreateToken([ - PERMISSIONS.ZENDESK.OPEN, - PERMISSIONS.METABASE.OPEN, + PERMISSIONS.ZENDESK.permissions.OPEN, + PERMISSIONS.METABASE.permissions.OPEN, ]); NoClassAuthTest(tokenZM, ['zendesk', 'metabase']); ClassAuthConditionTest(tokenZM, ['zendesk', 'metabase']); diff --git a/src/authentication/user.decorator.spec.ts b/src/authentication/user.decorator.spec.ts index 91eee24..77b084d 100644 --- a/src/authentication/user.decorator.spec.ts +++ b/src/authentication/user.decorator.spec.ts @@ -45,7 +45,9 @@ describe('user.decorator', () => { const fakeUserPayload = { user_id: 'd50d33c7-6c2b-463c-861f-e21667e7c125', username: 'super.admin', - permissions: [PERMISSIONS.METABASE.OPEN].map(({ seqid }) => seqid), + permissions: [PERMISSIONS.METABASE.permissions.OPEN].map( + ({ seqid }) => seqid, + ), customer_id: '9d18e8ae-24b9-41a3-9e8f-a25ce57555b11', customer_name: 'dadosfera', customer_tier: 'BASIC', diff --git a/src/modules/catalog/catalog.controller.ts b/src/modules/catalog/catalog.controller.ts index 1d32ebe..b627f73 100644 --- a/src/modules/catalog/catalog.controller.ts +++ b/src/modules/catalog/catalog.controller.ts @@ -32,7 +32,9 @@ import { DadosferaLogger } from 'dadosfera-logs'; action = req.method; } - return user.permissions.includes(PERMISSIONS.CATALOG[action].seqid); + return user.permissions.includes( + PERMISSIONS.CATALOG.permissions[action].seqid, + ); }) export class CatalogController { logger: any; diff --git a/src/modules/inputs/inputs.controller.ts b/src/modules/inputs/inputs.controller.ts index 38dd1ba..ce2ed85 100644 --- a/src/modules/inputs/inputs.controller.ts +++ b/src/modules/inputs/inputs.controller.ts @@ -55,7 +55,7 @@ import { action = 'GET_ENTITIES'; } - return user.permissions.includes(PERMISSIONS.INPUT[action].seqid); + return user.permissions.includes(PERMISSIONS.INPUT.permissions[action].seqid); }) export class InputsController { inputService: InputsService; diff --git a/src/modules/outputs/outputs.controllers.ts b/src/modules/outputs/outputs.controllers.ts index ba7b283..45b07f1 100644 --- a/src/modules/outputs/outputs.controllers.ts +++ b/src/modules/outputs/outputs.controllers.ts @@ -34,7 +34,9 @@ import { DadosferaLogger } from 'dadosfera-logs'; action = req.method; } - return user.permissions.includes(PERMISSIONS.OUTPUT[action].seqid); + return user.permissions.includes( + PERMISSIONS.OUTPUT.permissions[action].seqid, + ); }) export class OutputsController { logger: any; diff --git a/src/modules/permissions/permissions.controller.spec.ts b/src/modules/permissions/permissions.controller.spec.ts index 3da89aa..0f34649 100644 --- a/src/modules/permissions/permissions.controller.spec.ts +++ b/src/modules/permissions/permissions.controller.spec.ts @@ -1,12 +1,27 @@ +import { ClientsModule } from '@nestjs/microservices'; import { Test, TestingModule } from '@nestjs/testing'; +import { DucClient } from 'src/clients/duc/client.config'; import { PermissionsController } from './permissions.controller'; +import { DadosferaLogger } from 'dadosfera-logs'; +import { PermissionsClientService } from './permissions.service'; + +const ducClient = new DucClient(); describe('PermissionsController', () => { let controller: PermissionsController; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ + imports: [ + ClientsModule.register([ + { + name: 'DUC_PACKAGE', + ...ducClient.config(), + }, + ]), + ], controllers: [PermissionsController], + providers: [DadosferaLogger, PermissionsClientService], }).compile(); controller = module.get(PermissionsController); diff --git a/src/modules/permissions/permissions.module.ts b/src/modules/permissions/permissions.module.ts index 3dca762..b569e7c 100644 --- a/src/modules/permissions/permissions.module.ts +++ b/src/modules/permissions/permissions.module.ts @@ -6,6 +6,7 @@ import { PermissionsClientService } from './permissions.service'; import { DucClient } from '../../clients/duc/client.config'; import { PermissionsController } from './permissions.controller'; + const ducClient = new DucClient(); @Module({ diff --git a/src/modules/pipelines/pipelines.controller.ts b/src/modules/pipelines/pipelines.controller.ts index cc17671..5267807 100644 --- a/src/modules/pipelines/pipelines.controller.ts +++ b/src/modules/pipelines/pipelines.controller.ts @@ -33,7 +33,9 @@ import { DadosferaLogger } from 'dadosfera-logs'; action = req.method; } - return user.permissions.includes(PERMISSIONS.PIPELINE[action].seqid); + return user.permissions.includes( + PERMISSIONS.PIPELINE.permissions[action].seqid, + ); }) export class PipelinesController { logger: any; diff --git a/src/modules/roles/roles.controller.spec.ts b/src/modules/roles/roles.controller.spec.ts index 79260d6..cc003fa 100644 --- a/src/modules/roles/roles.controller.spec.ts +++ b/src/modules/roles/roles.controller.spec.ts @@ -1,12 +1,27 @@ +import { ClientsModule } from '@nestjs/microservices'; import { Test, TestingModule } from '@nestjs/testing'; +import { DucClient } from 'src/clients/duc/client.config'; import { RolesController } from './roles.controller'; +import { RolesService } from './roles.service'; +import { DadosferaLogger } from 'dadosfera-logs'; + +const ducClient = new DucClient(); describe('RolesController', () => { let controller: RolesController; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ + imports: [ + ClientsModule.register([ + { + name: 'DUC_PACKAGE', + ...ducClient.config(), + }, + ]), + ], controllers: [RolesController], + providers: [RolesService, DadosferaLogger], }).compile(); controller = module.get(RolesController); diff --git a/src/modules/roles/roles.service.spec.ts b/src/modules/roles/roles.service.spec.ts index 058d35f..79bffd2 100644 --- a/src/modules/roles/roles.service.spec.ts +++ b/src/modules/roles/roles.service.spec.ts @@ -1,12 +1,26 @@ +import { ClientsModule } from '@nestjs/microservices'; import { Test, TestingModule } from '@nestjs/testing'; +import { RolesController } from './roles.controller'; import { RolesService } from './roles.service'; +import { DadosferaLogger } from 'dadosfera-logs'; +import { DucClient } from 'src/clients/duc/client.config'; + +const ducClient = new DucClient(); describe('RolesService', () => { let service: RolesService; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ - providers: [RolesService], + imports: [ + ClientsModule.register([ + { + name: 'DUC_PACKAGE', + ...ducClient.config(), + }, + ]), + ], + providers: [RolesService, DadosferaLogger], }).compile(); service = module.get(RolesService); diff --git a/src/modules/transformations/transformations.controller.ts b/src/modules/transformations/transformations.controller.ts index 0c96dbd..d4dea00 100644 --- a/src/modules/transformations/transformations.controller.ts +++ b/src/modules/transformations/transformations.controller.ts @@ -35,7 +35,9 @@ import { DadosferaLogger } from 'dadosfera-logs'; action = req.method; } - return user.permissions.includes(PERMISSIONS.TRANSFORMATIONS[action].seqid); + return user.permissions.includes( + PERMISSIONS.TRANSFORMATIONS.permissions[action].seqid, + ); }) export class TransformationsController { logger: any; diff --git a/src/modules/users/users.controller.spec.ts b/src/modules/users/users.controller.spec.ts index 3e27c39..25524cd 100644 --- a/src/modules/users/users.controller.spec.ts +++ b/src/modules/users/users.controller.spec.ts @@ -1,12 +1,27 @@ +import { ClientsModule } from '@nestjs/microservices'; import { Test, TestingModule } from '@nestjs/testing'; +import { DucClient } from 'src/clients/duc/client.config'; import { UsersController } from './users.controller'; +import { UsersService } from './users.service'; +import { DadosferaLogger } from 'dadosfera-logs'; + +const ducClient = new DucClient(); describe('UsersController', () => { let controller: UsersController; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ + imports: [ + ClientsModule.register([ + { + name: 'DUC_PACKAGE', + ...ducClient.config(), + }, + ]), + ], controllers: [UsersController], + providers: [UsersService, DadosferaLogger], }).compile(); controller = module.get(UsersController); diff --git a/src/modules/users/users.service.spec.ts b/src/modules/users/users.service.spec.ts index 62815ba..e6c05ef 100644 --- a/src/modules/users/users.service.spec.ts +++ b/src/modules/users/users.service.spec.ts @@ -1,12 +1,27 @@ +import { ClientsModule } from '@nestjs/microservices'; import { Test, TestingModule } from '@nestjs/testing'; +import { UsersController } from './users.controller'; import { UsersService } from './users.service'; +import { DadosferaLogger } from 'dadosfera-logs'; +import { DucClient } from 'src/clients/duc/client.config'; + +const ducClient = new DucClient(); describe('UsersService', () => { let service: UsersService; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ - providers: [UsersService], + imports: [ + ClientsModule.register([ + { + name: 'DUC_PACKAGE', + ...ducClient.config(), + }, + ]), + ], + controllers: [UsersController], + providers: [UsersService, DadosferaLogger], }).compile(); service = module.get(UsersService);