diff options
Diffstat (limited to 'tasks/test.js')
-rw-r--r-- | tasks/test.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tasks/test.js b/tasks/test.js new file mode 100644 index 0000000..cd5f00e --- /dev/null +++ b/tasks/test.js @@ -0,0 +1,32 @@ +var childProcess = require('child_process'), + fs = require('fs'); + +module.exports = function(grunt) { + grunt.registerTask('test:bin', function() { + var done = this.async(); + + childProcess.exec('./bin/handlebars -a spec/artifacts/empty.handlebars', function(err, stdout) { + if (err) { + throw err; + } + + if (stdout.toString() !== fs.readFileSync('./spec/expected/empty.amd.js').toString()) { + throw new Error('Expected binary output differed'); + } + + done(); + }); + }); + grunt.registerTask('test:mocha', function() { + var done = this.async(); + + var runner = childProcess.fork('./spec/env/runner', [], {stdio: 'inherit'}); + runner.on('close', function(code) { + if (code != 0) { + grunt.fatal(code + ' tests failed'); + } + done(); + }); + }); + grunt.registerTask('test', ['test:bin', 'test:mocha']); +}; |