configure unit tests
This commit is contained in:
parent
8ca1046bf3
commit
cc0f32a75f
@ -89,7 +89,10 @@
|
|||||||
"json",
|
"json",
|
||||||
"ts"
|
"ts"
|
||||||
],
|
],
|
||||||
"moduleDirectories": ["node_modules", "./"],
|
"moduleNameMapper": {
|
||||||
|
"^server/(.*)$": "<rootDir>/$1"
|
||||||
|
},
|
||||||
|
"moduleDirectories": ["node_modules"],
|
||||||
"rootDir": "./server",
|
"rootDir": "./server",
|
||||||
"testRegex": ".*\\.spec\\.ts$",
|
"testRegex": ".*\\.spec\\.ts$",
|
||||||
"transform": {
|
"transform": {
|
||||||
|
@ -13,9 +13,9 @@ describe('AppController', () => {
|
|||||||
appController = app.get<AppController>(AppController);
|
appController = app.get<AppController>(AppController);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('root', () => {
|
describe('index', () => {
|
||||||
it('should return "Hello World!"', () => {
|
it('should run without crashing', () => {
|
||||||
expect(appController.index()).toBe('Hello World!');
|
expect(appController.index()).toBeUndefined();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
67
server/controllers/users.controller.spec.ts
Normal file
67
server/controllers/users.controller.spec.ts
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
import 'server/env';
|
||||||
|
import { UsersController } from './users.controller';
|
||||||
|
import { UsersService } from 'server/providers/services/users.service';
|
||||||
|
import { JwtService } from 'server/providers/services/jwt.service';
|
||||||
|
import { RefreshTokensService } from 'server/providers/services/refresh_tokens.service';
|
||||||
|
import { Test, TestingModule } from '@nestjs/testing';
|
||||||
|
import { RolesService } from 'server/providers/services/roles.service';
|
||||||
|
import { Response } from 'express';
|
||||||
|
import { User } from 'server/entities/user.entity';
|
||||||
|
|
||||||
|
describe('UsersController', () => {
|
||||||
|
let usersController: UsersController;
|
||||||
|
const res = { cookie: () => {} };
|
||||||
|
|
||||||
|
beforeEach(async () => {
|
||||||
|
const module: TestingModule = await Test.createTestingModule({
|
||||||
|
controllers: [UsersController],
|
||||||
|
providers: [
|
||||||
|
{
|
||||||
|
provide: RefreshTokensService,
|
||||||
|
useValue: {
|
||||||
|
create: async (refreshToken) => refreshToken,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: UsersService,
|
||||||
|
useValue: {
|
||||||
|
findAll: async () => [{ id: 1 }],
|
||||||
|
create: async (user: User) => user,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: RolesService,
|
||||||
|
useValue: {
|
||||||
|
findByKey: (key) => [{ key, id: 1 }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
JwtService,
|
||||||
|
],
|
||||||
|
}).compile();
|
||||||
|
|
||||||
|
usersController = module.get<UsersController>(UsersController);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('index', () => {
|
||||||
|
it('should get all users', async () => {
|
||||||
|
expect(await usersController.index()).toEqual({ users: [{ id: 1 }] });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('create', () => {
|
||||||
|
it('should create a user with email and password', async () => {
|
||||||
|
const { token, user } = await usersController.create(
|
||||||
|
{ firstName: 'firstName', lastName: 'lastName', email: 'test@test.com', password: 'test' },
|
||||||
|
res as unknown as Response<any>,
|
||||||
|
);
|
||||||
|
expect(token.length).toBeGreaterThan(0);
|
||||||
|
expect(user.email).toEqual('test@test.com');
|
||||||
|
expect(user.firstName).toEqual('firstName');
|
||||||
|
expect(user.lastName).toEqual('lastName');
|
||||||
|
expect(user.passwordHash.length).toBeGreaterThan(0);
|
||||||
|
expect(user.passwordHash).not.toEqual('test');
|
||||||
|
expect(user.userRoles).toHaveLength(1);
|
||||||
|
expect(user.userRoles[0].role.key).toEqual('user');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user