From ab249020a535f260043cd2bfc87ed6fe2f7dd8d2 Mon Sep 17 00:00:00 2001 From: Mike Brocchi Date: Sat, 28 Nov 2015 12:25:36 -0500 Subject: [PATCH] feat(command): ng test command runs karma Overrode the ember-cli test command to initialize the karma server Then start the karma server based upon the karma.conf.js config file closes #70 --- addon/ng2/commands/test.js | 32 +++++++++++++++++++++ addon/ng2/index.js | 3 +- tests/acceptance/test.spec.js | 53 +++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 addon/ng2/commands/test.js create mode 100644 tests/acceptance/test.spec.js diff --git a/addon/ng2/commands/test.js b/addon/ng2/commands/test.js new file mode 100644 index 000000000000..802bd12caee9 --- /dev/null +++ b/addon/ng2/commands/test.js @@ -0,0 +1,32 @@ +'use strict'; + +var chalk = require('chalk'); +var Command = require('ember-cli/lib/models/command'); +var Promise = require('ember-cli/lib/ext/promise'); +var Project = require('ember-cli/lib/models/project'); +var SilentError = require('silent-error'); +var validProjectName = require('ember-cli/lib/utilities/valid-project-name'); +var normalizeBlueprint = require('ember-cli/lib/utilities/normalize-blueprint-option'); + +var TestCommand = require('ember-cli/lib/commands/test'); +var childProcess = require('child_process') + +module.exports = TestCommand.extend({ + + init: function(){ + var cwd = process.cwd(); + this.karma = this.karma || require(cwd + '/node_modules/karma/lib/index'); + this.karmaConfig = this.karmaConfig || cwd + '/karma.conf'; + this.server = this.server || new this.karma.Server({configFile: this.karmaConfig}); + }, + + run: function(commandOptions, rawArgs) { + var promise = new Promise(function(){}); + + this.server.start(); + + return promise; + } +}); + +module.exports.overrideCore = true; \ No newline at end of file diff --git a/addon/ng2/index.js b/addon/ng2/index.js index a262826d4b0a..273b9d5c867f 100644 --- a/addon/ng2/index.js +++ b/addon/ng2/index.js @@ -6,7 +6,8 @@ module.exports = { includedCommands: function() { return { 'new': require('./commands/new'), - 'init': require('./commands/init') + 'init': require('./commands/init'), + 'test': require('./commands/test') }; } }; diff --git a/tests/acceptance/test.spec.js b/tests/acceptance/test.spec.js new file mode 100644 index 000000000000..75f0290bdab3 --- /dev/null +++ b/tests/acceptance/test.spec.js @@ -0,0 +1,53 @@ +'use strict'; + +var fs = require('fs-extra'); +var ng = require('../helpers/ng'); +var existsSync = require('exists-sync'); +var expect = require('chai').expect; +var forEach = require('lodash/collection/forEach'); +var walkSync = require('walk-sync'); +var Blueprint = require('ember-cli/lib/models/blueprint'); +var path = require('path'); +var tmp = require('../helpers/tmp'); +var root = process.cwd(); +var util = require('util'); +var conf = require('ember-cli/tests/helpers/conf'); +var EOL = require('os').EOL; + +describe('Acceptance: ng test', function () { + before(conf.setup); + + after(conf.restore); + + beforeEach(function () { + return tmp.setup('./tmp') + .then(function () { + process.chdir('./tmp'); + }) + .then(function () { + return ng([ + 'init', + '--skip-npm', + '--skip-bower' + ]); + }); + }); + + afterEach(function () { + this.timeout(10000); + + return tmp.teardown('./tmp'); + }); + + it('ng test should excecute a test', function () { + console.log('starting test'); + return ng([ + 'test', + '--skip-npm', + '--skip-bower' + ]) + .then(function () { + console.log('test completed'); + }); + }); +}); \ No newline at end of file