diff --git a/spec/HtmlWebpackPluginSpec.js b/spec/HtmlWebpackPluginSpec.js
index 873952a..58b5167 100644
--- a/spec/HtmlWebpackPluginSpec.js
+++ b/spec/HtmlWebpackPluginSpec.js
@@ -38,11 +38,19 @@ function testHtmlPlugin (webpackConfig, expectedResults, outputFile, done, expec
return done();
}
var htmlContent = fs.readFileSync(path.join(OUTPUT_DIR, outputFile)).toString();
-
+ var chunksInfo;
for (var i = 0; i < expectedResults.length; i++) {
var expectedResult = expectedResults[i];
if (expectedResult instanceof RegExp) {
expect(htmlContent).toMatch(expectedResult);
+ } else if (typeof expectedResult === 'object') {
+ if (expectedResult.type === 'chunkhash') {
+ if (!chunksInfo) {
+ chunksInfo = getChunksInfoFromStats(stats);
+ }
+ var chunkhash = chunksInfo[expectedResult.chunkName].hash;
+ expect(htmlContent).toContain(expectedResult.containStr.replace('%chunkhash%', chunkhash));
+ }
} else {
expect(htmlContent).toContain(expectedResult.replace('%hash%', stats.hash));
}
@@ -51,6 +59,19 @@ function testHtmlPlugin (webpackConfig, expectedResults, outputFile, done, expec
});
}
+function getChunksInfoFromStats (stats) {
+ var chunks = stats.compilation.getStats().toJson().chunks;
+ var chunksInfo = {};
+ for (var i = 0; i < chunks.length; i++) {
+ var chunk = chunks[i];
+ var chunkName = chunk.names[0];
+ if (chunkName) {
+ chunksInfo[chunkName] = chunk;
+ }
+ }
+ return chunksInfo;
+}
+
describe('HtmlWebpackPlugin', function () {
beforeEach(function (done) {
rm_rf(OUTPUT_DIR, done);
@@ -258,6 +279,26 @@ describe('HtmlWebpackPlugin', function () {
}, ['
+