fix(jest): custom cli options not working

This commit is contained in:
chenos 2022-02-15 09:54:57 +08:00
parent 31691e1f8e
commit d81d1979b0
4 changed files with 39 additions and 54 deletions

9
jest.cli.js Normal file
View File

@ -0,0 +1,9 @@
const yargs = require('yargs');
if (yargs.argv.dbDialect) {
process.env.DB_DIALECT = yargs.argv.dbDialect;
}
console.log('DB_DIALECT: ', process.env.DB_DIALECT);
require('jest-cli/bin/jest');

View File

@ -2,7 +2,6 @@ import dotenv from 'dotenv';
import { existsSync } from 'fs'; import { existsSync } from 'fs';
import { resolve } from 'path'; import { resolve } from 'path';
import prettyFormat from 'pretty-format'; import prettyFormat from 'pretty-format';
import yargs from 'yargs';
const envFile = existsSync(resolve(__dirname, '.env.test')) ? '.env.test' : '.env'; const envFile = existsSync(resolve(__dirname, '.env.test')) ? '.env.test' : '.env';
@ -10,10 +9,6 @@ dotenv.config({
path: resolve(__dirname, envFile), path: resolve(__dirname, envFile),
}); });
if (yargs.argv.dbDialect) {
process.env.DB_DIALECT = yargs.argv.dbDialect as any;
}
global['prettyFormat'] = prettyFormat; global['prettyFormat'] = prettyFormat;
jest.setTimeout(300000); jest.setTimeout(300000);
@ -27,8 +22,8 @@ jest.setTimeout(300000);
throw new Error(message); throw new Error(message);
}); });
}); });
afterAll(() => { afterAll(() => {
spy.mockRestore(); spy.mockRestore();
}); });
})(); })();

View File

@ -13,7 +13,7 @@
"start-server": "ts-node-dev -r dotenv/config -r tsconfig-paths/register ./packages/api/src/index.ts", "start-server": "ts-node-dev -r dotenv/config -r tsconfig-paths/register ./packages/api/src/index.ts",
"build": "lerna run build", "build": "lerna run build",
"build-docs": "dumi build", "build-docs": "dumi build",
"test": "jest", "test": "node ./jest.cli.js",
"lint": "eslint ." "lint": "eslint ."
}, },
"resolutions": { "resolutions": {

View File

@ -4,30 +4,11 @@ import { resolve } from 'path';
const start = Date.now(); const start = Date.now();
const api = new Application({ const api = new Application({
database: database: {
process.env.DB_DIALECT === 'sqlite'
? {
dialect: process.env.DB_DIALECT as any,
storage: resolve(process.cwd(), './db.sqlite'), storage: resolve(process.cwd(), './db.sqlite'),
pool: {
max: 5,
min: 0,
acquire: 60000,
idle: 10000,
},
logging: process.env.DB_LOG_SQL === 'on' ? console.log : false,
define: {},
sync: {
force: false,
alter: {
drop: false,
},
},
}
: {
username: process.env.DB_USER, username: process.env.DB_USER,
password: process.env.DB_PASSWORD, password: process.env.DB_PASSWORD,
database: 'postgres', database: process.env.DB_DATABASE,
host: process.env.DB_HOST, host: process.env.DB_HOST,
port: process.env.DB_PORT as any, port: process.env.DB_PORT as any,
dialect: process.env.DB_DIALECT as any, dialect: process.env.DB_DIALECT as any,