1+ /* eslint-env jasmine */
2+ var path = require ( 'path' ) ;
3+ var fs = require ( 'fs' ) ;
4+ var webpack = require ( 'webpack' ) ;
5+ var rm_rf = require ( 'rimraf' ) ;
6+ var HtmlWebpackPlugin = require ( 'html-webpack-plugin' ) ;
7+ var HtmlWebpackWrapHtmlPlugin = require ( '../' ) ;
8+ var OUTPUT_DIR = path . join ( __dirname , '../dist' ) ;
9+ describe ( 'HtmlWebpackWrapHtmlPlugin' , function ( ) {
10+ beforeEach ( function ( done ) {
11+ rm_rf ( OUTPUT_DIR , done ) ;
12+ } ) ;
13+ var before = fs . readFileSync ( path . join ( __dirname , 'fixtures/before.txt' ) ) ,
14+ after = fs . readFileSync ( path . join ( __dirname , 'fixtures/after.txt' ) ) ;
15+ it ( 'should insert before.txt before html and after.txt after html' , function ( done ) {
16+ webpack ( {
17+ entry : {
18+ app : path . join ( __dirname , 'fixtures' , 'entry.js' ) ,
19+ } ,
20+ output : {
21+ path : OUTPUT_DIR ,
22+ filename : '[name].js'
23+ } ,
24+ module : {
25+
26+ } ,
27+ plugins : [
28+ new HtmlWebpackPlugin ( {
29+ before : before ,
30+ after : after
31+ } ) ,
32+ new HtmlWebpackWrapHtmlPlugin ( )
33+ ]
34+ } , function ( err ) {
35+ expect ( err ) . toBeFalsy ( ) ;
36+ var htmlFile = path . resolve ( __dirname , '../dist/index.html' ) ;
37+ fs . readFile ( htmlFile , 'utf8' , function ( er , data ) {
38+ expect ( er ) . toBeFalsy ( ) ;
39+ var html = data . toString ( ) ;
40+ var beforeReg = new RegExp ( '^' + before ) ,
41+ afterReg = new RegExp ( after + '$' ) ;
42+ expect ( beforeReg . exec ( html ) . length ) . toBe ( 1 ) ;
43+ expect ( afterReg . exec ( html ) . length ) . toBe ( 1 ) ;
44+ done ( ) ;
45+ } ) ;
46+ done ( ) ;
47+ } ) ;
48+ } ) ;
49+ } ) ;
0 commit comments