I have introduced an nest HTTP exception filter
in the project and included it globally in main.ts
const { httpAdapter } = app.get(HttpAdapterHost);
app.useGlobalFilters(new HttpExceptionFilter(httpAdapter));
NestJS Jest tests are failing with below error.
[Nest] 13076 - 09/03/2022, 2:16:50 PM ERROR [ExceptionsHandler] Invalid role(s): []
AccessControlError: Invalid role(s): []
at new AccessControlError (/Users/shubhamjain/SJ/Projects/amplication/packages/amplication-data-service-generator/generated/server/node_modules/accesscontrol/lib/core/AccessControlError.js:24:28)
at Object.getFlatRoles (/Users/shubhamjain/SJ/Projects/amplication/packages/amplication-data-service-generator/generated/server/node_modules/accesscontrol/lib/utils.js:550:19)
at Object.getUnionAttrsOfRoles (/Users/shubhamjain/SJ/Projects/amplication/packages/amplication-data-service-generator/generated/server/node_modules/accesscontrol/lib/utils.js:739:27)
at new Permission (/Users/shubhamjain/SJ/Projects/amplication/packages/amplication-data-service-generator/generated/server/node_modules/accesscontrol/lib/core/Permission.js:51:43)
at RolesBuilder.Object.<anonymous>.AccessControl.permission (/Users/shubhamjain/SJ/Projects/amplication/packages/amplication-data-service-generator/generated/server/node_modules/accesscontrol/lib/AccessControl.js:481:16)
at AclFilterResponseInterceptor.intercept (/Users/shubhamjain/SJ/Projects/amplication/packages/amplication-data-service-generator/generated/server/src/interceptors/aclFilterResponse.interceptor.ts:25:42)
at /Users/shubhamjain/SJ/Projects/amplication/packages/amplication-data-service-generator/generated/server/node_modules/@nestjs/core/interceptors/interceptors-consumer.js:23:36
at InterceptorsConsumer.intercept (/Users/shubhamjain/SJ/Projects/amplication/packages/amplication-data-service-generator/generated/server/node_modules/@nestjs/core/interceptors/interceptors-consumer.js:25:24)
at /Users/shubhamjain/SJ/Projects/amplication/packages/amplication-data-service-generator/generated/server/node_modules/@nestjs/core/router/router-execution-context.js:46:60
at processTicksAndRejections (node:internal/process/task_queues:96:5)
Edit1
Every Controller's endpoint has something related to using roles.
@common.UseInterceptors(AclValidateRequestInterceptor)
@nestAccessControl.UseRoles({
resource: "Customer",
action: "create",
possession: "any",
})
@common.Post()
@swagger.ApiCreatedResponse({ type: Customer })
@swagger.ApiForbiddenResponse({ type: errors.ForbiddenException })
async create(@common.Body() data: CustomerCreateInput): Promise<Customer> {
Any pointers to debug this problem would be appreciated.