summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package.json5
-rw-r--r--server/app.controller.spec.ts6
-rw-r--r--server/controllers/users.controller.spec.ts67
3 files changed, 74 insertions, 4 deletions
diff --git a/package.json b/package.json
index 0ad974f..92a0244 100644
--- a/package.json
+++ b/package.json
@@ -89,7 +89,10 @@
"json",
"ts"
],
- "moduleDirectories": ["node_modules", "./"],
+ "moduleNameMapper": {
+ "^server/(.*)$": "<rootDir>/$1"
+ },
+ "moduleDirectories": ["node_modules"],
"rootDir": "./server",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
diff --git a/server/app.controller.spec.ts b/server/app.controller.spec.ts
index 35a53c5..53d6cf8 100644
--- a/server/app.controller.spec.ts
+++ b/server/app.controller.spec.ts
@@ -13,9 +13,9 @@ describe('AppController', () => {
appController = app.get<AppController>(AppController);
});
- describe('root', () => {
- it('should return "Hello World!"', () => {
- expect(appController.index()).toBe('Hello World!');
+ describe('index', () => {
+ it('should run without crashing', () => {
+ expect(appController.index()).toBeUndefined();
});
});
});
diff --git a/server/controllers/users.controller.spec.ts b/server/controllers/users.controller.spec.ts
new file mode 100644
index 0000000..2e94a4e
--- /dev/null
+++ b/server/controllers/users.controller.spec.ts
@@ -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');
+ });
+ });
+});