chore: quality of life improvements (#449)

This commit is contained in:
2022-04-13 22:16:34 +02:00
committed by GitHub
parent e916177569
commit c10817716e
34 changed files with 14038 additions and 11804 deletions

View File

@@ -1,51 +0,0 @@
const NodeEnvironment = require('jest-environment-node');
const { Server, createServer } = require('http');
const getPort = require('get-port');
const webpack = require('webpack');
const path = require('path');
const express = require('express');
const { default: createConfig } = require('../webpack.config');
const build = () => new Promise(async (resolve, reject) => {
const config = await createConfig({
test: true,
});
const port = await getPort();
const bundler = webpack(config);
bundler.run((err, stats) => {
if (err || !stats) {
return reject(err);
} else if (stats.hasErrors()) {
return reject(new Error('Webpack errors'));
}
const app = express();
app.use(express.static(path.join(__dirname, '..', 'dist')));
const server = createServer(app);
const listener = server.listen(port, '127.0.0.1', () => {
resolve(listener);
});
});
});
class CustomEnvironment extends NodeEnvironment {
constructor(config) {
super(config);
}
async setup() {
await super.setup();
this._server = await build();
const address = this._server.address();
this.global.testUrl = `http://${address.address}:${address.port}`
}
async teardown() {
await super.teardown();
if (!this._server) {
return;
}
this._server.close();
}
}
module.exports = CustomEnvironment;

View File

@@ -1,4 +1,51 @@
require('ts-node/register');
const Env = require('./env-ts');
const NodeEnvironment = require('jest-environment-node');
const { Server, createServer } = require('http');
const webpack = require('webpack');
const path = require('path');
const express = require('express');
const { default: createConfig } = require('../webpack.config');
module.exports = Env;
const build = () => new Promise(async (resolve, reject) => {
const { default: getPort } = await import('get-port');
const config = await createConfig({
test: true,
});
const port = await getPort();
const bundler = webpack(config);
bundler.run((err, stats) => {
if (err || !stats) {
return reject(err);
} else if (stats.hasErrors()) {
return reject(new Error('Webpack errors'));
}
const app = express();
app.use(express.static(path.join(__dirname, '..', 'dist')));
const server = createServer(app);
const listener = server.listen(port, '127.0.0.1', () => {
resolve(listener);
});
});
});
class CustomEnvironment extends NodeEnvironment {
constructor(config) {
super(config);
}
async setup() {
await super.setup();
this._server = await build();
const address = this._server.address();
this.global.testUrl = `http://${address.address}:${address.port}`
}
async teardown() {
await super.teardown();
if (!this._server) {
return;
}
this._server.close();
}
}
module.exports = CustomEnvironment;