Skip to content

Commit e079ae7

Browse files
authored
Merge pull request #48 from boostcampwm-2024/chore/test-env-be
🐛 fix: 통합, E2E, Unit 테스트 환경 구축
2 parents 13acbca + abf5ce3 commit e079ae7

File tree

12 files changed

+45
-25
lines changed

12 files changed

+45
-25
lines changed

Diff for: .github/workflows/deploy.yml

+8-10
Original file line numberDiff line numberDiff line change
@@ -20,23 +20,21 @@ jobs:
2020
key: ${{ secrets.SSH_KEY }}
2121
port: ${{ secrets.PORT }}
2222
script: |
23-
node -v
2423
export NVM_DIR=~/.nvm
2524
source ~/.nvm/nvm.sh
26-
node -v
2725
cd /root/web05-Denamu
2826
git pull origin main
2927
cd server/
3028
31-
mkdir -p src/configs
29+
mkdir -p configs
3230
33-
echo "DB_TYPE=mysql" > src/configs/.env.db.production
34-
echo "DB_DATABASE=${{ secrets.PRODUCT_DB_DATABASE }}" >> src/configs/.env.db.production
35-
echo "DB_HOST=${{ secrets.PRODUCT_DB_HOST }}" >> src/configs/.env.db.production
36-
echo "DB_PORT=${{ secrets.PRODUCT_DB_PORT }}" >> src/configs/.env.db.production
37-
echo "DB_USERNAME=${{ secrets.PRODUCT_DB_USERNAME }}" >>src/configs/.env.db.production
38-
echo "DB_PASSWORD=${{ secrets.PRODUCT_DB_PASSWORD }}" >> src/configs/.env.db.production
31+
echo "DB_TYPE=mysql" > configs/.env.db.production
32+
echo "DB_DATABASE=${{ secrets.PRODUCT_DB_DATABASE }}" >> configs/.env.db.production
33+
echo "DB_HOST=${{ secrets.PRODUCT_DB_HOST }}" >> configs/.env.db.production
34+
echo "DB_PORT=${{ secrets.PRODUCT_DB_PORT }}" >> configs/.env.db.production
35+
echo "DB_USERNAME=${{ secrets.PRODUCT_DB_USERNAME }}" >> configs/.env.db.production
36+
echo "DB_PASSWORD=${{ secrets.PRODUCT_DB_PASSWORD }}" >> configs/.env.db.production
3937
4038
npm ci
41-
npm build
39+
npm run build
4240
nohup npm run start > server.log 2>&1 &
File renamed without changes.

Diff for: server/test/jest-e2e.json renamed to server/jest-e2e.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@
55
"testRegex": ".e2e-spec.ts$",
66
"transform": {
77
"^.+\\.(t|j)s$": "ts-jest"
8-
}
8+
},
9+
"coverageDirectory": "coverage"
910
}

Diff for: server/jest-unit.json

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"moduleFileExtensions": ["js", "json", "ts"],
3+
"rootDir": "..",
4+
"testEnvironment": "node",
5+
"testPathIgnorePatterns": [".e2e-spec.ts$"],
6+
"testRegex": ".spec.ts$",
7+
"transform": {
8+
"^.+\\.(t|j)s$": "ts-jest"
9+
},
10+
"coverageDirectory": "coverage"
11+
}

Diff for: server/package.json

+7-4
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,14 @@
1212
"start:dev": "cross-env NODE_ENV=development nest start --watch",
1313
"start:debug": "cross-env NODE_ENV=development nest start --debug --watch",
1414
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
15+
"test:unit": "cross-env NODE_ENV=test jest --config jest-unit.json",
16+
"test:unit:cov": "cross-env NODE_ENV=test jest --config jest-unit.json --coverage",
17+
"test:e2e": "cross-env NODE_ENV=test jest --config jest-e2e.json",
18+
"test:e2e:cov": "cross-env NODE_ENV=test jest --config jest-e2e.json --coverage",
1519
"test": "cross-env NODE_ENV=test jest",
1620
"test:watch": "cross-env NODE_ENV=test jest --watch",
1721
"test:cov": "cross-env NODE_ENV=test jest --coverage",
18-
"test:debug": "cross-env NODE_ENV=test node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
19-
"test:e2e": "cross-env NODE_ENV=test jest --config ./test/jest-e2e.json"
22+
"test:debug": "cross-env NODE_ENV=test node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand"
2023
},
2124
"dependencies": {
2225
"@nestjs/common": "^10.0.0",
@@ -65,8 +68,8 @@
6568
"json",
6669
"ts"
6770
],
68-
"rootDir": "src",
69-
"testRegex": ".*\\.spec\\.ts$",
71+
"rootDir": "test",
72+
"testRegex": ".*\\.(e2e-spec|spec)\\.ts$",
7073
"transform": {
7174
"^.+\\.(t|j)s$": "ts-jest"
7275
},

