UNPKG

fabricate

Version:

Combines mincer and uglify-js to build dependent files and a source map

65 lines (60 loc) 1.91 kB
var Fabricate = require('../lib/fabricate'), path = require('path'), fs = require('fs'), exec = require('child_process').exec, src = path.join(process.cwd(), 'test', 'data', 'src', 'app.js'), dest = path.join(process.cwd(), 'test', 'data', 'dest', 'app.js'), clearAssets; exports.module = { tearDown: function(ready) { exec( ['rm', 'data/dest/*'].join(' '), { cwd: path.join(process.cwd(), 'test') }, function(err, stdout, stderr) { if (err) { throw new Error(err); } ready(); } ); }, testBuildsAssets: function(test) { new Fabricate({ src: src, dest: dest, }).build(function(err) { test.equal(err, null); test.ok(fs.readFileSync(dest).length); test.done(); }); }, testBuiltAssetIncludesExpectedFileContents: function(test) { new Fabricate({ src: src, dest: dest, }).build(function(err) { var content = fs.readFileSync(dest); test.ok(/var App=\{\};/.test(content)); test.ok(/App\.lib1=function\(\)\{\};/.test(content)); test.ok(/App\.lib2=function\(\)\{\};/.test(content)); test.ok(/\/\/\@ sourceMappingURL=app\.js\.map/.test(content)); test.ok(fs.existsSync(path.join(path.dirname(dest), 'app.js.map'))); test.done(); }); }, testBuiltAssetDoesNotIncludeMapWhenSourceMapFalse: function(test) { new Fabricate({ src: src, dest: dest, sourceMap: false }).build(function(err) { var content = fs.readFileSync(dest); test.ok(/var App=\{\};/.test(content)); test.ok(/App\.lib1=function\(\)\{\};/.test(content)); test.ok(/App\.lib2=function\(\)\{\};/.test(content)); test.ok(!/\/\/\@ sourceMappingURL=app\.js\.map/.test(content)); test.ok(!fs.exists(path.join(path.dirname(dest), 'app.js.min'))); test.done(); }); }, };