summaryrefslogtreecommitdiffstats
path: root/tasks/test.js
diff options
context:
space:
mode:
Diffstat (limited to 'tasks/test.js')
-rw-r--r--tasks/test.js32
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']);
+};