gulp-replace-assets
Version:
A batch replace plugin for gulp
75 lines (63 loc) • 2.04 kB
JavaScript
var replacePlugin = require('../');
var fs = require('fs');
var path = require('path');
var es = require('event-stream');
var should = require('should');
var gutil = require('gulp-util');
require('mocha');
var replaceThisString = {
'world': 'person',
'old': 'weird',
'new': 'funky',
'kind': 'lovely',
'cruel': 'amazing'
};
var makeFile = function(contents) {
return new gutil.File({
path: 'test/file.txt',
cwd: 'test/',
base: 'test/',
contents: contents
});
};
describe('gulp-replace-assets', function() {
describe('replacePlugin()', function() {
it('should replace string with string on a stream (1)', function(done) {
var file = new gutil.File({
path: 'test/fixtures/helloworld.txt',
cwd: 'test/',
base: 'test/fixtures',
contents: fs.createReadStream('test/fixtures/helloworld.txt')
});
var stream = replacePlugin(replaceThisString);
stream.on('data', function(newFile) {
should.exist(newFile);
should.exist(newFile.contents);
newFile.contents.pipe(es.wait(function(err, data) {
should.not.exist(err);
data.equals(fs.readFileSync('test/expected/helloworld.txt')).should.be.true
done();
}));
});
stream.write(file);
stream.end();
});
it('should replace string with string on a buffer (3)', function(done) {
var file = new gutil.File({
path: 'test/fixtures/helloworld.txt',
cwd: 'test/',
base: 'test/fixtures',
contents: fs.readFileSync('test/fixtures/helloworld.txt')
});
var stream = replacePlugin(replaceThisString);
stream.on('data', function(newFile) {
should.exist(newFile);
should.exist(newFile.contents);
String(newFile.contents).should.equal(fs.readFileSync('test/expected/helloworld.txt', 'utf8'));
done();
});
stream.write(file);
stream.end();
});
});
});