Skip to content

Commit e20b2ac

Browse files
committed
test optimize combinations
1 parent 810dddf commit e20b2ac

File tree

1 file changed

+59
-48
lines changed

1 file changed

+59
-48
lines changed

test/TestCases.test.js

Lines changed: 59 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -17,54 +17,65 @@ describe("TestCases", function() {
1717
})
1818
};
1919
});
20-
categories.forEach(function(category) {
21-
describe(category.name, function() {
22-
category.tests.forEach(function(testName) {
23-
var suite = describe(testName, function() {});
24-
it("should compile " + testName, function(done) {
25-
var testDirectory = path.join(casesPath, category.name, testName);
26-
var outputDirectory = path.join(__dirname, "js", category.name, testName);
27-
webpack({
28-
context: casesPath,
29-
entry: "./" + category.name + "/" + testName +"/index",
30-
target: "async-node",
31-
devtool: "eval",
32-
output: {
33-
pathinfo: true,
34-
path: outputDirectory,
35-
filename: "bundle.js"
36-
},
37-
module: {
38-
loaders: [
39-
{ test: /\.json$/, loader: "json" },
40-
{ test: /\.coffee$/, loader: "coffee" },
41-
{ test: /\.jade$/, loader: "jade" }
42-
]
43-
}
44-
}, function(err, stats) {
45-
if(err) return done(err);
46-
var jsonStats = stats.toJson();
47-
if(checkArrayExpectation(testDirectory, jsonStats, "error", "Error", done)) return;
48-
if(checkArrayExpectation(testDirectory, jsonStats, "warning", "Warning", done)) return;
49-
var exportedTest = 0;
50-
function _it(title, fn) {
51-
var test = new Test(title, fn);
52-
suite.addTest(test);
53-
exportedTest++;
54-
return test;
55-
}
56-
function _require(module) {
57-
if(module.substr(0, 2) === "./") {
58-
var p = path.join(outputDirectory, module);
59-
var fn = vm.runInThisContext("(function(require, module, exports, __dirname, it) {" + fs.readFileSync(p, "utf-8") + "\n})", p);
60-
var module = { exports: {} };
61-
fn.call(module.exports, _require, module, module.exports, outputDirectory, _it);
62-
return module.exports;
63-
} else return require(module);
64-
}
65-
_require("./bundle.js");
66-
if(exportedTest === 0) return done(new Error("No tests exported by test case"));
67-
done();
20+
[
21+
{ name: "normal" },
22+
{ name: "minimized", optimize: { minimize: true } },
23+
{ name: "deduped", optimize: { dedupe: true } },
24+
{ name: "minimized-deduped", optimize: { minimize: true, dedupe: true } },
25+
{ name: "optimized", optimize: { minimize: true, dedupe: true, occurenceOrder: true } }
26+
].forEach(function(config) {
27+
describe(config.name, function() {
28+
categories.forEach(function(category) {
29+
describe(category.name, function() {
30+
category.tests.forEach(function(testName) {
31+
var suite = describe(testName, function() {});
32+
it("should compile " + testName, function(done) {
33+
var testDirectory = path.join(casesPath, category.name, testName);
34+
var outputDirectory = path.join(__dirname, "js", config.name, category.name, testName);
35+
webpack({
36+
context: casesPath,
37+
entry: "./" + category.name + "/" + testName +"/index",
38+
target: "async-node",
39+
devtool: "eval",
40+
output: {
41+
pathinfo: true,
42+
path: outputDirectory,
43+
filename: "bundle.js"
44+
},
45+
optimize: config.optimize,
46+
module: {
47+
loaders: [
48+
{ test: /\.json$/, loader: "json" },
49+
{ test: /\.coffee$/, loader: "coffee" },
50+
{ test: /\.jade$/, loader: "jade" }
51+
]
52+
}
53+
}, function(err, stats) {
54+
if(err) return done(err);
55+
var jsonStats = stats.toJson();
56+
if(checkArrayExpectation(testDirectory, jsonStats, "error", "Error", done)) return;
57+
if(checkArrayExpectation(testDirectory, jsonStats, "warning", "Warning", done)) return;
58+
var exportedTest = 0;
59+
function _it(title, fn) {
60+
var test = new Test(title, fn);
61+
suite.addTest(test);
62+
exportedTest++;
63+
return test;
64+
}
65+
function _require(module) {
66+
if(module.substr(0, 2) === "./") {
67+
var p = path.join(outputDirectory, module);
68+
var fn = vm.runInThisContext("(function(require, module, exports, __dirname, it) {" + fs.readFileSync(p, "utf-8") + "\n})", p);
69+
var module = { exports: {} };
70+
fn.call(module.exports, _require, module, module.exports, outputDirectory, _it);
71+
return module.exports;
72+
} else return require(module);
73+
}
74+
_require("./bundle.js");
75+
if(exportedTest === 0) return done(new Error("No tests exported by test case"));
76+
done();
77+
});
78+
});
6879
});
6980
});
7081
});

0 commit comments

Comments
 (0)