mirror of https://github.com/webpack/webpack.git
Add more tests for hash and hashWithLength generation
This commit is contained in:
parent
d9ac04380e
commit
8f31fd18cc
|
|
@ -1,17 +1,37 @@
|
|||
var fs = require("fs");
|
||||
require("should");
|
||||
|
||||
var verifyFilenameLength = function (files, regex, expectedNameLength) {
|
||||
for(var j = 0, file; j < files.length; j++) {
|
||||
file = files[j];
|
||||
if (regex.test(file)) {
|
||||
file.should.match(new RegExp("^.{" + expectedNameLength + "}$"));
|
||||
return "./" + file;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
findBundle: function(i, options) {
|
||||
var files = fs.readdirSync(options.output.path);
|
||||
|
||||
var expectedNameLength = options.amd.expectedFilenameLength;
|
||||
var bundleDetect = new RegExp("^bundle" + i, "i");
|
||||
for(var j = 0, file; j < files.length; j++) {
|
||||
file = files[j];
|
||||
if (bundleDetect.test(file)) {
|
||||
file.should.match(new RegExp("^.{" + expectedNameLength + "}$"));
|
||||
return "./" + file;
|
||||
}
|
||||
var bundleDetects = [{
|
||||
regex: new RegExp("^bundle" + i, "i"),
|
||||
expectedNameLength: options.amd.expectedFilenameLength
|
||||
}, {
|
||||
regex: new RegExp("^0.bundle" + i, "i"),
|
||||
expectedNameLenght: options.amd.expectedChunkFilenameLenght
|
||||
}
|
||||
]
|
||||
|
||||
var bundleDetect;
|
||||
for (bundleDetect of bundleDetects) {
|
||||
return verifyFilenameLength(
|
||||
files,
|
||||
bundleDetect.regex,
|
||||
bundleDetect.expectedNameLength
|
||||
)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -4,10 +4,11 @@ module.exports = [{
|
|||
output: {
|
||||
publicPath: "/[hash:6]/",
|
||||
filename: "bundle0.[hash:6].js",
|
||||
chunkFilename: "[id].bundle1.[hash:6].js"
|
||||
chunkFilename: "[id].bundle0.[hash:6].js"
|
||||
},
|
||||
amd: {
|
||||
expectedFilenameLength: 17
|
||||
expectedFilenameLength: 17,
|
||||
expectedChunkFilenameLength: 19
|
||||
}
|
||||
}, {
|
||||
name: "hash in publicPath",
|
||||
|
|
@ -17,7 +18,8 @@ module.exports = [{
|
|||
chunkFilename: "[id].bundle1.[hash].js"
|
||||
},
|
||||
amd: {
|
||||
expectedFilenameLength: 31
|
||||
expectedFilenameLength: 31,
|
||||
expectedChunkFilenameLength: 33
|
||||
}
|
||||
}, {
|
||||
name: "chunkhash with length",
|
||||
|
|
@ -26,7 +28,8 @@ module.exports = [{
|
|||
chunkFilename: "[id].bundle2.[chunkhash:8].js"
|
||||
},
|
||||
amd: {
|
||||
expectedFilenameLength: 19
|
||||
expectedFilenameLength: 19,
|
||||
expectedChunkFilenameLength: 21
|
||||
}
|
||||
}, {
|
||||
name: "chunkhash",
|
||||
|
|
@ -35,7 +38,8 @@ module.exports = [{
|
|||
chunkFilename: "[id].bundle3.[chunkhash].js"
|
||||
},
|
||||
amd: {
|
||||
expectedFilenameLength: 31
|
||||
expectedFilenameLength: 31,
|
||||
expectedChunkFilenameLength: 33
|
||||
}
|
||||
}, {
|
||||
name: "hash with and without length",
|
||||
|
|
@ -44,7 +48,8 @@ module.exports = [{
|
|||
chunkFilename: "[id].bundle4.[hash:8].js"
|
||||
},
|
||||
amd: {
|
||||
expectedFilenameLength: 31
|
||||
expectedFilenameLength: 31,
|
||||
expectedChunkFilenameLength: 21
|
||||
}
|
||||
}, {
|
||||
name: "hash with length",
|
||||
|
|
@ -53,7 +58,8 @@ module.exports = [{
|
|||
chunkFilename: "[id].bundle5.[hash:8].js"
|
||||
},
|
||||
amd: {
|
||||
expectedFilenameLength: 17
|
||||
expectedFilenameLength: 17,
|
||||
expectedChunkFilenameLength: 21
|
||||
}
|
||||
}, {
|
||||
name: "chunkhash in chunkFilename ",
|
||||
|
|
@ -62,12 +68,51 @@ module.exports = [{
|
|||
chunkFilename: "[id].bundle6.[chunkhash:7].js"
|
||||
},
|
||||
amd: {
|
||||
expectedFilenameLength: 31
|
||||
expectedFilenameLength: 31,
|
||||
expectedChunkFilenameLength: 20
|
||||
},
|
||||
plugins: [
|
||||
new webpack.HotModuleReplacementPlugin()
|
||||
]
|
||||
}];
|
||||
}, {
|
||||
name: "hash with length and chunkhash with length",
|
||||
output: {
|
||||
filename: "bundle7.[hash:7].js",
|
||||
chunkFilename: "[id].bundle7.[chunkhash:7].js"
|
||||
},
|
||||
target: "node",
|
||||
amd: {
|
||||
expectedFilenameLength: 18,
|
||||
expectedChunkFilenameLength: 20
|
||||
}
|
||||
}, {
|
||||
name: "hash with length in chunkFilename",
|
||||
output: {
|
||||
filename: "bundle8.[hash].js",
|
||||
chunkFilename: "[id].bundle8.[hash:7].js"
|
||||
|
||||
},
|
||||
target: "node",
|
||||
amd: {
|
||||
expectedFilenameLength: 31,
|
||||
expectedChunkFilenameLength: 20
|
||||
}
|
||||
},
|
||||
{
|
||||
name: "chunkhash with length in chunkFilename",
|
||||
output: {
|
||||
filename: "bundle9.[hash].js",
|
||||
chunkFilename: "[id].bundle9.[chunkhash:7].js"
|
||||
|
||||
},
|
||||
target: "node",
|
||||
amd: {
|
||||
expectedFilenameLength: 31,
|
||||
expectedChunkFilenameLength: 20
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
module.exports.forEach(function(options) {
|
||||
options.plugins = options.plugins || [];
|
||||
options.plugins.push(new webpack.DefinePlugin({
|
||||
|
|
|
|||
Loading…
Reference in New Issue