mirror of
https://github.com/developit/microbundle.git
synced 2026-01-25 14:06:50 +00:00
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
import path from 'path';
|
|
import fs from 'fs-extra';
|
|
import dirTree from 'directory-tree';
|
|
import { strip } from './lib/util';
|
|
import microbundle from '../src/index';
|
|
|
|
const FIXTURES_DIR = `${__dirname}/fixtures`;
|
|
|
|
const times = (n, fn) => Array.from({ length: n }).map(i => fn(i));
|
|
const join = (arr, delimiter = '') => arr.join(delimiter);
|
|
const constant = konst => () => konst;
|
|
|
|
const printTree = (nodes, indentLevel = 0) => {
|
|
const indent = join(times(indentLevel, constant(' ')));
|
|
return join(nodes.map(node =>
|
|
`${indent}${node.name}\n${node.type === 'directory' ? printTree(node.children, indentLevel + 1) : ''}`
|
|
));
|
|
};
|
|
|
|
describe('fixtures', () => {
|
|
fs.readdirSync(FIXTURES_DIR).forEach(fixtureDir => {
|
|
const fixturePath = path.resolve(path.join(FIXTURES_DIR, fixtureDir));
|
|
|
|
if (!fs.statSync(fixturePath).isDirectory()) {
|
|
return;
|
|
}
|
|
|
|
it(fixtureDir, async () => {
|
|
const output = await microbundle({
|
|
cwd: path.resolve(fixturePath),
|
|
formats: 'es,cjs,umd'
|
|
});
|
|
|
|
const printedDir = printTree([dirTree(fixturePath)]);
|
|
|
|
expect(`${printedDir}\n\n${strip(output)}`).toMatchSnapshot();
|
|
});
|
|
});
|
|
});
|