From 297a924d05181ec99b1d871a28e5dd70e58c4067 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Thu, 25 Apr 2013 17:09:26 +0100 Subject: [PATCH] Cleaning up the jasmine plugin adaptor --- plugins/tiddlywiki/jasmine/jasmine-plugin.js | 32 +++++++++----------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/plugins/tiddlywiki/jasmine/jasmine-plugin.js b/plugins/tiddlywiki/jasmine/jasmine-plugin.js index 22630ca17..1134d06ea 100644 --- a/plugins/tiddlywiki/jasmine/jasmine-plugin.js +++ b/plugins/tiddlywiki/jasmine/jasmine-plugin.js @@ -12,6 +12,8 @@ The main module of the Jasmine test plugin for TiddlyWiki5 /*global $tw: false */ "use strict"; +var TEST_TIDDLER_FILTER = "[type[application/javascript]tag[$:/tags/test-spec]]"; + /* Startup function for running tests */ @@ -27,24 +29,17 @@ exports.startup = function() { clearTimeout: clearTimeout, $tw: $tw }); - // Add the HTMLReporter - if($tw.browser) { - var reporterTitle = "$:/plugins/tiddlywiki/jasmine/jasmine-html.js"; - var code = $tw.wiki.getTiddlerText(reporterTitle,""); - $tw.utils.evalSandboxed(code,context,reporterTitle); - } else { - var reporterTitle = "$:/plugins/tiddlywiki/jasmine/reporter.js"; - context.require = function(moduleTitle) { - return $tw.modules.execute(moduleTitle,reporterTitle); - }; - var code = $tw.wiki.getTiddlerText(reporterTitle,""); - var nodeReporters = $tw.utils.evalSandboxed(code,context,reporterTitle); - jasmine.TerminalVerboseReporter = nodeReporters.jasmineNode.TerminalVerboseReporter; - jasmine.TerminalReporter = nodeReporters.jasmineNode.TerminalReporter; - } // Prepare the Jasmine environment var jasmineEnv = jasmine.jasmine.getEnv(); jasmineEnv.updateInterval = 1000; + // Execute the appropriate reporter + var reporterTitle = $tw.browser ? "$:/plugins/tiddlywiki/jasmine/jasmine-html.js" : "$:/plugins/tiddlywiki/jasmine/reporter.js"; + context.require = function(moduleTitle) { + return $tw.modules.execute(moduleTitle,reporterTitle); + }; + var code = $tw.wiki.getTiddlerText(reporterTitle,""), + reporterExports = $tw.utils.evalSandboxed(code,context,reporterTitle); + // Link the reporter into jasmine if($tw.browser) { var htmlReporter = new jasmine.jasmine.HtmlReporter(); jasmineEnv.addReporter(htmlReporter); @@ -52,14 +47,17 @@ exports.startup = function() { return htmlReporter.specFilter(spec); }; } else { - jasmineEnv.addReporter(new jasmine.TerminalVerboseReporter({ + // The HTMLReporter links itself into the jasmine object automatically, but we have to manually add the node reporter + jasmine.jasmine.TerminalVerboseReporter = reporterExports.jasmineNode.TerminalVerboseReporter; + jasmine.jasmine.TerminalReporter = reporterExports.jasmineNode.TerminalReporter; + jasmineEnv.addReporter(new jasmine.jasmine.TerminalVerboseReporter({ print: require("util").print, color: true, includeStackTrace: true })); } // Iterate through all the test modules - var tests = $tw.wiki.filterTiddlers("[type[application/javascript]tag[$:/tags/test-spec]]"); + var tests = $tw.wiki.filterTiddlers(TEST_TIDDLER_FILTER); $tw.utils.each(tests,function(title,index) { // Get the test specification code var code = $tw.wiki.getTiddlerText(title,"");