From 227ec95600c8ec39b9bc2e548aa4a418d2217794 Mon Sep 17 00:00:00 2001 From: Judd Younce Date: Thu, 16 Jul 2015 17:46:53 -0500 Subject: [PATCH] fix(testing): do not run tests if there are no test scripts --- tasks/build/build-test-files.coffee | 7 ++++- tasks/test/run-tests.coffee | 42 ++++++++++++++++++++++++----- tasks/test/test-config.coffee | 25 ----------------- 3 files changed, 41 insertions(+), 33 deletions(-) delete mode 100644 tasks/test/test-config.coffee diff --git a/tasks/build/build-test-files.coffee b/tasks/build/build-test-files.coffee index eb979d6..3615187 100644 --- a/tasks/build/build-test-files.coffee +++ b/tasks/build/build-test-files.coffee @@ -11,7 +11,11 @@ module.exports = (gulp, config) -> # Global Objects # ============== DevFiles = {} - TestFiles = client: scripts: [], styles: [] + TestFiles = client: + scriptsTestCount: 0 + stylesTestCount: 0 + scripts: [] + styles: [] # Build Task # ========== @@ -42,6 +46,7 @@ module.exports = (gulp, config) -> gulp.src src, buffer: false .on 'data', (file) -> _path = pathHelp.format(file.path).replace "#{appDir}/", '' + TestFiles.client["#{type}TestCount"]++ TestFiles.client[type].push _path .on 'end', -> defer.resolve() diff --git a/tasks/test/run-tests.coffee b/tasks/test/run-tests.coffee index 88fea4b..d9bc9a4 100644 --- a/tasks/test/run-tests.coffee +++ b/tasks/test/run-tests.coffee @@ -1,20 +1,48 @@ module.exports = (gulp, config) -> - q = require 'q' - Server = require('karma').Server + q = require 'q' + path = require 'path' + Server = require('karma').Server + moduleHelp = require "#{config.req.helpers}/module" + promiseHelp = require "#{config.req.helpers}/promise" # karma options # ============= - opts = - configFile: "#{config.req.tasks}/test/test-config.coffee" + karmaConfig = + autoWatch: false + basePath: config.app.dir + browsers: config.test.browsers # see config-test.coffee + frameworks: ['jasmine', 'jasmine-matchers'] + port: config.ports.test + reporters: ['dots'] + singleRun: true + + # helpers + # ======= + getTests = (jsonEnvFile) -> + jsonEnvFile = path.join config.templates.files.dest.dir, jsonEnvFile + moduleHelp.cache.delete jsonEnvFile + tests = require(jsonEnvFile).client + tests # register task # ============= gulp.task "#{config.rb.prefix.task}run-tests", -> - defer = q.defer() - server = new Server opts, (exitCode) -> - console.log "Karma has exited with #{exitCode}." + defer = q.defer() + tests = getTests 'test-files.json' + + # No Test Scripts + if not tests.scriptsTestCount + console.log 'no test scripts to run'.yellow + return promiseHelp.get defer + else + karmaConfig.files = tests.scripts + + # Rus Tests + server = new Server(karmaConfig, (exitCode) -> + console.log "karma has exited with #{exitCode}".yellow defer.resolve() process.exit exitCode + ) server.start() defer.promise diff --git a/tasks/test/test-config.coffee b/tasks/test/test-config.coffee deleted file mode 100644 index 47e163c..0000000 --- a/tasks/test/test-config.coffee +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = (config) -> - path = require 'path' - rbConfig = require '../../config/config.json' - moduleHelp = require "#{rbConfig.req.helpers}/module" - - # helpers - # ======= - getScripts = (jsonEnvFile) -> - jsonEnvFile = path.join rbConfig.templates.files.dest.dir, jsonEnvFile - moduleHelp.cache.delete jsonEnvFile - scripts = require(jsonEnvFile).client.scripts - # console.log scripts - scripts - - # return - # ====== - config.set - autoWatch: false - basePath: rbConfig.app.dir - browsers: rbConfig.test.browsers # see config-test.coffee - files: getScripts 'test-files.json' - frameworks: ['jasmine', 'jasmine-matchers'] - port: rbConfig.ports.test - reporters: ['dots'] - singleRun: true