Diff for: server/src/app.module.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { loadDBSetting } from './common/database/load.config';
99
winstonModule,
1010
ConfigModule.forRoot({
1111
isGlobal: true,
12-
envFilePath: `${__dirname}/src/configs/.env.db.${process.env.NODE_ENV === 'test' ? 'test' : 'production'}`,
12+
envFilePath: `${process.cwd()}/configs/.env.db.${process.env.NODE_ENV === 'test' ? 'test' : 'production'}`,
1313
}),
1414
TypeOrmModule.forRootAsync({
1515
imports: [ConfigModule],

Diff for: server/src/blog/blog.entity.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { Feed } from 'src/feed/feed.entity';
2-
import { RssInformation } from 'src/rss/rss.entity';
1+
import { Feed } from '../feed/feed.entity';
2+
import { RssInformation } from '../rss/rss.entity';
33
import { Entity, OneToMany } from 'typeorm';
44

55
@Entity({

Diff for: server/src/common/database/load.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export function loadDBSetting(configService: ConfigService) {
77
const port = configService.get<number>('DB_PORT');
88
const username = configService.get<string>('DB_USERNAME');
99
const password = configService.get<string>('DB_PASSWORD');
10-
const entities = [__dirname + '/../**/*.entity.{js,ts}'];
10+
const entities = [`${__dirname}/../../**/*.entity.{js,ts}`];
1111
const synchronize = true;
1212
const logging = process.env.NODE_ENV === 'production' ? false : true;
1313

Diff for: server/src/feed/feed.entity.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { Blog } from 'src/blog/blog.entity';
21
import {
32
BaseEntity,
43
Column,
@@ -7,6 +6,7 @@ import {
76
ManyToOne,
87
PrimaryGeneratedColumn,
98
} from 'typeorm';
9+
import { Blog } from '../blog/blog.entity';
1010

1111
@Entity({ name: 'feed' })
1212
export class Feed extends BaseEntity {
@@ -15,7 +15,7 @@ export class Feed extends BaseEntity {
1515

1616
@Column({
1717
name: 'created_at',
18-
type: 'timestamp',
18+
type: 'datetime',
1919
nullable: false,
2020
})
2121
createdAt: Date;

Diff for: server/test/app.e2e-spec.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Test, TestingModule } from '@nestjs/testing';
22
import { INestApplication } from '@nestjs/common';
33
import * as request from 'supertest';
4-
import { AppModule } from './../src/app.module';
4+
import { AppModule } from '../src/app.module';
55

66
describe('AppController (e2e)', () => {
77
let app: INestApplication;
@@ -18,7 +18,7 @@ describe('AppController (e2e)', () => {
1818
it('/ (GET)', () => {
1919
return request(app.getHttpServer())
2020
.get('/')
21-
.expect(200)
22-
.expect('Hello World!');
21+
.expect(404)
22+
.expect('Not Found');
2323
});
2424
});

Diff for: server/test/test.spec.ts

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { add } from '../src/test';
2+
3+
describe('test', () => {
4+
test('1', () => {
5+
expect(add(1, 1)).toBe(2);
6+
});
7+
});

Diff for: server/tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"target": "ES2021",
1010
"sourceMap": true,
1111
"outDir": "./dist",
12-
"baseUrl": "./",
12+
"baseUrl": "..",
1313
"incremental": true,
1414
"skipLibCheck": true,
1515
"strictNullChecks": false,

0 commit comments

Comments
 (0)