diff --git a/lib/ender.js b/lib/ender.js index 3f1633e..4422fa4 100644 --- a/lib/ender.js +++ b/lib/ender.js @@ -8,9 +8,9 @@ process.title = "Ender" var colors = require('colors') , fs = require('fs') + , path = require('path') , async = require('async') , context = null - , version = "v0.8.5" // ENDER OBJECTS // ============= @@ -195,8 +195,13 @@ var colors = require('colors') } } - , version: function () { - console.log('Active Version: ' + version) + , version: function (args, options, callback) { + fs.readFile(path.resolve(__dirname, '../package.json'), 'utf-8', function (err, data) { + if (err) + throw err + console.log('Active Version: ' + JSON.parse(data).version) + callback() + }) } , compile: function (files, options) { diff --git a/test/test.js b/test/test.js index 4b2983c..38fe0b7 100644 --- a/test/test.js +++ b/test/test.js @@ -12,6 +12,31 @@ sink.timeout = false; // only output sink log statements spec.setLogKey('$__sink::'); +sink('ENDER - VERSION', function (test, ok, before, after, assert) { + + after(function () { + O_O.removeAll(); //clear all spies after each test + }); + + test('exec: version', function (complete) { + fs.readFile(path.resolve(__dirname, '../package.json'), 'utf-8', function (err, contents) { + ok(!err, 'read package.json') + var expectedVersion = contents.match(/"version"\s*:\s*"([^"]+)"/)[1] + , actualVersionString + O_O(console, 'log').andCallFake(function (str) { + if (/^Active /.test(str)) { + actualVersionString = str.replace(/[^\w\:\s\.]/, '') + O_O.removeAll(); //clear all spies after each test + } + }) + ender.exec('ender version', function () { + assert.equal('Active Version: ' + expectedVersion, actualVersionString , 'printed correct version string') + complete() + }) + }) + }) +}) + sink('ENDER - DEPENDENCIES', function (test, ok, before, after) { after(function () {