diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..eb8f3eb --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,23 @@ +name: Test CI (Service API) + +on: + pull_request: + branches: [main, dev] + +jobs: + test: + runs-on: ubuntu-20.04 + + steps: + - uses: actions/checkout@v2 + + - name: Node 20.11 설치 + uses: actions/setup-node@v2 + with: + node-version: "20.11" + + - name: 모듈 설치 + run: cd ./BE/service && npm i + + - name: 테스트 실행 + run: cd ./BE/service && npm run test diff --git a/BE/holder/.eslintrc.js b/BE/holder/.eslintrc.js index 8f5aedb..356232f 100644 --- a/BE/holder/.eslintrc.js +++ b/BE/holder/.eslintrc.js @@ -2,7 +2,7 @@ module.exports = { parser: '@typescript-eslint/parser', parserOptions: { project: 'tsconfig.json', - tsconfigRootDir : __dirname, + tsconfigRootDir: __dirname, sourceType: 'module', }, plugins: ['@typescript-eslint/eslint-plugin'], @@ -21,5 +21,11 @@ module.exports = { '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-explicit-any': 'off', + 'prettier/prettier': [ + 'error', + { + endOfLine: 'auto', + }, + ], }, }; diff --git a/BE/holder/package-lock.json b/BE/holder/package-lock.json index 38f2e1a..c019645 100644 --- a/BE/holder/package-lock.json +++ b/BE/holder/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "license": "UNLICENSED", "dependencies": { - "@nestjs/common": "^9.0.0", + "@nestjs/common": "^9.4.3", "@nestjs/core": "^9.0.0", "@nestjs/platform-express": "^9.0.0", "reflect-metadata": "^0.1.13", diff --git a/BE/holder/package.json b/BE/holder/package.json index edd04f6..d4ae085 100644 --- a/BE/holder/package.json +++ b/BE/holder/package.json @@ -21,7 +21,7 @@ "test:e2e": "jest --config ./test/jest-e2e.json" }, "dependencies": { - "@nestjs/common": "^9.0.0", + "@nestjs/common": "^9.4.3", "@nestjs/core": "^9.0.0", "@nestjs/platform-express": "^9.0.0", "reflect-metadata": "^0.1.13", diff --git a/BE/issuer/.eslintrc.js b/BE/issuer/.eslintrc.js index 8f5aedb..356232f 100644 --- a/BE/issuer/.eslintrc.js +++ b/BE/issuer/.eslintrc.js @@ -2,7 +2,7 @@ module.exports = { parser: '@typescript-eslint/parser', parserOptions: { project: 'tsconfig.json', - tsconfigRootDir : __dirname, + tsconfigRootDir: __dirname, sourceType: 'module', }, plugins: ['@typescript-eslint/eslint-plugin'], @@ -21,5 +21,11 @@ module.exports = { '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-explicit-any': 'off', + 'prettier/prettier': [ + 'error', + { + endOfLine: 'auto', + }, + ], }, }; diff --git a/BE/issuer/package-lock.json b/BE/issuer/package-lock.json index c127cd7..c5c2921 100644 --- a/BE/issuer/package-lock.json +++ b/BE/issuer/package-lock.json @@ -9,8 +9,8 @@ "version": "0.0.1", "license": "UNLICENSED", "dependencies": { - "@nestjs/common": "^9.0.0", - "@nestjs/core": "^9.0.0", + "@nestjs/common": "^9.4.3", + "@nestjs/core": "^9.4.3", "@nestjs/platform-express": "^9.0.0", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", diff --git a/BE/issuer/package.json b/BE/issuer/package.json index b050448..4c8e65b 100644 --- a/BE/issuer/package.json +++ b/BE/issuer/package.json @@ -21,8 +21,8 @@ "test:e2e": "jest --config ./test/jest-e2e.json" }, "dependencies": { - "@nestjs/common": "^9.0.0", - "@nestjs/core": "^9.0.0", + "@nestjs/common": "^9.4.3", + "@nestjs/core": "^9.4.3", "@nestjs/platform-express": "^9.0.0", "reflect-metadata": "^0.1.13", "rimraf": "^3.0.2", diff --git a/BE/service/.eslintrc.js b/BE/service/.eslintrc.js index 8f5aedb..356232f 100644 --- a/BE/service/.eslintrc.js +++ b/BE/service/.eslintrc.js @@ -2,7 +2,7 @@ module.exports = { parser: '@typescript-eslint/parser', parserOptions: { project: 'tsconfig.json', - tsconfigRootDir : __dirname, + tsconfigRootDir: __dirname, sourceType: 'module', }, plugins: ['@typescript-eslint/eslint-plugin'], @@ -21,5 +21,11 @@ module.exports = { '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-explicit-any': 'off', + 'prettier/prettier': [ + 'error', + { + endOfLine: 'auto', + }, + ], }, }; diff --git a/BE/service/package-lock.json b/BE/service/package-lock.json index 2c9cf3c..e127f6c 100644 --- a/BE/service/package-lock.json +++ b/BE/service/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "license": "UNLICENSED", "dependencies": { - "@nestjs/common": "^9.0.0", + "@nestjs/common": "^9.4.3", "@nestjs/core": "^9.0.0", "@nestjs/platform-express": "^9.0.0", "reflect-metadata": "^0.1.13", @@ -32,7 +32,7 @@ "jest": "28.1.3", "prettier": "^2.3.2", "source-map-support": "^0.5.20", - "supertest": "^6.1.3", + "supertest": "^6.3.4", "ts-jest": "28.0.8", "ts-loader": "^9.2.3", "ts-node": "^10.0.0", diff --git a/BE/service/package.json b/BE/service/package.json index 96e4552..72023ba 100644 --- a/BE/service/package.json +++ b/BE/service/package.json @@ -14,14 +14,14 @@ "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", - "test": "jest", + "test": "jest --config ./test/jest-test.json", "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" }, "dependencies": { - "@nestjs/common": "^9.0.0", + "@nestjs/common": "^9.4.3", "@nestjs/core": "^9.0.0", "@nestjs/platform-express": "^9.0.0", "reflect-metadata": "^0.1.13", @@ -44,7 +44,7 @@ "jest": "28.1.3", "prettier": "^2.3.2", "source-map-support": "^0.5.20", - "supertest": "^6.1.3", + "supertest": "^6.3.4", "ts-jest": "28.0.8", "ts-loader": "^9.2.3", "ts-node": "^10.0.0", @@ -68,4 +68,4 @@ "coverageDirectory": "../coverage", "testEnvironment": "node" } -} +} \ No newline at end of file diff --git a/BE/service/src/app.controller.ts b/BE/service/src/app.controller.ts new file mode 100644 index 0000000..f857c23 --- /dev/null +++ b/BE/service/src/app.controller.ts @@ -0,0 +1,11 @@ +import { Controller, Get } from '@nestjs/common'; +import { AppService } from './app.service'; + +@Controller('app') +export class AppController { + constructor(private readonly appService: AppService) {} + @Get() + getHello(): string { + return this.appService.sayHello(); + } +} diff --git a/BE/service/src/app.module.ts b/BE/service/src/app.module.ts index ee5f2c9..08c9fcd 100644 --- a/BE/service/src/app.module.ts +++ b/BE/service/src/app.module.ts @@ -1,8 +1,10 @@ import { Module } from '@nestjs/common'; +import { AppService } from './app.service'; +import { AppController } from './app.controller'; @Module({ imports: [], - controllers: [], - providers: [], + controllers: [AppController], + providers: [AppService], }) export class AppModule {} diff --git a/BE/service/src/app.service.ts b/BE/service/src/app.service.ts new file mode 100644 index 0000000..1566b18 --- /dev/null +++ b/BE/service/src/app.service.ts @@ -0,0 +1,8 @@ +import { Injectable } from '@nestjs/common'; + +@Injectable() +export class AppService { + sayHello(): string { + return 'Hello?'; + } +} diff --git a/BE/service/test/app.test.spec.ts b/BE/service/test/app.test.spec.ts new file mode 100644 index 0000000..70f39e4 --- /dev/null +++ b/BE/service/test/app.test.spec.ts @@ -0,0 +1,28 @@ +import { Test, TestingModule } from '@nestjs/testing'; +import { INestApplication } from '@nestjs/common'; +import * as request from 'supertest'; +import { AppModule } from '../src/app.module'; + +describe('AppController (e2e)', () => { + let app: INestApplication; + + beforeEach(async () => { + const moduleFixture: TestingModule = await Test.createTestingModule({ + imports: [AppModule], + }).compile(); + + app = moduleFixture.createNestApplication(); + await app.init(); + }); + + it('/app (GET)', () => { + return request(app.getHttpServer()) + .get('/app') + .expect(200) + .expect('Hello?'); + }); + + afterAll(async () => { + await app.close(); + }); +}); diff --git a/BE/service/test/jest-test.json b/BE/service/test/jest-test.json new file mode 100644 index 0000000..54c3b88 --- /dev/null +++ b/BE/service/test/jest-test.json @@ -0,0 +1,13 @@ +{ + "moduleFileExtensions": [ + "js", + "json", + "ts" + ], + "rootDir": ".", + "testEnvironment": "node", + "testRegex": ".test.spec.ts$", + "transform": { + "^.+\\.(t|j)s$": "ts-jest" + } +} \ No newline at end of file diff --git a/BE/verifier/.eslintrc.js b/BE/verifier/.eslintrc.js index 8f5aedb..356232f 100644 --- a/BE/verifier/.eslintrc.js +++ b/BE/verifier/.eslintrc.js @@ -2,7 +2,7 @@ module.exports = { parser: '@typescript-eslint/parser', parserOptions: { project: 'tsconfig.json', - tsconfigRootDir : __dirname, + tsconfigRootDir: __dirname, sourceType: 'module', }, plugins: ['@typescript-eslint/eslint-plugin'], @@ -21,5 +21,11 @@ module.exports = { '@typescript-eslint/explicit-function-return-type': 'off', '@typescript-eslint/explicit-module-boundary-types': 'off', '@typescript-eslint/no-explicit-any': 'off', + 'prettier/prettier': [ + 'error', + { + endOfLine: 'auto', + }, + ], }, }; diff --git a/BE/verifier/package-lock.json b/BE/verifier/package-lock.json index db0b116..1b4ea7c 100644 --- a/BE/verifier/package-lock.json +++ b/BE/verifier/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "license": "UNLICENSED", "dependencies": { - "@nestjs/common": "^9.0.0", + "@nestjs/common": "^9.4.3", "@nestjs/core": "^9.0.0", "@nestjs/platform-express": "^9.0.0", "reflect-metadata": "^0.1.13", diff --git a/BE/verifier/package.json b/BE/verifier/package.json index e3c7933..61d16d2 100644 --- a/BE/verifier/package.json +++ b/BE/verifier/package.json @@ -21,7 +21,7 @@ "test:e2e": "jest --config ./test/jest-e2e.json" }, "dependencies": { - "@nestjs/common": "^9.0.0", + "@nestjs/common": "^9.4.3", "@nestjs/core": "^9.0.0", "@nestjs/platform-express": "^9.0.0", "reflect-metadata": "^0.1.13",