gear
Version:
Gear.js - Build System for Node.js and the Browser
59 lines (53 loc) • 1.73 kB
JavaScript
var lib = process.env.GEAR_COVER ? '../lib-cov/' : '../lib/',
vm = require('vm'),
Blob = require(lib + 'blob').Blob,
replace = require(lib + 'tasks/replace').replace,
fixtures = {
js: new Blob("function (x) { Y.log('REMOVEME');Y.log('REMOVEME');}"),
replaced: "function (x) { }",
replacedNoFlags: "function (x) { Y.log('REMOVEME');}",
string: {
regex: "Y.log\\(.+?\\);?",
replace: '',
flags: 'mg'
},
stringNoFlags: {
regex: "Y.log\\(.+?\\);?",
replace: '',
flags: ''
},
object: {
regex: /Y.log\(.+?\);?/mg,
replace: ''
},
vmObject: {
regex: vm.runInNewContext('/Y.log\\(.+?\\);?/mg'),
replace: ''
}
};
describe('replace()', function() {
it('should use regexp objects', function(done) {
replace(fixtures.object, fixtures.js, function(err, res) {
res.result.should.equal(fixtures.replaced);
done(err);
});
});
it('should use regexp strings', function(done) {
replace(fixtures.string, fixtures.js, function(err, res) {
res.result.should.equal(fixtures.replaced);
done(err);
});
});
it('should use regexp strings without flags', function(done) {
replace(fixtures.stringNoFlags, fixtures.js, function(err, res) {
res.result.should.equal(fixtures.replacedNoFlags);
done(err);
});
});
it('should use regexp objects in command line mode', function(done) {
replace(fixtures.vmObject, fixtures.js, function(err, res) {
res.result.should.equal(fixtures.replaced);
done(err);
});
});
});