39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import { GUARDS_METADATA } from '@nestjs/common/constants';
|
|
import { RoleEnum } from '../roles/roles.enum';
|
|
import { RolesGuard } from '../roles/roles.guard';
|
|
import { TeamsController } from './teams.controller';
|
|
|
|
describe('TeamsController', () => {
|
|
const service = { createNewTeam: jest.fn() };
|
|
const publicAccess = {};
|
|
const teamMembers = {};
|
|
const teamPermissions = {};
|
|
const controller = new TeamsController(
|
|
service as any,
|
|
publicAccess as any,
|
|
teamMembers as any,
|
|
teamPermissions as any,
|
|
);
|
|
|
|
beforeEach(() => jest.clearAllMocks());
|
|
|
|
it('allows any logged-in user (not just admins) to create a team', () => {
|
|
expect(Reflect.getMetadata('roles', TeamsController.prototype.create)).toEqual([
|
|
RoleEnum.user,
|
|
RoleEnum.admin,
|
|
]);
|
|
expect(
|
|
Reflect.getMetadata(GUARDS_METADATA, TeamsController.prototype.create),
|
|
).toContain(RolesGuard);
|
|
});
|
|
|
|
it('passes the authenticated user and the DTO to the service', () => {
|
|
const req = { user: { id: 42 } };
|
|
const dto = { name: '1. Herren' };
|
|
|
|
void controller.create(req as any, dto as any);
|
|
|
|
expect(service.createNewTeam).toHaveBeenCalledWith(dto, 42);
|
|
});
|
|
});
|