From 52345061216345edddd927e52d8a8938d187f829 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joonas=20H=C3=A4kkinen?= Date: Fri, 28 Jul 2023 15:48:30 +0300 Subject: [PATCH] Refactor --- app-nest/package.json | 2 +- app-nest/test/app.e2e-spec.ts | 63 ------------------- app-nest/test/app.int-spec.ts | 23 +++++++ .../{jest-e2e.json => jest-integration.json} | 10 ++- app-nest/test/test-app.module.ts | 26 ++++++++ 5 files changed, 57 insertions(+), 67 deletions(-) delete mode 100644 app-nest/test/app.e2e-spec.ts create mode 100644 app-nest/test/app.int-spec.ts rename app-nest/test/{jest-e2e.json => jest-integration.json} (51%) create mode 100644 app-nest/test/test-app.module.ts diff --git a/app-nest/package.json b/app-nest/package.json index 18528a1..56b3f8b 100644 --- a/app-nest/package.json +++ b/app-nest/package.json @@ -25,7 +25,7 @@ "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", - "test:integration": "jest --config ./test/jest-e2e.json" + "test:integration": "jest --config ./test/jest-integration.json" }, "dependencies": { "@golevelup/nestjs-discovery": "^4.0.0", diff --git a/app-nest/test/app.e2e-spec.ts b/app-nest/test/app.e2e-spec.ts deleted file mode 100644 index e5ceecb..0000000 --- a/app-nest/test/app.e2e-spec.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { DiscoveryModule } from "@golevelup/nestjs-discovery"; -import { createMock } from "@golevelup/ts-jest"; -import { INestApplication, Module } from "@nestjs/common"; -import { Test, TestingModule } from "@nestjs/testing"; -import { TypeOrmModule } from "@nestjs/typeorm"; -import { BoltModule } from "../src/bolt/bolt.module"; -import { BoltService } from "../src/bolt/bolt.service"; -import configuration from "../src/config/configuration"; -import { EntitiesModule } from "../src/entities/entities.module"; -import { UserService } from "../src/entities/user/user.service"; -import { GuiModule } from "../src/gui/gui.module"; -import testConfiguration from "./testConfiguration"; - -@Module({ - imports: [DiscoveryModule], - providers: [], - exports: [createMock], -}) -class MockBolt {} - -describe("AppController (e2e)", () => { - let app: INestApplication; - - beforeEach(async () => { - const moduleFixture: TestingModule = await Test.createTestingModule({ - // imports: [AppModule], - imports: [ - TypeOrmModule.forRoot({ - type: "postgres", - host: testConfiguration.database.host, - port: configuration.database.port, - username: testConfiguration.database.username, - password: testConfiguration.database.password, - database: testConfiguration.database.name, - synchronize: true, - autoLoadEntities: true, - }), - GuiModule, - EntitiesModule, - ], - }) - .overrideModule(BoltModule) - .useModule(MockBolt) - // .overrideProvider(BoltService) - // .useClass(createMock()) - // .overrideProvider(BoltRegisterService) - // .useClass(createMock()) - .compile(); - - app = moduleFixture.createNestApplication(); - await app.init(); - }); - - afterAll(async () => { - await app.close(); - }); - - it("Find all users", async () => { - const userService = app.get(UserService); - const users = await userService.findAll(); - expect(users).toHaveLength(1); - }); -}); diff --git a/app-nest/test/app.int-spec.ts b/app-nest/test/app.int-spec.ts new file mode 100644 index 0000000..3485fbe --- /dev/null +++ b/app-nest/test/app.int-spec.ts @@ -0,0 +1,23 @@ +import { INestApplication } from "@nestjs/common"; +import { UserService } from "../src/entities/user/user.service"; +import createTestingModule from "./test-app.module"; + +describe("App", () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture = await createTestingModule().compile(); + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + afterAll(async () => { + await app.close(); + }); + + it("Find all users", async () => { + const userService = app.get(UserService); + const users = await userService.findAll(); + expect(users).toHaveLength(1); + }); +}); diff --git a/app-nest/test/jest-e2e.json b/app-nest/test/jest-integration.json similarity index 51% rename from app-nest/test/jest-e2e.json rename to app-nest/test/jest-integration.json index e9d912f..e5c39be 100644 --- a/app-nest/test/jest-e2e.json +++ b/app-nest/test/jest-integration.json @@ -1,9 +1,13 @@ { - "moduleFileExtensions": ["js", "json", "ts"], + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], "rootDir": ".", "testEnvironment": "node", - "testRegex": ".e2e-spec.ts$", + "testRegex": ".int-spec.ts$", "transform": { "^.+\\.(t|j)s$": "ts-jest" } -} +} \ No newline at end of file diff --git a/app-nest/test/test-app.module.ts b/app-nest/test/test-app.module.ts new file mode 100644 index 0000000..6fb4281 --- /dev/null +++ b/app-nest/test/test-app.module.ts @@ -0,0 +1,26 @@ +import { Test } from "@nestjs/testing"; +import { TypeOrmModule } from "@nestjs/typeorm"; +import configuration from "../src/config/configuration"; +import { EntitiesModule } from "../src/entities/entities.module"; +import { GuiModule } from "../src/gui/gui.module"; +import testConfiguration from "./testConfiguration"; + +const createTestingModule = () => + Test.createTestingModule({ + imports: [ + TypeOrmModule.forRoot({ + type: "postgres", + host: testConfiguration.database.host, + port: configuration.database.port, + username: testConfiguration.database.username, + password: testConfiguration.database.password, + database: testConfiguration.database.name, + synchronize: true, + autoLoadEntities: true, + }), + GuiModule, + EntitiesModule, + ], + }); + +export default createTestingModule;