Skip to content

Commit b758d86

Browse files
committed
added Stats toString tests
1 parent 07cf351 commit b758d86

14 files changed

Lines changed: 129 additions & 0 deletions

File tree

test/Stats.test.js

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*globals describe it */
2+
require("should");
3+
var path = require("path");
4+
var fs = require("fs");
5+
6+
var webpack = require("../lib/webpack");
7+
8+
var base = path.join(__dirname, "fixtures", "stats");
9+
var tests = fs.readdirSync(base);
10+
11+
describe("Stats", function() {
12+
tests.forEach(function(testName) {
13+
it("should print correct stats for " + testName, function(done) {
14+
var options = {
15+
entry: "./index"
16+
};
17+
if(fs.existsSync(path.join(base, testName, "webpack.config.js"))) {
18+
options = require(path.join(base, testName, "webpack.config.js"));
19+
}
20+
options.context = path.join(base, testName);
21+
var c = webpack(options);
22+
var files = {};
23+
c.outputFileSystem = {
24+
join: path.join.bind(path),
25+
mkdirp: function(path, callback) {
26+
callback();
27+
},
28+
writeFile: function(name, content, callback) {
29+
files[name] = content.toString("utf-8");
30+
callback();
31+
}
32+
};
33+
c.apply(new webpack.optimize.OccurrenceOrderPlugin());
34+
c.run(function(err, stats) {
35+
if(err) return done(err);
36+
var actual = stats.toString({
37+
colors: false
38+
});
39+
(typeof actual).should.be.eql("string");
40+
actual = actual.replace(/[0-9]+(\s?ms)/g, "X$1");
41+
var expected = fs.readFileSync(path.join(base, testName, "expected.txt"), "utf-8");
42+
if(actual !== expected) {
43+
fs.writeFileSync(path.join(base, testName, "actual.txt"), actual, "utf-8");
44+
} else if(fs.existsSync(path.join(base, testName, "actual.txt"))) {
45+
fs.unlinkSync(path.join(base, testName, "actual.txt"));
46+
}
47+
actual.should.be.eql(expected);
48+
done();
49+
});
50+
});
51+
});
52+
});

test/fixtures/stats/chunks/a.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "a";

test/fixtures/stats/chunks/b.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "b";

test/fixtures/stats/chunks/c.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
require.ensure(["./d", "./e"], function(require) {});

test/fixtures/stats/chunks/d.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "d";

test/fixtures/stats/chunks/e.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = "e";
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
Hash: 5a1e8eb3492ffedbf5ac
2+
Version: webpack 1.8.9
3+
Time: Xms
4+
Asset Size Chunks Chunk Names
5+
bundle.js 3.85 kB 0 [emitted] main
6+
1.bundle.js 160 bytes 1 [emitted]
7+
2.bundle.js 123 bytes 2 [emitted]
8+
3.bundle.js 224 bytes 3 [emitted]
9+
chunk {0} bundle.js (main) 76 bytes [rendered]
10+
[0] (webpack)/test/fixtures/stats/chunks/index.js 53 bytes {0} [built]
11+
factory:Xms building:Xms = Xms
12+
[1] (webpack)/test/fixtures/stats/chunks/a.js 23 bytes {0} [built]
13+
[0] Xms -> factory:Xms building:Xms = Xms
14+
chunk {1} 1.bundle.js 55 bytes {0} [rendered]
15+
[3] (webpack)/test/fixtures/stats/chunks/c.js 55 bytes {1} [built]
16+
[0] Xms -> factory:Xms building:Xms = Xms
17+
chunk {2} 2.bundle.js 23 bytes {0} [rendered]
18+
[2] (webpack)/test/fixtures/stats/chunks/b.js 23 bytes {2} [built]
19+
[0] Xms -> factory:Xms building:Xms = Xms
20+
chunk {3} 3.bundle.js 46 bytes {1} [rendered]
21+
[4] (webpack)/test/fixtures/stats/chunks/d.js 23 bytes {3} [built]
22+
[0] Xms -> [3] Xms -> factory:Xms building:Xms = Xms
23+
[5] (webpack)/test/fixtures/stats/chunks/e.js 23 bytes {3} [built]
24+
[0] Xms -> [3] Xms -> factory:Xms building:Xms = Xms
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
require("./a");
2+
require(["./b"]);
3+
require(["./c"]);
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module.exports = {
2+
entry: "./index",
3+
profile: true,
4+
stats: {
5+
reasons: true,
6+
chunkModules: true,
7+
chunkOrigins: true,
8+
modules: true,
9+
cached: true,
10+
cachedAssets: true,
11+
source: true,
12+
errorDetails: true,
13+
publicPath: true
14+
}
15+
};
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Hash: 43e2ad3ef030cc5c6c92
2+
Version: webpack 1.8.9
3+
Time: Xms
4+
Asset Size Chunks Chunk Names
5+
bundle.js 1.41 kB 0 [emitted] main
6+
chunk {0} bundle.js (main) 0 bytes [rendered]
7+
[0] (webpack)/test/fixtures/stats/simple-more-info/index.js 0 bytes {0} [built]
8+
factory:Xms building:Xms = Xms

0 commit comments

Comments
 (0)