Skip to content

Commit f6dc680

Browse files
authored
tests(loader-generator): add tests for loader generator (#1234)
* tests(loader-generator): add tests for loader generator add tests for loader generator * tests(loader): fix import order fix import order
1 parent 35d1381 commit f6dc680

File tree

3 files changed

+53
-15
lines changed

3 files changed

+53
-15
lines changed

package-lock.json

+7-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -198,11 +198,12 @@
198198
"lint-staged": "^9.4.2",
199199
"nyc": "^14.1.1",
200200
"prettier": "1.18.2",
201+
"readable-stream": "^3.5.0",
201202
"ts-jest": "^24.1.0",
202203
"typedoc": "^0.15.0",
203204
"typescript": "^3.7.2",
204205
"webpack": "^5.0.0-beta.12",
205-
"yeoman-test": "^2.1.0",
206-
"readable-stream": "^3.5.0"
206+
"yeoman-assert": "^3.1.1",
207+
"yeoman-test": "^2.1.0"
207208
}
208209
}
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,44 @@
1-
import { makeLoaderName } from "../loader-generator";
2-
3-
describe("makeLoaderName", () => {
4-
it("should kebab-case loader name and append '-loader'", () => {
5-
const loaderName = makeLoaderName("This is a test");
6-
expect(loaderName).toEqual("this-is-a-test-loader");
7-
});
8-
9-
it("should not modify a properly formatted loader name", () => {
10-
const loaderName = makeLoaderName("properly-named-loader");
11-
expect(loaderName).toEqual("properly-named-loader");
12-
});
1+
import { join } from 'path';
2+
import { run } from 'yeoman-test';
3+
const assert = require('yeoman-assert');
4+
import { makeLoaderName } from '../loader-generator';
5+
6+
describe('loader generator', () => {
7+
it('generates a default loader', async () => {
8+
const outputDir = await run(join(__dirname, '../loader-generator'));
9+
const loaderDir = `${outputDir}/my-loader`;
10+
const srcFiles = ['cjs.js', 'index.js'];
11+
const testFiles = ['functional.test.js', 'test-utils.js', 'unit.test.js', 'fixtures/simple-file.js'];
12+
const exampleFiles = ['webpack.config.js', 'src/index.js', 'src/lazy-module.js', 'src/static-esm-module.js'];
13+
14+
// Check that files in all folders are scaffolded. Checking them separately so we know which directory has the problem
15+
// assert for src files
16+
assert.file([...srcFiles.map(file => `${loaderDir}/src/${file}`)]);
17+
18+
// assert for test files
19+
assert.file([...testFiles.map(file => `${loaderDir}/test/${file}`)]);
20+
21+
// assert for example files
22+
assert.file([...exampleFiles.map(file => `${loaderDir}/examples/simple/${file}`)]);
23+
24+
// Check the contents of the webpack config and loader file
25+
assert.fileContent([
26+
[`${loaderDir}/examples/simple/webpack.config.js`, 'resolveLoader: {'],
27+
[`${loaderDir}/src/index.js`, 'export default function loader(source) {'],
28+
]);
29+
30+
// higher timeout so travis has enough time to execute
31+
}, 10000);
32+
});
33+
34+
describe('makeLoaderName', () => {
35+
it("should kebab-case loader name and append '-loader'", () => {
36+
const loaderName = makeLoaderName('This is a test');
37+
expect(loaderName).toEqual('this-is-a-test-loader');
38+
});
39+
40+
it('should not modify a properly formatted loader name', () => {
41+
const loaderName = makeLoaderName('properly-named-loader');
42+
expect(loaderName).toEqual('properly-named-loader');
43+
});
1344
});

0 commit comments

Comments
 (0)