gulp-rev-css-url
Version:
The lightweight plugin to override urls in css files to hashed after gulp-rev
62 lines (53 loc) • 2.5 kB
JavaScript
var rev = require('gulp-rev');
var fs = require('fs');
var gulp = require('gulp');
var fse = require('fs-extra');
var override = require('./index');
var expect = require('chai').expect;
describe('gulp-rev-css-url', function () {
beforeEach(function (done) {
fse.remove('./results', done);
})
it('Should override urls in css and js', function (done) {
var expectedCSS = fs.readFileSync('./expected/styles.css', 'utf-8'),
expectedJs = fs.readFileSync('./expected/script.js', 'utf-8'),
expectedFont1 = fs.readFileSync('./expected/montserrat-light-webfont.woff', 'utf-8'),
expectedFont2 = fs.readFileSync('./expected/montserrat-light-webfont.woff2', 'utf-8'),
expectedManifest = require('./expected/rev-manifest.json', 'utf-8');
gulp.src('./fixtures/**/*')
.pipe(rev())
.pipe(override())
.pipe(gulp.dest('./results/'))
.pipe(rev.manifest())
.pipe(gulp.dest('./results/'))
.on('end', function () {
// load results
var css = fs.readFileSync('./results/styles/styles-d329971534.css', 'utf-8'),
js = fs.readFileSync('./results/scripts/script-382f58fea6.js', 'utf-8'),
font1 = fs.readFileSync('./results/fonts/montserrat-light-webfont-b2f7c06e09.woff', 'utf-8'),
font2 = fs.readFileSync('./results/fonts/montserrat-light-webfont-86efde6016.woff2', 'utf-8'),
manifest = require('./results/rev-manifest.json', 'utf-8');
// check files' content
expect(css).to.equal(expectedCSS);
expect(js).to.equal(expectedJs);
expect(expectedFont1).to.equal(font1);
expect(expectedFont2).to.equal(font2);
// check manifest
expect(manifest).to.deep.equal(expectedManifest);
done();
});
});
it('Should not replace application/json with application.js', function(done) {
gulp.src('./fixtures/scripts/application.js')
.pipe(rev())
.pipe(override())
.pipe(gulp.dest('./results/'))
.on('end', function () {
var js = fs.readFileSync(
'./results/application-5c2dec9780.js',
'utf-8');
expect(js).to.contain('application/json');
done();
});
});
});