stylus-source 0.31.0 → 0.32.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/VERSION +1 -1
- data/vendor/lib/nodes/unit.js +1 -1
- data/vendor/lib/parser.js +0 -1
- data/vendor/lib/renderer.js +2 -0
- data/vendor/lib/visitor/compiler.js +6 -0
- data/vendor/node_modules/cssom/README.mdown +34 -0
- data/vendor/node_modules/cssom/package.json +2 -1
- data/vendor/node_modules/debug/History.md +15 -0
- data/vendor/node_modules/debug/Readme.md +3 -18
- data/vendor/node_modules/debug/component.json +9 -0
- data/vendor/node_modules/debug/debug.js +10 -2
- data/vendor/node_modules/debug/index.js +5 -2
- data/vendor/node_modules/debug/lib/debug.js +5 -6
- data/vendor/node_modules/debug/package.json +11 -6
- data/vendor/node_modules/mkdirp/package.json +6 -9
- data/vendor/node_modules/mkdirp/{README.markdown → readme.markdown} +26 -24
- data/vendor/node_modules/mocha/History.md +140 -58
- data/vendor/node_modules/mocha/LICENSE +2 -2
- data/vendor/node_modules/mocha/Makefile +20 -5
- data/vendor/node_modules/mocha/Readme.md +110 -22
- data/vendor/node_modules/mocha/_mocha.js +574 -182
- data/vendor/node_modules/mocha/bin/_mocha +39 -22
- data/vendor/node_modules/mocha/bin/mocha +6 -2
- data/vendor/node_modules/mocha/component.json +16 -0
- data/vendor/node_modules/mocha/lib/browser/debug.js +1 -2
- data/vendor/node_modules/mocha/lib/browser/diff.js +287 -0
- data/vendor/node_modules/mocha/lib/browser/tty.js +7 -2
- data/vendor/node_modules/mocha/lib/hook.js +0 -1
- data/vendor/node_modules/mocha/lib/interfaces/bdd.js +3 -3
- data/vendor/node_modules/mocha/lib/interfaces/exports.js +5 -5
- data/vendor/node_modules/mocha/lib/interfaces/qunit.js +38 -9
- data/vendor/node_modules/mocha/lib/interfaces/tdd.js +15 -2
- data/vendor/node_modules/mocha/lib/mocha.js +20 -4
- data/vendor/node_modules/mocha/lib/reporters/base.js +57 -37
- data/vendor/node_modules/mocha/lib/reporters/html.js +2 -4
- data/vendor/node_modules/mocha/lib/reporters/json-stream.js +4 -14
- data/vendor/node_modules/mocha/lib/reporters/json.js +9 -19
- data/vendor/node_modules/mocha/lib/reporters/markdown.js +0 -1
- data/vendor/node_modules/mocha/lib/reporters/min.js +2 -2
- data/vendor/node_modules/mocha/lib/reporters/nyan.js +33 -39
- data/vendor/node_modules/mocha/lib/reporters/tap.js +12 -2
- data/vendor/node_modules/mocha/lib/reporters/templates/coverage.jade +3 -3
- data/vendor/node_modules/mocha/lib/reporters/templates/menu.jade +1 -1
- data/vendor/node_modules/mocha/lib/reporters/xunit.js +4 -4
- data/vendor/node_modules/mocha/lib/runnable.js +7 -9
- data/vendor/node_modules/mocha/lib/runner.js +24 -9
- data/vendor/node_modules/mocha/lib/template.html +2 -1
- data/vendor/node_modules/mocha/lib/utils.js +3 -3
- data/vendor/node_modules/mocha/mocha.css +37 -13
- data/vendor/node_modules/mocha/mocha.js +661 -253
- data/vendor/node_modules/mocha/node_modules/commander/package.json +5 -1
- data/vendor/node_modules/mocha/node_modules/diff/package.json +5 -1
- data/vendor/node_modules/mocha/node_modules/glob/LICENSE +27 -0
- data/vendor/node_modules/mocha/node_modules/glob/README.md +250 -0
- data/vendor/node_modules/mocha/node_modules/glob/examples/g.js +9 -0
- data/vendor/node_modules/mocha/node_modules/glob/examples/usr-local.js +9 -0
- data/vendor/node_modules/mocha/node_modules/glob/glob.js +675 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/graceful-fs/LICENSE +27 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/graceful-fs/README.md +33 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/graceful-fs/graceful-fs.js +442 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/graceful-fs/package.json +49 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/graceful-fs/test/open.js +46 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/graceful-fs/test/ulimit.js +158 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/inherits/README.md +51 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/inherits/inherits.js +29 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/inherits/package.json +26 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/LICENSE +23 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/README.md +218 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/minimatch.js +1079 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/AUTHORS +8 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/LICENSE +23 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/README.md +97 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/lib/lru-cache.js +257 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/package.json +59 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/s.js +25 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/basic.js +329 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/foreach.js +52 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/lru-cache/test/memory-leak.js +50 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/sigmund/LICENSE +27 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/sigmund/README.md +53 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/sigmund/bench.js +283 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/sigmund/package.json +38 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/sigmund/sigmund.js +39 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/node_modules/sigmund/test/basic.js +24 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/package.json +36 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/test/basic.js +399 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/test/brace-expand.js +33 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/test/caching.js +14 -0
- data/vendor/node_modules/mocha/node_modules/glob/node_modules/minimatch/test/defaults.js +274 -0
- data/vendor/node_modules/mocha/node_modules/glob/package.json +40 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/00-setup.js +176 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/bash-comparison.js +63 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/bash-results.json +350 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/cwd-test.js +55 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/globstar-match.js +19 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/mark.js +74 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/nocase-nomagic.js +113 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/pause-resume.js +73 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/root-nomount.js +39 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/root.js +46 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/stat.js +32 -0
- data/vendor/node_modules/mocha/node_modules/glob/test/zz-cleanup.js +11 -0
- data/vendor/node_modules/mocha/node_modules/growl/History.md +5 -0
- data/vendor/node_modules/mocha/node_modules/growl/lib/growl.js +2 -0
- data/vendor/node_modules/mocha/node_modules/growl/package.json +7 -3
- data/vendor/node_modules/mocha/node_modules/jade/node_modules/mkdirp/package.json +5 -1
- data/vendor/node_modules/mocha/node_modules/jade/package.json +5 -1
- data/vendor/node_modules/mocha/node_modules/ms/package.json +5 -1
- data/vendor/node_modules/mocha/package.json +13 -7
- data/vendor/node_modules/mocha/test.js +10 -21
- data/vendor/node_modules/should/History.md +5 -0
- data/vendor/node_modules/should/Readme.md +172 -172
- data/vendor/node_modules/should/lib/eql.js +2 -0
- data/vendor/node_modules/should/lib/should.js +4 -3
- data/vendor/node_modules/should/package.json +8 -4
- data/vendor/node_modules/should/test/should.test.js +27 -0
- data/vendor/package.json +1 -1
- metadata +61 -35
- data/vendor/node_modules/debug/Makefile +0 -4
- data/vendor/node_modules/debug/debug.component.js +0 -120
- data/vendor/node_modules/debug/head.js +0 -1
- data/vendor/node_modules/debug/tail.js +0 -4
- data/vendor/node_modules/mocha/node_modules/mkdirp/LICENSE +0 -21
- data/vendor/node_modules/mocha/node_modules/mkdirp/README.markdown +0 -61
- data/vendor/node_modules/mocha/node_modules/mkdirp/examples/pow.js +0 -6
- data/vendor/node_modules/mocha/node_modules/mkdirp/examples/pow.js.orig +0 -6
- data/vendor/node_modules/mocha/node_modules/mkdirp/examples/pow.js.rej +0 -19
- data/vendor/node_modules/mocha/node_modules/mkdirp/index.js +0 -94
- data/vendor/node_modules/mocha/node_modules/mkdirp/package.json +0 -33
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/chmod.js +0 -38
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/clobber.js +0 -37
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/mkdirp.js +0 -28
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/perm.js +0 -32
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/perm_sync.js +0 -39
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/race.js +0 -41
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/rel.js +0 -32
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/return.js +0 -25
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/return_sync.js +0 -24
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/root.js +0 -18
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/sync.js +0 -32
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/umask.js +0 -28
- data/vendor/node_modules/mocha/node_modules/mkdirp/test/umask_sync.js +0 -32
@@ -52,6 +52,7 @@ function image(name) {
|
|
52
52
|
* - `reporter` reporter instance, defaults to `mocha.reporters.Dot`
|
53
53
|
* - `globals` array of accepted globals
|
54
54
|
* - `timeout` timeout in milliseconds
|
55
|
+
* - `bail` bail on the first test failure
|
55
56
|
* - `slow` milliseconds to wait before considering a test slow
|
56
57
|
* - `ignoreLeaks` ignore global leaks
|
57
58
|
* - `grep` string or regexp to filter tests with
|
@@ -67,11 +68,25 @@ function Mocha(options) {
|
|
67
68
|
this.grep(options.grep);
|
68
69
|
this.suite = new exports.Suite('', new exports.Context);
|
69
70
|
this.ui(options.ui);
|
71
|
+
this.bail(options.bail);
|
70
72
|
this.reporter(options.reporter);
|
71
73
|
if (options.timeout) this.timeout(options.timeout);
|
72
74
|
if (options.slow) this.slow(options.slow);
|
73
75
|
}
|
74
76
|
|
77
|
+
/**
|
78
|
+
* Enable or disable bailing on the first failure.
|
79
|
+
*
|
80
|
+
* @param {Boolean} [bail]
|
81
|
+
* @api public
|
82
|
+
*/
|
83
|
+
|
84
|
+
Mocha.prototype.bail = function(bail){
|
85
|
+
if (0 == arguments.length) bail = true;
|
86
|
+
this.suite.bail(bail);
|
87
|
+
return this;
|
88
|
+
};
|
89
|
+
|
75
90
|
/**
|
76
91
|
* Add test `file`.
|
77
92
|
*
|
@@ -87,7 +102,7 @@ Mocha.prototype.addFile = function(file){
|
|
87
102
|
/**
|
88
103
|
* Set reporter to `reporter`, defaults to "dot".
|
89
104
|
*
|
90
|
-
* @param {String|Function} reporter name
|
105
|
+
* @param {String|Function} reporter name or constructor
|
91
106
|
* @api public
|
92
107
|
*/
|
93
108
|
|
@@ -194,12 +209,13 @@ Mocha.prototype.invert = function(){
|
|
194
209
|
/**
|
195
210
|
* Ignore global leaks.
|
196
211
|
*
|
212
|
+
* @param {Boolean} ignore
|
197
213
|
* @return {Mocha}
|
198
214
|
* @api public
|
199
215
|
*/
|
200
216
|
|
201
|
-
Mocha.prototype.ignoreLeaks = function(){
|
202
|
-
this.options.ignoreLeaks =
|
217
|
+
Mocha.prototype.ignoreLeaks = function(ignore){
|
218
|
+
this.options.ignoreLeaks = !!ignore;
|
203
219
|
return this;
|
204
220
|
};
|
205
221
|
|
@@ -292,7 +308,7 @@ Mocha.prototype.run = function(fn){
|
|
292
308
|
var options = this.options;
|
293
309
|
var runner = new exports.Runner(suite);
|
294
310
|
var reporter = new this._reporter(runner);
|
295
|
-
runner.ignoreLeaks = options.ignoreLeaks;
|
311
|
+
runner.ignoreLeaks = false !== options.ignoreLeaks;
|
296
312
|
runner.asyncOnly = options.asyncOnly;
|
297
313
|
if (options.grep) runner.grep(options.grep, options.invert);
|
298
314
|
if (options.globals) runner.globals(options.globals);
|
@@ -64,7 +64,7 @@ exports.colors = {
|
|
64
64
|
/**
|
65
65
|
* Default symbol map.
|
66
66
|
*/
|
67
|
-
|
67
|
+
|
68
68
|
exports.symbols = {
|
69
69
|
ok: '✓',
|
70
70
|
err: '✖',
|
@@ -161,19 +161,21 @@ exports.list = function(failures){
|
|
161
161
|
, expected = err.expected
|
162
162
|
, escape = true;
|
163
163
|
|
164
|
+
// uncaught
|
165
|
+
if (err.uncaught) {
|
166
|
+
msg = 'Uncaught ' + msg;
|
167
|
+
}
|
168
|
+
|
164
169
|
// explicitly show diff
|
165
|
-
if (err.showDiff) {
|
170
|
+
if (err.showDiff && sameType(actual, expected)) {
|
166
171
|
escape = false;
|
167
|
-
err.actual = actual =
|
168
|
-
err.expected = expected =
|
172
|
+
err.actual = actual = stringify(actual);
|
173
|
+
err.expected = expected = stringify(expected);
|
169
174
|
}
|
170
175
|
|
171
176
|
// actual / expected diff
|
172
177
|
if ('string' == typeof actual && 'string' == typeof expected) {
|
173
|
-
|
174
|
-
|
175
|
-
if (len < 20) msg = errorDiff(err, 'Chars', escape);
|
176
|
-
else msg = errorDiff(err, 'Words', escape);
|
178
|
+
msg = errorDiff(err, 'Words', escape);
|
177
179
|
|
178
180
|
// linenos
|
179
181
|
var lines = msg.split('\n');
|
@@ -282,48 +284,38 @@ function Base(runner) {
|
|
282
284
|
*/
|
283
285
|
|
284
286
|
Base.prototype.epilogue = function(){
|
285
|
-
var stats = this.stats
|
286
|
-
|
287
|
-
|
287
|
+
var stats = this.stats;
|
288
|
+
var tests;
|
289
|
+
var fmt;
|
288
290
|
|
289
291
|
console.log();
|
290
292
|
|
291
|
-
|
292
|
-
return 1 == n ? 'test' : 'tests';
|
293
|
-
}
|
294
|
-
|
295
|
-
// failure
|
296
|
-
if (stats.failures) {
|
297
|
-
fmt = color('bright fail', ' ' + exports.symbols.err)
|
298
|
-
+ color('fail', ' %d of %d %s failed')
|
299
|
-
+ color('light', ':')
|
300
|
-
|
301
|
-
console.error(fmt,
|
302
|
-
stats.failures,
|
303
|
-
this.runner.total,
|
304
|
-
pluralize(this.runner.total));
|
305
|
-
|
306
|
-
Base.list(this.failures);
|
307
|
-
console.error();
|
308
|
-
return;
|
309
|
-
}
|
310
|
-
|
311
|
-
// pass
|
293
|
+
// passes
|
312
294
|
fmt = color('bright pass', ' ')
|
313
|
-
+ color('green', ' %d
|
295
|
+
+ color('green', ' %d passing')
|
314
296
|
+ color('light', ' (%s)');
|
315
297
|
|
316
298
|
console.log(fmt,
|
317
|
-
stats.
|
318
|
-
pluralize(stats.tests),
|
299
|
+
stats.passes || 0,
|
319
300
|
ms(stats.duration));
|
320
301
|
|
321
302
|
// pending
|
322
303
|
if (stats.pending) {
|
323
304
|
fmt = color('pending', ' ')
|
324
|
-
+ color('pending', ' %d
|
305
|
+
+ color('pending', ' %d pending');
|
325
306
|
|
326
|
-
console.log(fmt, stats.pending
|
307
|
+
console.log(fmt, stats.pending);
|
308
|
+
}
|
309
|
+
|
310
|
+
// failures
|
311
|
+
if (stats.failures) {
|
312
|
+
fmt = color('fail', ' %d failing');
|
313
|
+
|
314
|
+
console.error(fmt,
|
315
|
+
stats.failures);
|
316
|
+
|
317
|
+
Base.list(this.failures);
|
318
|
+
console.error();
|
327
319
|
}
|
328
320
|
|
329
321
|
console.log();
|
@@ -379,3 +371,31 @@ function colorLines(name, str) {
|
|
379
371
|
return color(name, str);
|
380
372
|
}).join('\n');
|
381
373
|
}
|
374
|
+
|
375
|
+
/**
|
376
|
+
* Stringify `obj`.
|
377
|
+
*
|
378
|
+
* @param {Mixed} obj
|
379
|
+
* @return {String}
|
380
|
+
* @api private
|
381
|
+
*/
|
382
|
+
|
383
|
+
function stringify(obj) {
|
384
|
+
if (obj instanceof RegExp) return obj.toString();
|
385
|
+
return JSON.stringify(obj, null, 2);
|
386
|
+
}
|
387
|
+
|
388
|
+
/**
|
389
|
+
* Check that a / b have the same type.
|
390
|
+
*
|
391
|
+
* @param {Object} a
|
392
|
+
* @param {Object} b
|
393
|
+
* @return {Boolean}
|
394
|
+
* @api private
|
395
|
+
*/
|
396
|
+
|
397
|
+
function sameType(a, b) {
|
398
|
+
a = Object.prototype.toString.call(a);
|
399
|
+
b = Object.prototype.toString.call(b);
|
400
|
+
return a == b;
|
401
|
+
}
|
@@ -116,12 +116,10 @@ function HTML(runner, root) {
|
|
116
116
|
});
|
117
117
|
|
118
118
|
runner.on('fail', function(test, err){
|
119
|
-
if ('hook' == test.type
|
119
|
+
if ('hook' == test.type) runner.emit('test end', test);
|
120
120
|
});
|
121
121
|
|
122
122
|
runner.on('test end', function(test){
|
123
|
-
window.scrollTo(0, document.body.scrollHeight);
|
124
|
-
|
125
123
|
// TODO: add to stats
|
126
124
|
var percent = stats.tests / this.total * 100 | 0;
|
127
125
|
if (progress) progress.update(percent).draw(ctx);
|
@@ -165,7 +163,7 @@ function HTML(runner, root) {
|
|
165
163
|
|
166
164
|
on(h2, 'click', function(){
|
167
165
|
pre.style.display = 'none' == pre.style.display
|
168
|
-
? '
|
166
|
+
? 'block'
|
169
167
|
: 'none';
|
170
168
|
});
|
171
169
|
|
@@ -35,7 +35,6 @@ function List(runner) {
|
|
35
35
|
});
|
36
36
|
|
37
37
|
runner.on('fail', function(test, err){
|
38
|
-
test.error = err;
|
39
38
|
console.log(JSON.stringify(['fail', clean(test)]));
|
40
39
|
});
|
41
40
|
|
@@ -54,18 +53,9 @@ function List(runner) {
|
|
54
53
|
*/
|
55
54
|
|
56
55
|
function clean(test) {
|
57
|
-
|
58
|
-
|
59
|
-
fullTitle: test.fullTitle()
|
60
|
-
duration: test.duration
|
61
|
-
};
|
62
|
-
|
63
|
-
if (test.error) {
|
64
|
-
obj.error = {
|
65
|
-
message: test.error.message,
|
66
|
-
stack: test.error.stack
|
67
|
-
};
|
56
|
+
return {
|
57
|
+
title: test.title
|
58
|
+
, fullTitle: test.fullTitle()
|
59
|
+
, duration: test.duration
|
68
60
|
}
|
69
|
-
|
70
|
-
return obj;
|
71
61
|
}
|
@@ -36,17 +36,16 @@ function JSONReporter(runner) {
|
|
36
36
|
passes.push(test);
|
37
37
|
});
|
38
38
|
|
39
|
-
runner.on('fail', function(test
|
40
|
-
test.error = err;
|
39
|
+
runner.on('fail', function(test){
|
41
40
|
failures.push(test);
|
42
41
|
});
|
43
42
|
|
44
43
|
runner.on('end', function(){
|
45
44
|
var obj = {
|
46
|
-
|
47
|
-
tests: tests.map(clean)
|
48
|
-
failures: failures.map(clean)
|
49
|
-
passes: passes.map(clean)
|
45
|
+
stats: self.stats
|
46
|
+
, tests: tests.map(clean)
|
47
|
+
, failures: failures.map(clean)
|
48
|
+
, passes: passes.map(clean)
|
50
49
|
};
|
51
50
|
|
52
51
|
process.stdout.write(JSON.stringify(obj, null, 2));
|
@@ -63,18 +62,9 @@ function JSONReporter(runner) {
|
|
63
62
|
*/
|
64
63
|
|
65
64
|
function clean(test) {
|
66
|
-
|
67
|
-
|
68
|
-
fullTitle: test.fullTitle()
|
69
|
-
duration: test.duration
|
70
|
-
};
|
71
|
-
|
72
|
-
if (test.error) {
|
73
|
-
obj.error = {
|
74
|
-
message: test.error.message,
|
75
|
-
stack: test.error.stack
|
76
|
-
};
|
65
|
+
return {
|
66
|
+
title: test.title
|
67
|
+
, fullTitle: test.fullTitle()
|
68
|
+
, duration: test.duration
|
77
69
|
}
|
78
|
-
|
79
|
-
return obj;
|
80
70
|
}
|
@@ -20,7 +20,7 @@ exports = module.exports = Min;
|
|
20
20
|
|
21
21
|
function Min(runner) {
|
22
22
|
Base.call(this, runner);
|
23
|
-
|
23
|
+
|
24
24
|
runner.on('start', function(){
|
25
25
|
// clear screen
|
26
26
|
process.stdout.write('\u001b[2J');
|
@@ -35,4 +35,4 @@ function Min(runner) {
|
|
35
35
|
* Inherit from `Base.prototype`.
|
36
36
|
*/
|
37
37
|
|
38
|
-
Min.prototype.__proto__ = Base.prototype;
|
38
|
+
Min.prototype.__proto__ = Base.prototype;
|
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
/**
|
3
2
|
* Module dependencies.
|
4
3
|
*/
|
@@ -144,44 +143,39 @@ NyanCat.prototype.drawRainbow = function(){
|
|
144
143
|
NyanCat.prototype.drawNyanCat = function(status) {
|
145
144
|
var self = this;
|
146
145
|
var startWidth = this.scoreboardWidth + this.trajectories[0].length;
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
write(padding + '"" "" ');
|
181
|
-
write('\n');
|
182
|
-
break;
|
183
|
-
}
|
184
|
-
});
|
146
|
+
var color = '\u001b[' + startWidth + 'C';
|
147
|
+
var padding = '';
|
148
|
+
|
149
|
+
write(color);
|
150
|
+
write('_,------,');
|
151
|
+
write('\n');
|
152
|
+
|
153
|
+
write(color);
|
154
|
+
padding = self.tick ? ' ' : ' ';
|
155
|
+
write('_|' + padding + '/\\_/\\ ');
|
156
|
+
write('\n');
|
157
|
+
|
158
|
+
write(color);
|
159
|
+
padding = self.tick ? '_' : '__';
|
160
|
+
var tail = self.tick ? '~' : '^';
|
161
|
+
var face;
|
162
|
+
switch (status) {
|
163
|
+
case 'pass':
|
164
|
+
face = '( ^ .^)';
|
165
|
+
break;
|
166
|
+
case 'fail':
|
167
|
+
face = '( o .o)';
|
168
|
+
break;
|
169
|
+
default:
|
170
|
+
face = '( - .-)';
|
171
|
+
}
|
172
|
+
write(tail + '|' + padding + face + ' ');
|
173
|
+
write('\n');
|
174
|
+
|
175
|
+
write(color);
|
176
|
+
padding = self.tick ? ' ' : ' ';
|
177
|
+
write(padding + '"" "" ');
|
178
|
+
write('\n');
|
185
179
|
|
186
180
|
this.cursorUp(this.numberOfLines);
|
187
181
|
};
|
@@ -25,7 +25,9 @@ function TAP(runner) {
|
|
25
25
|
|
26
26
|
var self = this
|
27
27
|
, stats = this.stats
|
28
|
-
, n = 1
|
28
|
+
, n = 1
|
29
|
+
, passes = 0
|
30
|
+
, failures = 0;
|
29
31
|
|
30
32
|
runner.on('start', function(){
|
31
33
|
var total = runner.grepTotal(runner.suite);
|
@@ -41,12 +43,20 @@ function TAP(runner) {
|
|
41
43
|
});
|
42
44
|
|
43
45
|
runner.on('pass', function(test){
|
46
|
+
passes++;
|
44
47
|
console.log('ok %d %s', n, title(test));
|
45
48
|
});
|
46
49
|
|
47
50
|
runner.on('fail', function(test, err){
|
51
|
+
failures++;
|
48
52
|
console.log('not ok %d %s', n, title(test));
|
49
|
-
console.log(err.stack.replace(/^/gm, ' '));
|
53
|
+
if (err.stack) console.log(err.stack.replace(/^/gm, ' '));
|
54
|
+
});
|
55
|
+
|
56
|
+
runner.on('end', function(){
|
57
|
+
console.log('# tests ' + (passes + failures));
|
58
|
+
console.log('# pass ' + passes);
|
59
|
+
console.log('# fail ' + failures);
|
50
60
|
});
|
51
61
|
}
|
52
62
|
|
@@ -34,12 +34,12 @@ html
|
|
34
34
|
tbody
|
35
35
|
for line, number in file.source
|
36
36
|
if line.coverage > 0
|
37
|
-
tr.hit
|
37
|
+
tr.hit
|
38
38
|
td.line= number
|
39
39
|
td.hits= line.coverage
|
40
40
|
td.source= line.source
|
41
41
|
else if 0 === line.coverage
|
42
|
-
tr.miss
|
42
|
+
tr.miss
|
43
43
|
td.line= number
|
44
44
|
td.hits 0
|
45
45
|
td.source= line.source
|
@@ -47,4 +47,4 @@ html
|
|
47
47
|
tr
|
48
48
|
td.line= number
|
49
49
|
td.hits
|
50
|
-
td.source= line.source || ' '
|
50
|
+
td.source= line.source || ' '
|
@@ -39,7 +39,7 @@ function XUnit(runner) {
|
|
39
39
|
runner.on('pass', function(test){
|
40
40
|
tests.push(test);
|
41
41
|
});
|
42
|
-
|
42
|
+
|
43
43
|
runner.on('fail', function(test){
|
44
44
|
tests.push(test);
|
45
45
|
});
|
@@ -50,13 +50,13 @@ function XUnit(runner) {
|
|
50
50
|
, tests: stats.tests
|
51
51
|
, failures: stats.failures
|
52
52
|
, errors: stats.failures
|
53
|
-
,
|
53
|
+
, skipped: stats.tests - stats.failures - stats.passes
|
54
54
|
, timestamp: (new Date).toUTCString()
|
55
|
-
, time: stats.duration / 1000
|
55
|
+
, time: (stats.duration / 1000) || 0
|
56
56
|
}, false));
|
57
57
|
|
58
58
|
tests.forEach(test);
|
59
|
-
console.log('</testsuite>');
|
59
|
+
console.log('</testsuite>');
|
60
60
|
});
|
61
61
|
}
|
62
62
|
|
@@ -131,16 +131,14 @@ Runnable.prototype.inspect = function(){
|
|
131
131
|
*/
|
132
132
|
|
133
133
|
Runnable.prototype.resetTimeout = function(){
|
134
|
-
var self = this
|
135
|
-
|
134
|
+
var self = this;
|
135
|
+
var ms = this.timeout() || 1e9;
|
136
136
|
|
137
137
|
this.clearTimeout();
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
}, ms);
|
143
|
-
}
|
138
|
+
this.timer = setTimeout(function(){
|
139
|
+
self.callback(new Error('timeout of ' + ms + 'ms exceeded'));
|
140
|
+
self.timedOut = true;
|
141
|
+
}, ms);
|
144
142
|
};
|
145
143
|
|
146
144
|
/**
|
@@ -194,7 +192,7 @@ Runnable.prototype.run = function(fn){
|
|
194
192
|
if (this.async) {
|
195
193
|
try {
|
196
194
|
this.fn.call(ctx, function(err){
|
197
|
-
if (toString.call(err) === "[object Error]") return done(err);
|
195
|
+
if (err instanceof Error || toString.call(err) === "[object Error]") return done(err);
|
198
196
|
if (null != err) return done(new Error('done() invoked with non-Error: ' + err));
|
199
197
|
done();
|
200
198
|
});
|
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
/**
|
3
2
|
* Module dependencies.
|
4
3
|
*/
|
@@ -8,8 +7,7 @@ var EventEmitter = require('events').EventEmitter
|
|
8
7
|
, Test = require('./test')
|
9
8
|
, utils = require('./utils')
|
10
9
|
, filter = utils.filter
|
11
|
-
, keys = utils.keys
|
12
|
-
, noop = function(){};
|
10
|
+
, keys = utils.keys;
|
13
11
|
|
14
12
|
/**
|
15
13
|
* Non-enumerable globals.
|
@@ -45,6 +43,7 @@ module.exports = Runner;
|
|
45
43
|
* - `hook end` (hook) hook complete
|
46
44
|
* - `pass` (test) test passed
|
47
45
|
* - `fail` (test, err) test failed
|
46
|
+
* - `pending` (test) test pending
|
48
47
|
*
|
49
48
|
* @api public
|
50
49
|
*/
|
@@ -61,6 +60,15 @@ function Runner(suite) {
|
|
61
60
|
this.globals(this.globalProps().concat(['errno']));
|
62
61
|
}
|
63
62
|
|
63
|
+
/**
|
64
|
+
* Wrapper for setImmediate, process.nextTick, or browser polyfill.
|
65
|
+
*
|
66
|
+
* @param {Function} fn
|
67
|
+
* @api private
|
68
|
+
*/
|
69
|
+
|
70
|
+
Runner.immediately = global.setImmediate || process.nextTick;
|
71
|
+
|
64
72
|
/**
|
65
73
|
* Inherit from `EventEmitter.prototype`.
|
66
74
|
*/
|
@@ -119,7 +127,7 @@ Runner.prototype.globalProps = function() {
|
|
119
127
|
|
120
128
|
// non-enumerables
|
121
129
|
for (var i = 0; i < globals.length; ++i) {
|
122
|
-
if (~
|
130
|
+
if (~utils.indexOf(props, globals[i])) continue;
|
123
131
|
props.push(globals[i]);
|
124
132
|
}
|
125
133
|
|
@@ -181,9 +189,11 @@ Runner.prototype.checkGlobals = function(test){
|
|
181
189
|
Runner.prototype.fail = function(test, err){
|
182
190
|
++this.failures;
|
183
191
|
test.state = 'failed';
|
192
|
+
|
184
193
|
if ('string' == typeof err) {
|
185
194
|
err = new Error('the string "' + err + '" was thrown, throw an Error :)');
|
186
195
|
}
|
196
|
+
|
187
197
|
this.emit('fail', test, err);
|
188
198
|
};
|
189
199
|
|
@@ -222,8 +232,11 @@ Runner.prototype.hook = function(name, fn){
|
|
222
232
|
function next(i) {
|
223
233
|
var hook = hooks[i];
|
224
234
|
if (!hook) return fn();
|
235
|
+
if (self.failures && suite.bail()) return fn();
|
225
236
|
self.currentRunnable = hook;
|
226
237
|
|
238
|
+
hook.ctx.currentTest = self.test;
|
239
|
+
|
227
240
|
self.emit('hook', hook);
|
228
241
|
|
229
242
|
hook.on('error', function(err){
|
@@ -236,11 +249,12 @@ Runner.prototype.hook = function(name, fn){
|
|
236
249
|
if (testError) self.fail(self.test, testError);
|
237
250
|
if (err) return self.failHook(hook, err);
|
238
251
|
self.emit('hook end', hook);
|
252
|
+
delete hook.ctx.currentTest;
|
239
253
|
next(++i);
|
240
254
|
});
|
241
255
|
}
|
242
256
|
|
243
|
-
|
257
|
+
Runner.immediately(function(){
|
244
258
|
next(0);
|
245
259
|
});
|
246
260
|
};
|
@@ -483,13 +497,12 @@ Runner.prototype.run = function(fn){
|
|
483
497
|
var self = this
|
484
498
|
, fn = fn || function(){};
|
485
499
|
|
486
|
-
|
487
|
-
|
488
|
-
// uncaught callback
|
489
|
-
function uncaught(err) {
|
500
|
+
function uncaught(err){
|
490
501
|
self.uncaught(err);
|
491
502
|
}
|
492
503
|
|
504
|
+
debug('start');
|
505
|
+
|
493
506
|
// callback
|
494
507
|
this.on('end', function(){
|
495
508
|
debug('end');
|
@@ -521,6 +534,8 @@ Runner.prototype.run = function(fn){
|
|
521
534
|
|
522
535
|
function filterLeaks(ok, globals) {
|
523
536
|
return filter(globals, function(key){
|
537
|
+
// Firefox and Chrome exposes iframes as index inside the window object
|
538
|
+
if (/^d+/.test(key)) return false;
|
524
539
|
var matched = filter(ok, function(ok){
|
525
540
|
if (~ok.indexOf('*')) return 0 == key.indexOf(ok.split('*')[0]);
|
526
541
|
// Opera and IE expose global variables for HTML element IDs (issue #243)
|
@@ -3,13 +3,14 @@
|
|
3
3
|
<head>
|
4
4
|
<title>Mocha</title>
|
5
5
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
7
|
<link rel="stylesheet" href="mocha.css" />
|
7
8
|
</head>
|
8
9
|
<body>
|
9
10
|
<div id="mocha"></div>
|
10
11
|
<script src="mocha.js"></script>
|
11
12
|
<script>mocha.setup('bdd')</script>
|
12
|
-
<script src="
|
13
|
+
<script src="tests.js"></script>
|
13
14
|
<script>
|
14
15
|
mocha.run();
|
15
16
|
</script>
|
@@ -63,7 +63,7 @@ exports.indexOf = function(arr, obj, start){
|
|
63
63
|
|
64
64
|
/**
|
65
65
|
* Array#reduce (<=IE8)
|
66
|
-
*
|
66
|
+
*
|
67
67
|
* @param {Array} array
|
68
68
|
* @param {Function} fn
|
69
69
|
* @param {Object} initial value
|
@@ -196,8 +196,8 @@ exports.clean = function(str) {
|
|
196
196
|
.replace(/^function *\(.*\) *{/, '')
|
197
197
|
.replace(/\s+\}$/, '');
|
198
198
|
|
199
|
-
var
|
200
|
-
, re = new RegExp('^
|
199
|
+
var whitespace = str.match(/^\n?(\s*)/)[1]
|
200
|
+
, re = new RegExp('^' + whitespace, 'gm');
|
201
201
|
|
202
202
|
str = str.replace(re, '');
|
203
203
|
|