Skip to content

Commit e2bf4d2

Browse files
committedDec 28, 2017
dep updates, test cleanup
1 parent 48e956f commit e2bf4d2

File tree

4 files changed

+435
-572
lines changed

4 files changed

+435
-572
lines changed
 

‎.travis.yml

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
language: node_js
22
node_js:
3+
- "9"
34
- "8"
45
- "7"
56
- "6"

‎package-lock.json

+234-371
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎package.json

+8-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "gulp-clean-css",
33
"description": "Minify css with clean-css.",
44
"homepage": "https://github.com/scniro/gulp-clean-css#readme",
5-
"version": "3.9.0",
5+
"version": "3.9.1",
66
"author": "scniro",
77
"license": "MIT",
88
"bugs": {
@@ -30,27 +30,26 @@
3030
],
3131
"dependencies": {
3232
"clean-css": "4.1.9",
33-
"fancy-log": "^1.3.2",
34-
"plugin-error": "^0.1.2",
33+
"fancy-log": "1.3.2",
34+
"plugin-error": "0.1.2",
3535
"through2": "2.0.3",
3636
"vinyl-sourcemaps-apply": "0.2.1"
3737
},
3838
"devDependencies": {
3939
"chai": "4.1.2",
4040
"chai-string": "1.4.0",
41-
"coveralls": "2.13.1",
42-
"del": "3.0.0",
43-
"express": "4.15.4",
41+
"coveralls": "3.0.0",
42+
"express": "4.16.2",
4443
"gulp": "3.9.1",
4544
"gulp-concat": "2.6.1",
4645
"gulp-istanbul": "1.1.2",
4746
"gulp-mocha": "4.3.1",
4847
"gulp-rename": "1.2.2",
4948
"gulp-sass": "3.1.0",
50-
"gulp-sourcemaps": "2.6.1",
51-
"mocha": "3.5.3",
49+
"gulp-sourcemaps": "2.6.2",
50+
"mocha": "4.0.1",
5251
"vinyl": "2.1.0",
53-
"vinyl-buffer": "1.0.0",
52+
"vinyl-buffer": "1.0.1",
5453
"vinyl-fs-fake": "1.1.0"
5554
},
5655
"scripts": {

‎test/test.js

+192-192
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
const buffer = require('vinyl-buffer');
21
const chai = require('chai');
32
const cleanCSS = require('..');
43
const concat = require('gulp-concat');
5-
const del = require('del');
64
const expect = chai.expect;
75
const File = require('vinyl');
86
const gulp = require('gulp');
@@ -14,305 +12,307 @@ const vfsFake = require('vinyl-fs-fake');
1412
chai.should();
1513
chai.use(require('chai-string'));
1614

17-
describe('gulp-clean-css: init', function () {
15+
describe('gulp-clean-css: init', () => {
1816

19-
it('should return the gulp-clean-css object: required export', function () {
17+
it('should return the gulp-clean-css object: required export', () => {
2018
expect(cleanCSS).to.exist;
2119
});
2220
});
2321

24-
describe('gulp-clean-css: base functionality', function () {
22+
describe('gulp-clean-css: base functionality', () => {
2523

26-
it('should play nicely with other plugins: gulp-sass: before', function (done) {
27-
var i = 0;
24+
it('should play nicely with other plugins: gulp-sass: before', done => {
25+
26+
let i = 0;
2827

2928
gulp.src(['test/fixtures/**/*.scss', '!test/fixtures/empty/**', '!test/fixtures/sourcemaps-load/**'])
30-
.pipe(gulpSass())
31-
.pipe(cleanCSS())
32-
.pipe(rename({
33-
suffix: '.generated',
34-
}))
35-
.pipe(gulp.dest('test/fixtures/'))
36-
.on('data', function (file) {
37-
i += 1;
38-
})
39-
.once('end', function () {
40-
i.should.equal(3);
41-
done();
42-
});
29+
.pipe(gulpSass())
30+
.pipe(cleanCSS())
31+
.pipe(rename({
32+
suffix: '.generated',
33+
}))
34+
.pipe(gulp.dest('test/fixtures/'))
35+
.on('data', file => {
36+
i += 1;
37+
})
38+
.once('end', () => {
39+
i.should.equal(3);
40+
done();
41+
});
4342
});
4443

45-
it('should allow the file through', function (done) {
46-
var i = 0;
44+
it('should allow the file through', done => {
45+
46+
let i = 0;
4747

4848
gulp.src('test/fixtures/test.css')
49-
.pipe(cleanCSS())
50-
.on('data', function (file) {
51-
i += 1;
52-
})
53-
.once('end', function () {
54-
i.should.equal(1);
55-
done();
56-
});
49+
.pipe(cleanCSS())
50+
.on('data', file => {
51+
i += 1;
52+
})
53+
.once('end', () => {
54+
i.should.equal(1);
55+
done();
56+
});
5757
});
5858

59-
it('should allow the file through:empty file, pipe dest', function (done) {
60-
var i = 0;
59+
it('should allow the file through:empty file, pipe dest', done => {
60+
61+
let i = 0;
6162

6263
gulp.src('test/fixtures/empty/**/*.scss')
63-
.pipe(gulpSass())
64-
.pipe(cleanCSS())
65-
.pipe(rename({
66-
suffix: '.generated',
67-
}))
68-
.pipe(gulp.dest(function (file) {
69-
return file.base + '/empty-parsed';
70-
}))
71-
.on('data', function (file) {
72-
i += 1;
73-
})
74-
.once('end', function () {
75-
i.should.equal(3);
76-
done();
77-
});
64+
.pipe(gulpSass())
65+
.pipe(cleanCSS())
66+
.pipe(rename({
67+
suffix: '.generated',
68+
}))
69+
// .pipe(gulp.dest(file => {
70+
// return file.base + '/empty-parsed';
71+
// }))
72+
.pipe(gulp.dest(file => `${file.base}/empty-parsed`))
73+
.on('data', file => {
74+
i += 1;
75+
})
76+
.once('end', () => {
77+
i.should.equal(3);
78+
done();
79+
});
7880
});
7981

80-
it('should produce the expected file', function (done) {
82+
it('should produce the expected file', done => {
8183

82-
var mockFile = new File({
84+
let mockFile = new File({
8385
cwd: '/',
8486
base: '/test/',
8587
path: '/test/expected.test.css',
8688
contents: new Buffer('p{text-align:center;color:green}')
8789
});
8890

8991
gulp.src('test/fixtures/test.css')
90-
.pipe(cleanCSS())
91-
.on('data', function (file) {
92-
file.contents.should.exist && expect(file.contents.toString()).to.equal(mockFile.contents.toString());
93-
done();
94-
});
92+
.pipe(cleanCSS())
93+
.on('data', file => {
94+
file.contents.should.exist && expect(file.contents.toString()).to.equal(mockFile.contents.toString());
95+
done();
96+
});
9597
});
9698

97-
it('should minify the css: empty file, no `file.contents`', function (done) {
99+
it('should minify the css: empty file, no `file.contents`', done => {
98100

99-
var i = 0;
101+
let i = 0;
100102

101-
var mockFile = new File({
103+
let mockFile = new File({
102104
cwd: '/',
103105
base: '/test/',
104106
path: '/test/expected.test.css',
105107
contents: undefined
106108
});
107109

108110
vfsFake.src(mockFile)
109-
.pipe(cleanCSS())
110-
.on('data', function (file) {
111-
i += 1;
112-
})
113-
.once('end', function () {
114-
i.should.equal(1);
115-
done();
116-
});
111+
.pipe(cleanCSS())
112+
.on('data', file => {
113+
i += 1;
114+
})
115+
.once('end', () => {
116+
i.should.equal(1);
117+
done();
118+
});
117119
});
118120

119-
it('should invoke optional callback with details specified in options: debug', function (done) {
121+
it('should invoke optional callback with details specified in options: debug', done => {
120122
gulp.src('test/fixtures/test.css')
121-
.pipe(cleanCSS({debug: true}, function (details) {
122-
details.stats.should.exist &&
123-
details.stats.originalSize.should.exist &&
124-
details.stats.minifiedSize.should.exist;
125-
}))
126-
.on('data', function (file) {
127-
done();
128-
});
123+
.pipe(cleanCSS({debug: true}, (details) => {
124+
details.stats.should.exist &&
125+
details.stats.originalSize.should.exist &&
126+
details.stats.minifiedSize.should.exist;
127+
}))
128+
.on('data', file => {
129+
done();
130+
});
129131
});
130132

131-
it('should invoke optional callback with out options object supplied: return object hash', function (done) {
133+
it('should invoke optional callback with out options object supplied: return object hash', done => {
132134
gulp.src('test/fixtures/test.css')
133-
.pipe(cleanCSS(function (details) {
134-
details.stats.should.exist &&
135-
expect(details).to.have.ownProperty('stats') &&
136-
expect(details).to.have.ownProperty('errors') &&
137-
expect(details).to.have.ownProperty('warnings') &&
138-
expect(details).to.not.have.ownProperty('sourceMap');
139-
}))
140-
.on('data', function (file) {
141-
done();
142-
});
135+
.pipe(cleanCSS(details => {
136+
details.stats.should.exist &&
137+
expect(details).to.have.ownProperty('stats') &&
138+
expect(details).to.have.ownProperty('errors') &&
139+
expect(details).to.have.ownProperty('warnings') &&
140+
expect(details).to.not.have.ownProperty('sourceMap');
141+
}))
142+
.on('data', (file) => {
143+
done();
144+
});
143145
});
144146

145-
it('should invoke optional callback without options object supplied: return object hash with sourceMap: true; return correct hash', function (done) {
147+
it('should invoke optional callback without options object supplied: return object hash with sourceMap: true; return correct hash', done => {
146148
gulp.src('test/fixtures/test.css')
147-
.pipe(cleanCSS({sourceMap: true}, function (details) {
148-
details.stats.should.exist &&
149-
expect(details).have.ownProperty('sourceMap');
150-
}))
151-
.on('data', function (file) {
152-
done();
153-
});
149+
.pipe(cleanCSS({sourceMap: true}, details => {
150+
details.stats.should.exist &&
151+
expect(details).have.ownProperty('sourceMap');
152+
}))
153+
.on('data', file => {
154+
done();
155+
});
154156
});
155157

156-
it('should invoke optional callback with file details returned', function (done) {
158+
it('should invoke optional callback with file details returned', done => {
157159

158-
var expected = 'test.css'
160+
let expected = 'test.css';
159161

160162
gulp.src('test/fixtures/test.css')
161-
.pipe(cleanCSS(function (details) {
162-
details.name.should.equal(expected)
163-
}))
164-
.on('data', function (file) {
165-
done();
166-
});
163+
.pipe(cleanCSS(details => {
164+
details.name.should.equal(expected)
165+
}))
166+
.on('data', file => {
167+
done();
168+
});
167169
});
168170

169-
it('should write sourcemaps', function (done) {
171+
it('should write sourcemaps', done => {
170172

171-
var i = 0;
173+
let i = 0;
172174

173175
gulp.src(['test/fixtures/sourcemaps/**/*.css', '!test/fixtures/sourcemaps/**/*.generated.css'])
174-
.pipe(sourcemaps.init())
175-
.pipe(concat('sourcemapped.css'))
176-
.pipe(cleanCSS())
177-
.pipe(rename({
178-
suffix: '.generated',
179-
}))
180-
.on('data', function (file) {
181-
i += 1;
182-
})
183-
.pipe(sourcemaps.write())
184-
.pipe(gulp.dest(function (file) {
185-
return file.base;
186-
}))
187-
.once('end', function () {
188-
i.should.equal(1);
189-
done();
190-
});
176+
.pipe(sourcemaps.init())
177+
.pipe(concat('sourcemapped.css'))
178+
.pipe(cleanCSS())
179+
.pipe(rename({
180+
suffix: '.generated',
181+
}))
182+
.on('data', file => {
183+
i += 1;
184+
})
185+
.pipe(sourcemaps.write())
186+
.pipe(gulp.dest(file => file.base))
187+
.once('end', () => {
188+
i.should.equal(1);
189+
done();
190+
});
191191
});
192192

193-
it('should write sourcemaps, worrectly map output', function (done) {
193+
it('should write sourcemaps, worrectly map output', done => {
194194

195-
var i = 0;
195+
let i = 0;
196196

197197
gulp.src('test/fixtures/sourcemaps-load/scss/test-sass.scss')
198-
.pipe(sourcemaps.init())
199-
.pipe(gulpSass())
200-
.pipe(sourcemaps.init({loadMaps: true}))
201-
.pipe(cleanCSS({sourceMapInlineSources: true}))
202-
.on('data', function (file) {
203-
i += 1;
204-
})
205-
.pipe(rename({
206-
suffix: '.min'
207-
}))
208-
.pipe(sourcemaps.write())
209-
.pipe(gulp.dest('test/fixtures/sourcemaps-load/min'))
210-
.once('end', function () {
211-
i.should.equal(1); // todo inspect mapping here
212-
done();
213-
});
198+
.pipe(sourcemaps.init())
199+
.pipe(gulpSass())
200+
.pipe(sourcemaps.init({loadMaps: true}))
201+
.pipe(cleanCSS({sourceMapInlineSources: true}))
202+
.on('data', file => {
203+
i += 1;
204+
})
205+
.pipe(rename({
206+
suffix: '.min'
207+
}))
208+
.pipe(sourcemaps.write())
209+
.pipe(gulp.dest('test/fixtures/sourcemaps-load/min'))
210+
.once('end', () => {
211+
i.should.equal(1); // todo inspect mapping here
212+
done();
213+
});
214214
});
215215

216-
it('should return a warning for improper syntax', function (done) {
216+
it('should return a warning for improper syntax', done => {
217217

218-
var i = 0;
218+
let i = 0;
219219

220-
var css = new File({
220+
let css = new File({
221221
path: './fixtures/test.css',
222222
contents: new Buffer('body{color:red')
223223
});
224224

225225
vfsFake.src(css)
226-
.pipe(cleanCSS({debug: true}, function (details) {
227-
expect(details.warnings).to.exist &&
228-
expect(details.warnings.length).to.equal(1) &&
229-
expect(details.warnings[0]).to.equal('Missing \'}\' at fixtures/test.css:1:14.');
230-
}))
231-
.on('data', function (file) {
232-
i += 1;
233-
})
234-
.once('end', function () {
235-
i.should.equal(1);
236-
done();
237-
});
226+
.pipe(cleanCSS({debug: true}, details => {
227+
expect(details.warnings).to.exist &&
228+
expect(details.warnings.length).to.equal(1) &&
229+
expect(details.warnings[0]).to.equal('Missing \'}\' at fixtures/test.css:1:14.');
230+
}))
231+
.on('data', file => {
232+
i += 1;
233+
})
234+
.once('end', () => {
235+
i.should.equal(1);
236+
done();
237+
});
238238
});
239239

240-
it('should invoke a plugin error: streaming not supported', function (done) {
240+
it('should invoke a plugin error: streaming not supported', done => {
241241

242242
gulp.src('test/fixtures/test.css', {buffer: false})
243-
.pipe(cleanCSS()
244-
.on('error', function (err) {
245-
expect(err.message).to.equal('Streaming not supported!')
246-
done();
247-
}));
243+
.pipe(cleanCSS()
244+
.on('error', err => {
245+
expect(err.message).to.equal('Streaming not supported!');
246+
done();
247+
}));
248248
});
249249

250-
it('should return a clean-css error', function (done) {
250+
it('should return a clean-css error', done => {
251251

252-
var css = new File({
252+
let css = new File({
253253
path: '/',
254254
contents: new Buffer('@import url(/some/fake/file);')
255255
});
256256

257257
vfsFake.src(css)
258-
.pipe(cleanCSS())
259-
.on('error', function (err) {
260-
expect(err).to.exist;
261-
expect(err).to.equal('Ignoring local @import of "/some/fake/file" as resource is missing.');
262-
done();
263-
});
258+
.pipe(cleanCSS())
259+
.on('error', err => {
260+
expect(err).to.exist;
261+
expect(err).to.equal('Ignoring local @import of "/some/fake/file" as resource is missing.');
262+
done();
263+
});
264264
});
265265
});
266266

267-
describe('gulp-clean-css: rebase', function () {
267+
describe('gulp-clean-css: rebase', () => {
268268

269-
it('should not rebase files by default - do not resolve relative files', function (done) {
269+
it('should not rebase files by default - do not resolve relative files', done => {
270270

271271
gulp.src(['test/fixtures/rebasing/subdir/insub.css'])
272-
.pipe(cleanCSS({rebase: false}))
273-
.on('data', function (file) {
272+
.pipe(cleanCSS({rebase: false}))
273+
.on('data', file => {
274274

275-
let expected = `
275+
let expected = `
276276
p.insub_same{background:url(insub.png)}
277277
p.insub_child{background:url(child/child.png)}
278278
p.insub_parent{background:url(../parent.png)}
279279
p.insub_other{background:url(../othersub/inother.png)}
280280
p.insub_absolute{background:url(/inroot.png)}`;
281281

282-
let actual = file.contents.toString();
282+
let actual = file.contents.toString();
283283

284-
expect(actual).to.equalIgnoreSpaces(expected)
285-
})
286-
.once('end', done);
284+
expect(actual).to.equalIgnoreSpaces(expected)
285+
})
286+
.once('end', done);
287287
});
288288

289-
it('should by rebase files with target specified', function (done) {
289+
it('should by rebase files with target specified', done => {
290290

291291
gulp.src(['test/fixtures/rebasing/subdir/insub.css'])
292-
.pipe(cleanCSS({rebaseTo: 'test'}))
293-
.on('data', function (file) {
292+
.pipe(cleanCSS({rebaseTo: 'test'}))
293+
.on('data', file => {
294294

295-
let expected = `
295+
let expected = `
296296
p.insub_same{background:url(fixtures/rebasing/subdir/insub.png)}
297297
p.insub_child{background:url(fixtures/rebasing/subdir/child/child.png)}
298298
p.insub_parent{background:url(fixtures/rebasing/parent.png)}
299299
p.insub_other{background:url(fixtures/rebasing/othersub/inother.png)}
300300
p.insub_absolute{background:url(/inroot.png)}`;
301301

302-
let actual = file.contents.toString();
302+
let actual = file.contents.toString();
303303

304-
expect(actual).to.equalIgnoreSpaces(expected);
305-
})
306-
.once('end', done);
304+
expect(actual).to.equalIgnoreSpaces(expected);
305+
})
306+
.once('end', done);
307307
});
308308

309-
it('should rebase to current relative file location - relative imports are resolved like in the browser', function (done) {
309+
it('should rebase to current relative file location - relative imports are resolved like in the browser', done => {
310310

311311
gulp.src(['test/fixtures/rebasing/subdir/import.css'])
312-
.pipe(cleanCSS())
313-
.on('data', function (file) {
312+
.pipe(cleanCSS())
313+
.on('data', file => {
314314

315-
let expected = `
315+
let expected = `
316316
p.imported_nested{background:url(../otherdir/nestedsub/nested.png)}
317317
p.imported_same{background:url(../otherdir/imported.png)}
318318
p.imported_parent{background:url(../parent.png)}
@@ -325,10 +325,10 @@ describe('gulp-clean-css: rebase', function () {
325325
p.insub_absolute{background:url(/inroot.png)}
326326
p.import{background:url(import.png)}`;
327327

328-
let actual = file.contents.toString();
328+
let actual = file.contents.toString();
329329

330-
expect(actual).to.equalIgnoreSpaces(expected)
331-
})
332-
.once('end', done);
330+
expect(actual).to.equalIgnoreSpaces(expected)
331+
})
332+
.once('end', done);
333333
});
334334
});

0 commit comments

Comments
 (0)
Please sign in to comment.