Skip to content

Commit 9b89974

Browse files
committed
cleaning code
1 parent 142347c commit 9b89974

5 files changed

Lines changed: 48 additions & 46 deletions

File tree

js_npm/rest/realworld-app/em/app-driver.js

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
1-
const dbHandler = require("./db-handler");
2-
const http = require("http");
3-
const {AddressInfo} = require("net");
4-
5-
// const app = require("../src/dist/server");
1+
require('ts-node/register');
62

3+
const dbHandler = require("./db-handler");
74
const em = require("evomaster-client-js");
85
const superagent = require("superagent");
9-
const {getFreePort} =require("./get-free-port")
6+
const {getConnectionOptions} = require("typeorm");
7+
const {NestFactory} = require("@nestjs/core");
108

11-
class AppController extends em.SutController {
129

13-
setupForGeneratedTest(){
14-
return new Promise((resolve)=>{
15-
this.testcontainer = dbHandler.startDb();
16-
resolve(this.testcontainer);
17-
});
18-
}
10+
class AppController extends em.SutController {
1911

2012
getInfoForAuthentication(){
2113
let jwtLogin = new em.dto.JsonTokenPostLoginDto();
@@ -78,26 +70,44 @@ class AppController extends em.SutController {
7870
}
7971

8072
startSut(){
81-
//TODO clean mysql db
82-
//docker run --name mysql_db -e MYSQL_ROOT_PASSWORD=test -e MYSQL_USER=test -e MYSQL_PASSWORD=test -e MYSQL_DATABASE=test -p 3306:3306 -d mysql:5.7.22
83-
//note that for this sut, do not support mysql:8.*
73+
8474
return new Promise(async (resolve) => {
85-
this.port = process.env.SUT_PORT || await getFreePort();
86-
this.server = await require("../src/server").bootstrap(this.port);
87-
this.baseUrlOfSut = "http://localhost:" + this.port;
88-
resolve("http://localhost:" + this.port);
75+
76+
//docker run --name mysql_db -e MYSQL_ROOT_PASSWORD=test -e MYSQL_USER=test -e MYSQL_PASSWORD=test -e MYSQL_DATABASE=test -p 3306:3306 -d mysql:5.7.22
77+
//note that for this sut, do not support mysql:8.*
78+
await dbHandler.startDb();
79+
80+
const connectionOptions = await getConnectionOptions();
81+
// modify the value of port
82+
Object.assign(connectionOptions, { port: process.env.DB_PORT || 3306});
83+
84+
const {ApplicationModule} = require("../src/app.module");
85+
86+
const appOptions = {cors: true};
87+
const app = await NestFactory.create(ApplicationModule, appOptions);
88+
app.setGlobalPrefix('api');
89+
90+
app.use('/swagger.json', (req, res) => {
91+
res.status(200);
92+
res.json(require('../swagger.json'));
93+
});
94+
95+
app.listen(0, "localhost", () => {
96+
this.server = app.getHttpServer();
97+
this.port = this.server.address().port;
98+
const url = "http://localhost:" + this.port;
99+
this.baseUrlOfSut = url;
100+
console.log("Started API at: " + url)
101+
resolve(url);
102+
});
89103
});
90104

91105
}
92106

93107
stopSut() {
94108
return new Promise( (async resolve => {
95109
await dbHandler.stopDb();
96-
await require("../src/server").stop().then(()=>{
97-
// process.exit();
98-
resolve();
99-
});
100-
110+
this.server.close(() => resolve())
101111
})
102112
);
103113
}

js_npm/rest/realworld-app/em/db-handler.js

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ const mysql = require('mysql');
33

44
//docker run --name mysql_db -e MYSQL_ROOT_PASSWORD=test -e MYSQL_USER=test -e MYSQL_PASSWORD=test -e MYSQL_DATABASE=test -p 3306:3306 -d mysql:5.7.22
55

6-
let dbPort = 3306;
7-
let exposedDbPort = 0;
8-
let dbURL = "mysql://localhost/test"
96
let test_container = null;
107
let connection = null;
118

@@ -26,27 +23,22 @@ module.exports ={
2623

2724
startDb: async () =>{
2825

29-
dbPort = process.env.DB_PORT || 3306;
26+
const dbPort = 3306;
3027

31-
if(process.env.DOCKER_DBC && process.env.DOCKER_DBC === '0'){
32-
process.env.DB_PORT = dbPort
33-
console.log("use local mysql on port:" + dbPort)
34-
}else{
35-
console.log("start db with test container")
36-
test_container= await new GenericContainer("mysql:5.7.22")
28+
console.log("start db with test container")
29+
test_container= await new GenericContainer("mysql:5.7.22")
3730
.withEnv("MYSQL_ROOT_PASSWORD", "test")
3831
.withEnv("MYSQL_USER", "test")
3932
.withEnv("MYSQL_PASSWORD", "test")
4033
.withEnv("MYSQL_DATABASE", "test")
4134
.withExposedPorts(dbPort)
4235
.withTmpFs({ "/var/lib/mysql": "rw" })
4336
.start();
44-
exposedDbPort = test_container.getMappedPort(dbPort)
45-
process.env.DB_PORT = exposedDbPort
46-
dbURL = `mysql://localhost:${exposedDbPort}/test`
37+
const exposedDbPort = test_container.getMappedPort(dbPort)
38+
process.env.DB_PORT = exposedDbPort
39+
const dbURL = `mysql://localhost:${exposedDbPort}/test`
4740

48-
console.log("connecting "+dbURL);
49-
}
41+
console.log("connecting "+dbURL);
5042

5143
connection = mysql.createConnection({
5244
host : 'localhost',

js_npm/rest/realworld-app/ormconfig.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ module.exports = {
55
"username": "test",
66
"password": "test",
77
"database": "test",
8-
"entities": [ process.env.NODE_ENV == 'production' ? __dirname + '/src/dist/**/**.entity.js' : (process.env.NODE_ENV == 'em_production'? __dirname + '/instrumented/src/**/**.entity.js':__dirname + '/src/src/**/**.entity.ts') ],
8+
"entities": [ process.env.NODE_ENV == 'production' ? __dirname + '/src/build/**/**.entity.js' : (process.env.NODE_ENV == 'em_production'? __dirname + '/instrumented/src/**/**.entity.js':__dirname + '/src/src/**/**.entity.ts') ],
99
"migrationsTableName": "migrations",
1010
"migrations": [process.env.NODE_ENV == 'em_production'? "instrumented/src/database/migration/*.js": "src/database/migration/*.js"],
1111
"cli": {

js_npm/rest/realworld-app/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
"description": "[![Build Status](https://travis-ci.org/anishkny/node-express-realworld-example-app.svg?branch=master)](https://travis-ci.org/anishkny/node-express-realworld-example-app)",
55
"main": "src/index.js",
66
"scripts": {
7-
"build": "rimraf dist && tsc",
7+
"build": "rimraf build && tsc",
88
"em:run": "cross-env NODE_ENV=em_production node instrumented/em/em-main.js",
9-
"em:build": "npm run build && rimraf instrumented & babel dist -d instrumented/src --copy-files && babel em -d instrumented/em --copy-files && babel swagger.json -d instrumented --copy-files && babel em -d dist/em --copy-files",
9+
"em:build": "npm run build && rimraf instrumented & babel build -d instrumented/src --copy-files && babel em -d instrumented/em --copy-files && babel swagger.json -d instrumented --copy-files && babel em -d build/em --copy-files",
1010
"start": "node src/index.js",
1111
"start:watch": "nodemon",
1212
"prestart:prod": "tsc",
13-
"start:prod": "NODE_ENV=production node src/dist/main.js",
13+
"start:prod": "cross-env NODE_ENV=production node build/src/main.js",
1414
"test": "jest --config=jest.json",
1515
"test:watch": "jest --watch --config=jest.json",
1616
"test:coverage": "jest --config=jest.json --coverage --coverageDirectory=coverage"
@@ -92,7 +92,7 @@
9292
},
9393
"babel": {
9494
"only": [
95-
"dist"
95+
"build"
9696
],
9797
"plugins": [
9898
"module:evomaster-client-js"

js_npm/rest/realworld-app/tsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"target": "es6",
1212
"sourceMap": true,
1313
"allowJs": true,
14-
"outDir": "./dist"
14+
"outDir": "./build/src"
1515
},
1616
"include": [
1717
"src/**/*"

0 commit comments

Comments
 (0)