mirror of
https://github.com/facebook/docusaurus.git
synced 2025-05-12 16:47:26 +02:00
test: compile webpack config for dev and prod
This commit is contained in:
parent
a4f0ed7c94
commit
f07e7791fa
5 changed files with 72 additions and 48 deletions
3
.prettierignore
Normal file
3
.prettierignore
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
generated
|
||||||
|
__fixtures__
|
||||||
|
dist
|
29
test/webpack/base.test.js
Normal file
29
test/webpack/base.test.js
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
import createDevConfig from '@lib/webpack/dev';
|
||||||
|
import compile from './compile';
|
||||||
|
import loadSetup from '../loadSetup';
|
||||||
|
|
||||||
|
describe('webpack dev config', () => {
|
||||||
|
const timeOut = 20000; // 20 seconds
|
||||||
|
|
||||||
|
test(
|
||||||
|
'simple',
|
||||||
|
async () => {
|
||||||
|
console.log = jest.fn();
|
||||||
|
const props = await loadSetup('simple');
|
||||||
|
const config = createDevConfig(props).toConfig();
|
||||||
|
return expect(compile(config)).resolves.toBe('Compiled successfully');
|
||||||
|
},
|
||||||
|
timeOut
|
||||||
|
);
|
||||||
|
|
||||||
|
test(
|
||||||
|
'custom',
|
||||||
|
async () => {
|
||||||
|
console.log = jest.fn();
|
||||||
|
const props = await loadSetup('custom');
|
||||||
|
const config = createDevConfig(props).toConfig();
|
||||||
|
return expect(compile(config)).resolves.toBe('Compiled successfully');
|
||||||
|
},
|
||||||
|
timeOut
|
||||||
|
);
|
||||||
|
});
|
12
test/webpack/compile.js
Normal file
12
test/webpack/compile.js
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
import webpack from 'webpack';
|
||||||
|
|
||||||
|
export default function compile(config) {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
webpack(config, (err, stats) => {
|
||||||
|
if (err || stats.hasErrors()) {
|
||||||
|
reject(new Error(`Failed to compile with errors`));
|
||||||
|
}
|
||||||
|
resolve('Compiled successfully');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
|
@ -1,48 +0,0 @@
|
||||||
import webpack from 'webpack';
|
|
||||||
import createDevConfig from '@lib/webpack/dev';
|
|
||||||
import createProdConfig from '@lib/webpack/prod';
|
|
||||||
import loadSetup from '../loadSetup';
|
|
||||||
|
|
||||||
// webpack compiler helper function
|
|
||||||
function compile(config) {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
webpack(config, (err, stats) => {
|
|
||||||
if (err || stats.hasErrors()) {
|
|
||||||
reject(new Error(`Failed to compile with errors`));
|
|
||||||
}
|
|
||||||
resolve('Compiled successfully');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
describe('webpack', () => {
|
|
||||||
const timeOut = 10000; // 10 seconds
|
|
||||||
|
|
||||||
test('dev simple', async () => {
|
|
||||||
console.log = jest.fn();
|
|
||||||
const props = await loadSetup('simple');
|
|
||||||
const config = createDevConfig(props).toConfig();
|
|
||||||
return expect(compile(config)).resolves.toBe('Compiled successfully');
|
|
||||||
}, timeOut);
|
|
||||||
|
|
||||||
test('dev custom', async () => {
|
|
||||||
console.log = jest.fn();
|
|
||||||
const props = await loadSetup('custom');
|
|
||||||
const config = createDevConfig(props).toConfig();
|
|
||||||
return expect(compile(config)).resolves.toBe('Compiled successfully');
|
|
||||||
}, timeOut);
|
|
||||||
|
|
||||||
test('prod simple', async () => {
|
|
||||||
console.log = jest.fn();
|
|
||||||
const props = await loadSetup('simple');
|
|
||||||
const config = createProdConfig(props).toConfig();
|
|
||||||
return expect(compile(config)).resolves.toBe('Compiled successfully');
|
|
||||||
}, timeOut);
|
|
||||||
|
|
||||||
test('prod custom', async () => {
|
|
||||||
console.log = jest.fn();
|
|
||||||
const props = await loadSetup('custom');
|
|
||||||
const config = createProdConfig(props).toConfig();
|
|
||||||
return expect(compile(config)).resolves.toBe('Compiled successfully');
|
|
||||||
}, timeOut);
|
|
||||||
});
|
|
28
test/webpack/prod.test.js
Normal file
28
test/webpack/prod.test.js
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
import createProdConfig from '@lib/webpack/prod';
|
||||||
|
import compile from './compile';
|
||||||
|
import loadSetup from '../loadSetup';
|
||||||
|
|
||||||
|
describe('webpack production config', () => {
|
||||||
|
const timeOut = 20000; // 20 seconds
|
||||||
|
test(
|
||||||
|
'simple',
|
||||||
|
async () => {
|
||||||
|
console.log = jest.fn();
|
||||||
|
const props = await loadSetup('simple');
|
||||||
|
const config = createProdConfig(props).toConfig();
|
||||||
|
return expect(compile(config)).resolves.toBe('Compiled successfully');
|
||||||
|
},
|
||||||
|
timeOut
|
||||||
|
);
|
||||||
|
|
||||||
|
test(
|
||||||
|
'custom',
|
||||||
|
async () => {
|
||||||
|
console.log = jest.fn();
|
||||||
|
const props = await loadSetup('custom');
|
||||||
|
const config = createProdConfig(props).toConfig();
|
||||||
|
return expect(compile(config)).resolves.toBe('Compiled successfully');
|
||||||
|
},
|
||||||
|
timeOut
|
||||||
|
);
|
||||||
|
});
|
Loading…
Add table
Add a link
Reference in a new issue