UNPKG

chocolate

Version:

A full stack Node.js web framework built using Coffeescript

229 lines (212 loc) 7.83 kB
// Generated by CoffeeScript 1.12.6 (function() { var Specolate, _module, available, finished, log, hasProp = {}.hasOwnProperty; log = []; available = true; finished = true; Specolate = (function() { function Specolate() {} Specolate.html_reporter = function(module_filename, options, callback) { var j, len, line, needs_refresh, result; if (available) { Specolate.report(module_filename, options, callback); } needs_refresh = !finished ? '<head>\n<meta http-equiv="refresh" content="1">\n</head>' : ''; available = finished; result = '<html>\n' + needs_refresh + '\n<body>\n'; for (j = 0, len = log.length; j < len; j++) { line = log[j]; result += '<div>' + line.replace(/\ /g, '&nbsp;') + '</div>'; } return result += '</body>\n</html>'; }; Specolate.json_reporter = function(module_filename, options, callback) { var event; if (available) { event = Specolate.report(module_filename, options, callback != null ? (function() { available = finished; return callback.apply(null, arguments); }) : void 0); if (event != null) { event.on('end', function() { return available = finished; }); } return event; } else { return ''; } }; Specolate.get_extension = function(path) { if ((path = path.substr(1 + path.lastIndexOf('/'))).indexOf('.') === -1) { return ''; } else { return '.' + path.split('.').slice(-1)[0]; } }; Specolate.get_spec_filename = function(path) { var ext, ref; if (path === '') { return ''; } if ((ref = (ext = Specolate.get_extension(path))) !== '' && ref !== '.') { return path.replace(ext, '.spec' + ext); } return path + '.spec'; }; Specolate.inspect = function(reporter, module_filename, options, callback) { var report; if ((report = Specolate[reporter + '_reporter']) != null) { return report(module_filename, options, callback); } }; Specolate.report = function(module_filename, options, callback) { var context, error, event, host, k, reporter, result, specolate_filename, stack, v, vm; if (!finished) { return ''; } host = typeof window !== "undefined" && window !== null ? window : { __: options }; event = null; log = []; log.failedCount = 0; log.totalCount = 0; available = false; finished = false; specolate_filename = Specolate.get_spec_filename(module_filename); reporter = { log: function() {}, reportSpecStarting: function(runner) {}, reportRunnerStarting: function(runner) {}, reportSuiteResults: function(suite) {}, reportSpecResults: function(spec) {}, reportRunnerResults: function(runner) { var _log, cache, count, description, i, j, k, l, len, len1, len2, m, one_log, path, ref, ref1, ref2, ref3, result, spaces, spec, specResults, suite; ref = runner.suites(); for (j = 0, len = ref.length; j < len; j++) { suite = ref[j]; specResults = suite.results(); path = []; while (suite) { path.unshift(suite.description); suite = suite.parentSuite; } description = path.join('.'); spaces = ((function() { var l, ref1, results; results = []; for (i = l = 0, ref1 = 2 * path.length; 0 <= ref1 ? l < ref1 : l > ref1; i = 0 <= ref1 ? ++l : --l) { results.push(' '); } return results; })()).join(''); one_log = []; one_log.push(spaces + 'spec : ' + description); ref1 = specResults.items_; for (l = 0, len1 = ref1.length; l < len1; l++) { spec = ref1[l]; if (spec.description) { one_log.push(spaces + ' it ' + spec.description + ': '); ref2 = spec.items_; for (i = m = 0, len2 = ref2.length; m < len2; i = ++m) { result = ref2[i]; [].splice.apply(one_log, [-1, 9e9].concat(ref3 = one_log.slice(-1) + (i > 0 ? ',' : '') + ' ' + result.message)), ref3; if (!result.passed_) { log.failedCount += 1; } log.totalCount += 1; } } } log.push.apply(log, one_log); } _log = ['results : ' + log.failedCount + ' failed out of ' + log.totalCount, '', 'started at ' + new Date(), '', 'finished at ' + new Date()]; [].splice.apply(_log, [3, -4].concat(log)), log; count = { failed: log.failedCount, total: log.totalCount }; log = _log; finished = true; cache = typeof window !== "undefined" && window !== null ? window.modules : require.cache; for (k in cache) { if (!hasProp.call(cache, k)) continue; if (!(k.indexOf('.spec') !== -1)) { continue; } delete cache[k]; cache[k] = null; } result = { log: log, count: count }; if (callback != null) { callback(result); } else { process.nextTick(function() { return event != null ? event.emit('end', result) : void 0; }); } return runner.suites().length = 0; } }; try { if (typeof window === "undefined" || window === null) { vm = require('vm'); context = vm.createContext({ reporter: reporter, host: host }); for (k in global) { if (!hasProp.call(global, k)) continue; v = global[k]; context[k] = v; } context.module = module; context.require = require; context.global = context; context.global.global = context; event = vm.runInContext("var Events, event, k;\nEvents = require('events');\nevent = new Events.EventEmitter;\nhost.jasmine = require('jasmine-node');\ntry { require('" + specolate_filename + "'); } catch (_error) {}\nhost.jasmine.getEnv().reporter = reporter;\nhost.jasmine.getEnv().__ = host.__;\ntry { host.jasmine.getEnv().execute(); } catch (_error) { process.nextTick(function() {event.emit('end', {count:{failed:1,total:1},log:[\"\", \"\", _error.toString()]});}) }\nevent;", context, specolate_filename); } else { require('../' + specolate_filename, { use_cache: false }); host.jasmine.getEnv().reporter = reporter; host.jasmine.getEnv().execute(); } } catch (error1) { error = error1; finished = true; try { stack = error.stack; } catch (error1) { stack = error.toString(); } result = { log: ['', '', '', stack], count: { failed: 1, total: 1 } }; if (callback != null) { callback(result); } else { process.nextTick(function() { return event != null ? event.emit('end', result) : void 0; }); } } return event; }; Specolate.has_finished = function() { return finished; }; return Specolate; })(); _module = typeof window !== "undefined" && window !== null ? window : module; _module[_module.exports != null ? "exports" : "Specolate"] = Specolate; }).call(this);