From 50392f377311bd024335e5c82c845626fcf00b05 Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 20:01:25 +0200 Subject: [PATCH 01/15] 0.0.3 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9bb0a7a..8ab441b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ionicapp", - "version": "0.0.2", + "version": "0.0.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ionicapp", - "version": "0.0.2", + "version": "0.0.3", "license": "UNLICENSED", "dependencies": { "@nestjs/common": "^11.0.1", diff --git a/package.json b/package.json index 230adfe..436cd67 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ionicapp", - "version": "0.0.2", + "version": "0.0.3", "description": "", "author": "", "private": true, From b0b24d7dfee45792930ab0ea06fed4742eaa6916 Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 20:11:02 +0200 Subject: [PATCH 02/15] fix tests --- package.json | 46 ++++++++++++++++++++++++++++++++++++---------- test/jest-e2e.json | 9 --------- 2 files changed, 36 insertions(+), 19 deletions(-) delete mode 100644 test/jest-e2e.json diff --git a/package.json b/package.json index 436cd67..44db976 100644 --- a/package.json +++ b/package.json @@ -22,11 +22,12 @@ "migration:revert": "npm run typeorm migration:revert", "migration:generate": "npm run typeorm migration:generate src/db/migrations/$npm_config_name", "migration:create": "npx typeorm-ts-node-commonjs migration:create src/db/migrations/$npm_config_name", - "test": "jest", + "test:unit": "jest --selectProjects api-unit", + "test:e2e": "jest --selectProjects api-e2e --detectOpenHandles", + "test:int": "jest --selectProjects api-integration --detectOpenHandles", "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:e2e": "jest --config ./test/jest-e2e.json" + "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand" }, "dependencies": { "@nestjs/common": "^11.0.1", @@ -85,15 +86,40 @@ "json", "ts" ], - "rootDir": "src", - "testRegex": ".*\\.spec\\.ts$", - "transform": { - "^.+\\.(t|j)s$": "ts-jest" - }, "collectCoverageFrom": [ "**/*.(t|j)s" ], "coverageDirectory": "../coverage", - "testEnvironment": "node" + "testEnvironment": "node", + "testTimeout": 50000, + "projects": [ + { + "displayName": "api-e2e", + "testRegex": ".*\\.e2e-spec\\.ts$", + "transform": { + "^.+\\.ts": "ts-jest" + }, + "maxWorkers": 1, + "rootDir": "test" + }, + { + "displayName": "api-unit", + "testRegex": ".*\\.spec\\.ts$", + "transform": { + "^.+\\.ts": "ts-jest" + }, + "maxWorkers": 1, + "rootDir": "src" + }, + { + "displayName": "api-integration", + "testRegex": ".*\\.int-spec\\.ts$", + "transform": { + "^.+\\.ts": "ts-jest" + }, + "maxWorkers": 1, + "rootDir": "test" + } + ] } -} +} \ No newline at end of file diff --git a/test/jest-e2e.json b/test/jest-e2e.json deleted file mode 100644 index 2a29072..0000000 --- a/test/jest-e2e.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "moduleFileExtensions": ["js", "json", "ts"], - "rootDir": ".", - "testEnvironment": "node", - "testRegex": ".e2e-spec.ts$", - "transform": { - "^.+\\.js$": "ts-jest" - } -} From a29baaef776cbd52081ba5b9f3574b2e88bb7a75 Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 20:12:51 +0200 Subject: [PATCH 03/15] add e2e tests to pipeline --- .github/workflows/test.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 06db97a..30f60f3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -52,7 +52,7 @@ jobs: - name: Run unit tests run: npm run test:unit - test-api-int: + test-api-int-e2e: runs-on: ubuntu-latest needs: build steps: @@ -81,5 +81,7 @@ jobs: - run: cp .env.test-ci .env.test -f - name: Run migrations run: npm run migration:test:run - - name: Run ingegration tests + - name: Run ingegration and e2e tests run: npm run test:int + - name: Run e2e tests + run: npm run test:e2e From 3e194f18d4a2e2803c1072ad10a8085a30942f85 Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 20:23:37 +0200 Subject: [PATCH 04/15] fix test pipline --- .env.test-ci | 4 ++-- .github/workflows/test.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.env.test-ci b/.env.test-ci index 55a1c65..b9e1e35 100644 --- a/.env.test-ci +++ b/.env.test-ci @@ -8,10 +8,10 @@ NODE_ENV=local SITE_ORIGIN=http://localhost:3000 # Database connection parameters -DB_HOST=db +DB_HOST=postgres_tests DB_PORT=5432 DB_DATABASE=ionicapp_test -DB_USERNAME=user_test +DB_USERNAME=username_test DB_PASSWORD=secret_test # TypeOrm configuration (true or false) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 30f60f3..13ea0c7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -59,10 +59,10 @@ jobs: - uses: actions/checkout@v4 - uses: isbang/compose-action@v1.5.1 with: - compose-file: "./docker/docker-compose.test-ci.yml" + compose-file: "./docker-compose.yml" services: | postgres_test - redis_test + redis - uses: actions/cache@v4 id: npm-cache with: From 5ce81aaebe8c3c2d6af35ed31c7d92aef04f9342 Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 20:29:58 +0200 Subject: [PATCH 05/15] fix tests --- .env.test-ci | 4 ++-- .github/workflows/test.yml | 4 ++-- docker/docker-compose.test-ci.yml | 20 ++++++++++++++++++++ 3 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 docker/docker-compose.test-ci.yml diff --git a/.env.test-ci b/.env.test-ci index b9e1e35..bdb56e9 100644 --- a/.env.test-ci +++ b/.env.test-ci @@ -10,9 +10,9 @@ SITE_ORIGIN=http://localhost:3000 # Database connection parameters DB_HOST=postgres_tests DB_PORT=5432 -DB_DATABASE=ionicapp_test +DB_DATABASE=someproject_test DB_USERNAME=username_test -DB_PASSWORD=secret_test +DB_PASSWORD=password_test # TypeOrm configuration (true or false) TYPEORM_LOGGING=true diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 13ea0c7..30f60f3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -59,10 +59,10 @@ jobs: - uses: actions/checkout@v4 - uses: isbang/compose-action@v1.5.1 with: - compose-file: "./docker-compose.yml" + compose-file: "./docker/docker-compose.test-ci.yml" services: | postgres_test - redis + redis_test - uses: actions/cache@v4 id: npm-cache with: diff --git a/docker/docker-compose.test-ci.yml b/docker/docker-compose.test-ci.yml new file mode 100644 index 0000000..c063d4c --- /dev/null +++ b/docker/docker-compose.test-ci.yml @@ -0,0 +1,20 @@ +version: '3.8' + +services: + postgres_test: + container_name: postgres_test + build: + context: ./postgres + dockerfile: Dockerfile + environment: + POSTGRES_DB: someproject_test + POSTGRES_USER: username_test + POSTGRES_PASSWORD: password_test + ports: + - 5432:5432 + redis_test: + container_name: redis_test + image: redis:7.2.4 + ports: + - 6379:6379 + command: redis-server From 9a5b0406d43e301ddc9306feea75ac47102df0cc Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 20:43:55 +0200 Subject: [PATCH 06/15] fix tests pipeline --- .env.test-ci | 4 ++-- .github/workflows/test.yml | 6 +++--- docker/docker-compose.test-ci.yml | 20 -------------------- 3 files changed, 5 insertions(+), 25 deletions(-) delete mode 100644 docker/docker-compose.test-ci.yml diff --git a/.env.test-ci b/.env.test-ci index bdb56e9..1868f1c 100644 --- a/.env.test-ci +++ b/.env.test-ci @@ -10,9 +10,9 @@ SITE_ORIGIN=http://localhost:3000 # Database connection parameters DB_HOST=postgres_tests DB_PORT=5432 -DB_DATABASE=someproject_test +DB_DATABASE=ionicapp_test DB_USERNAME=username_test -DB_PASSWORD=password_test +DB_PASSWORD=secret_test # TypeOrm configuration (true or false) TYPEORM_LOGGING=true diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 30f60f3..a1143fd 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -59,10 +59,10 @@ jobs: - uses: actions/checkout@v4 - uses: isbang/compose-action@v1.5.1 with: - compose-file: "./docker/docker-compose.test-ci.yml" + compose-file: "docker-compose.yml" services: | - postgres_test - redis_test + postgres_tests + redis - uses: actions/cache@v4 id: npm-cache with: diff --git a/docker/docker-compose.test-ci.yml b/docker/docker-compose.test-ci.yml deleted file mode 100644 index c063d4c..0000000 --- a/docker/docker-compose.test-ci.yml +++ /dev/null @@ -1,20 +0,0 @@ -version: '3.8' - -services: - postgres_test: - container_name: postgres_test - build: - context: ./postgres - dockerfile: Dockerfile - environment: - POSTGRES_DB: someproject_test - POSTGRES_USER: username_test - POSTGRES_PASSWORD: password_test - ports: - - 5432:5432 - redis_test: - container_name: redis_test - image: redis:7.2.4 - ports: - - 6379:6379 - command: redis-server From b2d966e3f6884630a987bbf8199a372eeb7527e6 Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 20:53:53 +0200 Subject: [PATCH 07/15] fix tests pipeline --- .github/workflows/test.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a1143fd..e20e304 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,6 +10,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + path: . - uses: actions/setup-node@v4 with: node-version: 22.14 @@ -40,6 +42,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + path: . - uses: actions/cache@v4 id: npm-cache with: @@ -57,6 +61,8 @@ jobs: needs: build steps: - uses: actions/checkout@v4 + with: + path: . - uses: isbang/compose-action@v1.5.1 with: compose-file: "docker-compose.yml" From e456b13679378efb354b6a239c5d93249d24f0af Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 22:44:48 +0200 Subject: [PATCH 08/15] fix tests pipeline --- .github/workflows/test.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e20e304..226658c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,8 +42,6 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 - with: - path: . - uses: actions/cache@v4 id: npm-cache with: @@ -61,8 +59,8 @@ jobs: needs: build steps: - uses: actions/checkout@v4 - with: - path: . + - run: cp .env.test-ci .env -f + - run: cat .env - uses: isbang/compose-action@v1.5.1 with: compose-file: "docker-compose.yml" From 062385dd8b392bdaae1f26308bfd06d727a2a83f Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 22:49:28 +0200 Subject: [PATCH 09/15] fix tests pipeline --- .github/workflows/test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 226658c..4e9da11 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -66,7 +66,6 @@ jobs: compose-file: "docker-compose.yml" services: | postgres_tests - redis - uses: actions/cache@v4 id: npm-cache with: From 6ce4b039f7280ecdeac06001f04757b0881497d1 Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 22:56:37 +0200 Subject: [PATCH 10/15] fix tests pipeline --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4e9da11..9e5e4ff 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -75,6 +75,8 @@ jobs: **/.env.test **/.env.example key: ${{ runner.os }}-node-npm-${{ hashFiles('**/package-lock.json', '**/.env.test', '**/.env.example') }} + restore-keys: | + ${{ runner.os }}-node-npm- - run: npm ci - name: Get build result artifact uses: actions/download-artifact@v4 From 6b98815d89267afc1506f77531171362325c980c Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 23:01:54 +0200 Subject: [PATCH 11/15] fix tests pipeline --- .github/workflows/test.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9e5e4ff..1dda770 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -61,11 +61,6 @@ jobs: - uses: actions/checkout@v4 - run: cp .env.test-ci .env -f - run: cat .env - - uses: isbang/compose-action@v1.5.1 - with: - compose-file: "docker-compose.yml" - services: | - postgres_tests - uses: actions/cache@v4 id: npm-cache with: @@ -75,8 +70,11 @@ jobs: **/.env.test **/.env.example key: ${{ runner.os }}-node-npm-${{ hashFiles('**/package-lock.json', '**/.env.test', '**/.env.example') }} - restore-keys: | - ${{ runner.os }}-node-npm- + - uses: isbang/compose-action@v1.5.1 + with: + compose-file: "docker-compose.yml" + services: | + postgres_tests - run: npm ci - name: Get build result artifact uses: actions/download-artifact@v4 From 6a5e3ac80f500d0959ad04be32c661904f614e4a Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 23:08:46 +0200 Subject: [PATCH 12/15] fix tests pipeline --- .env.test-ci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.test-ci b/.env.test-ci index 1868f1c..6edb051 100644 --- a/.env.test-ci +++ b/.env.test-ci @@ -8,7 +8,7 @@ NODE_ENV=local SITE_ORIGIN=http://localhost:3000 # Database connection parameters -DB_HOST=postgres_tests +DB_HOST=localhost DB_PORT=5432 DB_DATABASE=ionicapp_test DB_USERNAME=username_test From 10c6f6d397ff35de44cf34afa6c78093c33870af Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 23:12:16 +0200 Subject: [PATCH 13/15] fix tests pipeline --- .env.test-ci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.test-ci b/.env.test-ci index 6edb051..7232abd 100644 --- a/.env.test-ci +++ b/.env.test-ci @@ -9,7 +9,7 @@ SITE_ORIGIN=http://localhost:3000 # Database connection parameters DB_HOST=localhost -DB_PORT=5432 +DB_PORT=54321 DB_DATABASE=ionicapp_test DB_USERNAME=username_test DB_PASSWORD=secret_test From e2007e86df24a4b259070d8b8d86c121559b4a78 Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 23:23:13 +0200 Subject: [PATCH 14/15] fix tests --- test/app.int-spec.ts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test/app.int-spec.ts diff --git a/test/app.int-spec.ts b/test/app.int-spec.ts new file mode 100644 index 0000000..a763ad6 --- /dev/null +++ b/test/app.int-spec.ts @@ -0,0 +1,31 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication } from '@nestjs/common'; +import * as request from 'supertest'; +import { App } from 'supertest/types'; +import { AppModule } from './../src/app.module'; +import { AppService } from '../src/app.service'; + +describe('AppController (integration)', () => { + let app: INestApplication; + let appService: AppService; + + beforeAll(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + appService = moduleFixture.get(AppService); + }); + afterAll(async () => { + await app.close(); + }); + + it('shoud call appService.checkHealth', async () => { + const spyOnCheckHealth = jest.spyOn(appService, 'checkHealth'); + spyOnCheckHealth.mockImplementation(() => 'OK'); + await request(app.getHttpServer()).get('/health'); + expect(spyOnCheckHealth).toHaveBeenCalledTimes(1); + }); +}); From e133439824ad4b9a34ca82ad6d3da995d489c9d2 Mon Sep 17 00:00:00 2001 From: Ihor S Date: Sat, 30 Aug 2025 23:32:46 +0200 Subject: [PATCH 15/15] fix tests --- .github/workflows/test.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1dda770..734e939 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,7 @@ jobs: **/node_modules **/.env.test **/.env.example - key: ${{ runner.os }}-node-npm-${{ hashFiles('**/package-lock.json', '**/.env.test', '**/.env.example') }} + key: ${{ runner.os }}-node-npm-${{ hashFiles('./package-lock.json', './.env.test', './.env.example') }} restore-keys: | ${{ runner.os }}-node-npm- - name: Install deps @@ -50,7 +50,7 @@ jobs: **/node_modules **/.env.test **/.env.example - key: ${{ runner.os }}-node-npm-${{ hashFiles('**/package-lock.json', '**/.env.test', '**/.env.example') }} + key: ${{ runner.os }}-node-npm-${{ hashFiles('./package-lock.json', './.env.test', './.env.example') }} - name: Run unit tests run: npm run test:unit @@ -69,7 +69,7 @@ jobs: **/node_modules **/.env.test **/.env.example - key: ${{ runner.os }}-node-npm-${{ hashFiles('**/package-lock.json', '**/.env.test', '**/.env.example') }} + key: ${{ runner.os }}-node-npm-${{ hashFiles('./package-lock.json', './.env.test', './.env.example') }} - uses: isbang/compose-action@v1.5.1 with: compose-file: "docker-compose.yml"