var path = require('path'); var fs = require('fs'); var webpack = require('webpack'); var rm_rf = require('rimraf'); var HtmlWebpackPlugin = require('../index.js'); var OUTPUT_DIR = path.join(__dirname, '..', 'dist'); function testHtmlPlugin(webpackConfig, htmlPluginOptions, expectedResults, done) { var outputHtmlFile = path.join(OUTPUT_DIR, 'index.html'); var htmlPlugin = htmlPluginOptions ? new HtmlWebpackPlugin(htmlPluginOptions) : new HtmlWebpackPlugin(); webpackConfig.plugins = [htmlPlugin]; webpack(webpackConfig, function(err, stats) { expect(err).toBeFalsy(); expect(stats.hasErrors()).toBe(false); var htmlContent = fs.readFileSync(outputHtmlFile).toString(); for (var i = 0; i < expectedResults.length; i++) { expect(htmlContent).toContain(expectedResults[i]); } done(); }); } describe('HtmlWebpackPlugin', function() { beforeEach(function(done) { rm_rf(OUTPUT_DIR, done); }); it('generates a default index.html file for a single entry point', function(done) { testHtmlPlugin({ entry: path.join(__dirname, 'fixtures', 'index.js'), output: { path: OUTPUT_DIR, filename: 'index_bundle.js' } }, null, ['