Skip to content

Commit

Permalink
add test case
Browse files Browse the repository at this point in the history
  • Loading branch information
sokra committed Nov 20, 2021
1 parent 0010974 commit 200ab0e
Show file tree
Hide file tree
Showing 13 changed files with 98 additions and 0 deletions.
61 changes: 61 additions & 0 deletions test/Watch.test.js
@@ -0,0 +1,61 @@
"use strict";

require("./helpers/warmup-webpack");

const path = require("path");
const webpack = require("..");
const { createFsFromVolume, Volume } = require("memfs");

describe("Watch", () => {
jest.setTimeout(10000);

it("should only compile a single time", done => {
let counterBeforeCompile = 0;
let counterDone = 0;
let counterHandler = 0;
const compiler = webpack(
{
context: path.resolve(__dirname, "fixtures/watch"),
watch: true,
mode: "development",
snapshot: {
managedPaths: [/^(.+?[\\/]node_modules[\\/])/]
},
experiments: {
futureDefaults: true
},
module: {
// unsafeCache: false,
rules: [
{
test: /\.js$/,
use: "some-loader"
}
]
},
plugins: [
c => {
c.hooks.beforeCompile.tap("test", () => {
counterBeforeCompile++;
});
c.hooks.done.tap("test", () => {
counterDone++;
});
}
]
},
(err, stats) => {
if (err) return done(err);
if (stats.hasErrors()) return done(new Error(stats.toString()));
counterHandler++;
}
);
compiler.outputFileSystem = createFsFromVolume(new Volume());
setTimeout(() => {
expect(counterBeforeCompile).toBe(1);
expect(counterDone).toBe(1);
expect(counterHandler).toBe(1);
compiler.close(done);
}, 5000);
});
});
3 changes: 3 additions & 0 deletions test/fixtures/watch/node_modules/inline-loader/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions test/fixtures/watch/node_modules/inline-loader/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file.
4 changes: 4 additions & 0 deletions test/fixtures/watch/node_modules/nested-package1/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions test/fixtures/watch/node_modules/package/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Empty file.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions test/fixtures/watch/node_modules/package/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions test/fixtures/watch/node_modules/some-loader/index.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions test/fixtures/watch/node_modules/some-loader/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions test/fixtures/watch/src/index.js
@@ -0,0 +1,5 @@
import "package";
import "inline-loader!package";

import "./local";
import "inline-loader!./local";
2 changes: 2 additions & 0 deletions test/fixtures/watch/src/local.js
@@ -0,0 +1,2 @@
import "package";
import "inline-loader!package";

0 comments on commit 200ab0e

Please sign in to comment.