mirror of
https://github.com/morten-olsen/parcel.git
synced 2026-02-08 01:36:24 +01:00
chore: quality of life improvements (#449)
This commit is contained in:
@@ -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;
|
||||
53
tests/env.js
53
tests/env.js
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user