1
1
'use strict' ;
2
2
3
- var plugin = require ( '../lib/index ' ) ;
3
+ var plugin = require ( '..' ) ;
4
4
var fs = require ( 'fs' ) ;
5
5
var path = require ( 'path' ) ;
6
- var gutil = require ( 'gulp-util ' ) ;
6
+ var File = require ( 'vinyl ' ) ;
7
7
var assert = require ( 'assert' ) ;
8
8
9
9
function compare ( fixture , expected , stream , done ) {
10
- var fakeFile = new gutil . File ( {
11
- contents : fixture
12
- } ) ;
13
-
14
- fakeFile . base = path . join ( fakeFile . cwd , 'pages' ) ;
15
- fakeFile . path = path . join ( fakeFile . cwd , path . join ( 'pages' , 'index.html' ) ) ;
16
-
17
- stream . write ( fakeFile ) ;
18
-
19
- stream . once ( 'data' , function ( file ) {
10
+ stream
11
+ . once ( 'data' , function ( file ) {
20
12
assert ( file . isBuffer ( ) ) ;
21
- assert . equal ( String ( file . contents ) , String ( expected ) ) ;
13
+ assert . strictEqual ( String ( file . contents ) , expected ) ;
22
14
done ( ) ;
23
- } ) ;
15
+ } )
16
+ . end ( new File ( {
17
+ base : path . resolve ( 'pages' ) ,
18
+ path : path . join ( 'pages' , 'index.html' ) ,
19
+ contents : fixture
20
+ } ) ) ;
24
21
}
25
22
26
23
describe ( 'Buffer mode' , function ( ) {
27
24
it ( 'should replace blocks' , function ( done ) {
28
25
var fixture = fs . readFileSync ( path . join ( 'test' , 'fixture.html' ) ) ;
29
- var expected = fs . readFileSync ( path . join ( 'test' , 'expected.html' ) ) ;
26
+ var expected = fs . readFileSync ( path . join ( 'test' , 'expected.html' ) , 'utf8' ) ;
30
27
31
28
var stream = plugin ( {
32
29
css : 'css/combined.css' ,
@@ -78,14 +75,14 @@ describe('Buffer mode', function () {
78
75
var expected = '<!DOCTYPE html><head><link rel="stylesheet" href="css/combined.css"></head>' ;
79
76
80
77
var stream = plugin ( { css : 'css/combined.css' } ) ;
81
- compare ( new Buffer ( fixture ) , new Buffer ( expected ) , stream , done ) ;
78
+ compare ( new Buffer ( fixture ) , expected , stream , done ) ;
82
79
} ) ;
83
80
84
81
it ( 'should not fail if there are no build tags at all' , function ( done ) {
85
82
var fixture = '<!DOCTYPE html><head><link rel="stylesheet" href="_index.prefix.css"></head>' ;
86
83
87
84
var stream = plugin ( { css : 'css/combined.css' } ) ;
88
- compare ( new Buffer ( fixture ) , new Buffer ( fixture ) , stream , done ) ;
85
+ compare ( new Buffer ( fixture ) , fixture , stream , done ) ;
89
86
} ) ;
90
87
91
88
describe ( 'Options' , function ( ) {
@@ -96,15 +93,15 @@ describe('Buffer mode', function () {
96
93
var expected = '<html>\nSome text\n</html>' ;
97
94
98
95
var stream = plugin ( { } , { keepUnassigned : true } ) ;
99
- compare ( new Buffer ( fixture ) , new Buffer ( expected ) , stream , done ) ;
96
+ compare ( new Buffer ( fixture ) , expected , stream , done ) ;
100
97
} ) ;
101
98
102
99
it ( 'Should remove empty blocks' , function ( done ) {
103
100
var fixture = '<html>\n<!-- build:js -->\nSome text\n<!-- endbuild -->\n</html>' ;
104
101
var expected = '<html>\n</html>' ;
105
102
106
103
var stream = plugin ( ) ;
107
- compare ( new Buffer ( fixture ) , new Buffer ( expected ) , stream , done ) ;
104
+ compare ( new Buffer ( fixture ) , expected , stream , done ) ;
108
105
} ) ;
109
106
} ) ;
110
107
@@ -114,31 +111,31 @@ describe('Buffer mode', function () {
114
111
var expected = '<html>\n<!-- build:js -->\n<!-- endbuild -->\n</html>' ;
115
112
116
113
var stream = plugin ( { } , { keepBlockTags : true } ) ;
117
- compare ( new Buffer ( fixture ) , new Buffer ( expected ) , stream , done ) ;
114
+ compare ( new Buffer ( fixture ) , expected , stream , done ) ;
118
115
} ) ;
119
116
120
117
it ( 'Should keep placeholder tags with arguments' , function ( done ) {
121
118
var fixture = '<html>\n<!-- build:lorem -->\nSome text\n<!-- endbuild -->\n</html>' ;
122
119
var expected = '<html>\n<!-- build:lorem -->\nipsum\n<!-- endbuild -->\n</html>' ;
123
120
124
121
var stream = plugin ( { lorem : 'ipsum' } , { keepBlockTags : true } ) ;
125
- compare ( new Buffer ( fixture ) , new Buffer ( expected ) , stream , done ) ;
122
+ compare ( new Buffer ( fixture ) , expected , stream , done ) ;
126
123
} ) ;
127
124
128
125
it ( 'Should remove placeholder tags without arguments' , function ( done ) {
129
126
var fixture = '<html>\n<!-- build:js -->\nSome text\n<!-- endbuild -->\n</html>' ;
130
127
var expected = '<html>\n</html>' ;
131
128
132
129
var stream = plugin ( ) ;
133
- compare ( new Buffer ( fixture ) , new Buffer ( expected ) , stream , done ) ;
130
+ compare ( new Buffer ( fixture ) , expected , stream , done ) ;
134
131
} ) ;
135
132
136
133
it ( 'Should remove placeholder tags with arguments' , function ( done ) {
137
134
var fixture = '<html>\n<!-- build:lorem -->\nSome text\n<!-- endbuild -->\n</html>' ;
138
135
var expected = '<html>\nipsum\n</html>' ;
139
136
140
137
var stream = plugin ( { lorem : 'ipsum' } ) ;
141
- compare ( new Buffer ( fixture ) , new Buffer ( expected ) , stream , done ) ;
138
+ compare ( new Buffer ( fixture ) , expected , stream , done ) ;
142
139
} ) ;
143
140
} ) ;
144
141
@@ -148,7 +145,7 @@ describe('Buffer mode', function () {
148
145
var expected = '<html>\n<script src="../lib/script.js"></script>\n</html>' ;
149
146
150
147
var stream = plugin ( { js : 'lib/script.js' } , { resolvePaths : true } ) ;
151
- compare ( new Buffer ( fixture ) , new Buffer ( expected ) , stream , done ) ;
148
+ compare ( new Buffer ( fixture ) , expected , stream , done ) ;
152
149
} ) ;
153
150
} ) ;
154
151
} ) ;
@@ -159,15 +156,15 @@ describe('Buffer mode', function () {
159
156
var expected = '<html>\nThis should be removed if "keepUnassigned" is false\n</html>' ;
160
157
161
158
var stream = plugin ( { } , true ) ;
162
- compare ( new Buffer ( fixture ) , new Buffer ( expected ) , stream , done ) ;
159
+ compare ( new Buffer ( fixture ) , expected , stream , done ) ;
163
160
} ) ;
164
161
165
162
it ( '[version <1.2] should remove empty blocks (keepUnassigned = false)' , function ( done ) {
166
163
var fixture = '<html>\n<!-- build:js -->\nThis should be removed if "keepUnassigned" is false\n<!-- endbuild -->\n</html>' ;
167
164
var expected = '<html>\n</html>' ;
168
165
169
166
var stream = plugin ( ) ;
170
- compare ( new Buffer ( fixture ) , new Buffer ( expected ) , stream , done ) ;
167
+ compare ( new Buffer ( fixture ) , expected , stream , done ) ;
171
168
} ) ;
172
169
} ) ;
173
170
0 commit comments