konacha 2.5.1 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.md +4 -0
- data/README.md +6 -0
- data/Rakefile +17 -9
- data/app/assets/javascripts/konacha/iframe.js +0 -4
- data/konacha.gemspec +1 -1
- data/vendor/assets/javascripts/chai.js +251 -64
- data/vendor/assets/javascripts/mocha.js +103 -105
- data/vendor/assets/stylesheets/mocha.css +15 -0
- metadata +3 -9
data/History.md
CHANGED
data/README.md
CHANGED
@@ -224,6 +224,12 @@ Sprocket's built in support for JavaScript template (`.jst`) files. Add a `spec/
|
|
224
224
|
directory, place template files there (using any JS template language supported by Sprockets),
|
225
225
|
require them in your spec or spec_helper, and render them into the `<body>`.
|
226
226
|
|
227
|
+
Note that if you want to use EJS as in the following example, you need to add that gem to your Gemfile:
|
228
|
+
|
229
|
+
```ruby
|
230
|
+
gem "ejs"
|
231
|
+
```
|
232
|
+
|
227
233
|
For example, in `spec/javascripts/templates/hello.jst.ejs`:
|
228
234
|
|
229
235
|
```html
|
data/Rakefile
CHANGED
@@ -6,15 +6,23 @@ require "rspec/core/rake_task"
|
|
6
6
|
RSpec::Core::RakeTask.new :spec
|
7
7
|
|
8
8
|
desc 'Build and copy Mocha and Chai assets from submodules into vendor/assets'
|
9
|
-
task :assets
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
9
|
+
task :assets => ['assets:build', 'assets:copy']
|
10
|
+
|
11
|
+
namespace :assets do
|
12
|
+
task :build do
|
13
|
+
sh 'git submodule update --init' unless File.exist?('mocha/Makefile') || File.exist?('chai/Makefile')
|
14
|
+
sh 'cd mocha && npm install && make clean && make'
|
15
|
+
sh 'cd chai && npm install && make clean && make'
|
16
|
+
end
|
17
|
+
|
18
|
+
task :copy do
|
19
|
+
sh 'git submodule update --init' unless File.exist?('mocha/Makefile') || File.exist?('chai/Makefile')
|
20
|
+
mkdir_p 'vendor/assets/javascripts'
|
21
|
+
mkdir_p 'vendor/assets/stylesheets'
|
22
|
+
cp 'mocha/mocha.js', 'vendor/assets/javascripts/'
|
23
|
+
cp 'mocha/mocha.css', 'vendor/assets/stylesheets/'
|
24
|
+
cp 'chai/chai.js', 'vendor/assets/javascripts/'
|
25
|
+
end
|
18
26
|
end
|
19
27
|
|
20
28
|
task :default => :spec
|
@@ -25,10 +25,6 @@ mocha.ui = function (name) {
|
|
25
25
|
|
26
26
|
mocha.ui('bdd');
|
27
27
|
|
28
|
-
// Disable leak detection by default. It doesn't seem to be reliable
|
29
|
-
// with Konacha's iframe setup.
|
30
|
-
mocha.ignoreLeaks();
|
31
|
-
|
32
28
|
mocha.suite.beforeAll(function () {
|
33
29
|
var contexts = parent.document.getElementsByClassName("test-context");
|
34
30
|
for (var i = 0; i < contexts.length; ++i) {
|
data/konacha.gemspec
CHANGED
@@ -17,7 +17,7 @@ the asset pipeline and engines.}
|
|
17
17
|
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
18
|
gem.name = "konacha"
|
19
19
|
gem.require_paths = ["lib"]
|
20
|
-
gem.version = "2.
|
20
|
+
gem.version = "2.6.0"
|
21
21
|
gem.license = "MIT"
|
22
22
|
|
23
23
|
gem.add_dependency "railties", ">= 3.1", "< 5"
|
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
require.relative = function (parent) {
|
40
40
|
return function(p){
|
41
|
-
if ('.' != p
|
41
|
+
if ('.' != p.charAt(0)) return require(p);
|
42
42
|
|
43
43
|
var path = parent.split('/')
|
44
44
|
, segs = p.split('/');
|
@@ -63,7 +63,7 @@
|
|
63
63
|
require.register("chai.js", function(module, exports, require){
|
64
64
|
/*!
|
65
65
|
* chai
|
66
|
-
* Copyright(c) 2011-
|
66
|
+
* Copyright(c) 2011-2013 Jake Luer <jake@alogicalparadox.com>
|
67
67
|
* MIT Licensed
|
68
68
|
*/
|
69
69
|
|
@@ -74,7 +74,7 @@
|
|
74
74
|
* Chai version
|
75
75
|
*/
|
76
76
|
|
77
|
-
exports.version = '1.
|
77
|
+
exports.version = '1.5.0';
|
78
78
|
|
79
79
|
/*!
|
80
80
|
* Primary `Assertion` prototype
|
@@ -147,7 +147,7 @@
|
|
147
147
|
/*!
|
148
148
|
* chai
|
149
149
|
* http://chaijs.com
|
150
|
-
* Copyright(c) 2011-
|
150
|
+
* Copyright(c) 2011-2013 Jake Luer <jake@alogicalparadox.com>
|
151
151
|
* MIT Licensed
|
152
152
|
*/
|
153
153
|
|
@@ -194,6 +194,20 @@
|
|
194
194
|
|
195
195
|
Assertion.includeStack = false;
|
196
196
|
|
197
|
+
/*!
|
198
|
+
* ### Assertion.showDiff
|
199
|
+
*
|
200
|
+
* User configurable property, influences whether or not
|
201
|
+
* the `showDiff` flag should be included in the thrown
|
202
|
+
* AssertionErrors. `false` will always be `false`; `true`
|
203
|
+
* will be true when the assertion has requested a diff
|
204
|
+
* be shown.
|
205
|
+
*
|
206
|
+
* @api public
|
207
|
+
*/
|
208
|
+
|
209
|
+
Assertion.showDiff = true;
|
210
|
+
|
197
211
|
Assertion.addProperty = function (name, fn) {
|
198
212
|
util.addProperty(this.prototype, name, fn);
|
199
213
|
};
|
@@ -231,6 +245,7 @@
|
|
231
245
|
Assertion.prototype.assert = function (expr, msg, negateMsg, expected, _actual, showDiff) {
|
232
246
|
var ok = util.test(this, arguments);
|
233
247
|
if (true !== showDiff) showDiff = false;
|
248
|
+
if (true !== Assertion.showDiff) showDiff = false;
|
234
249
|
|
235
250
|
if (!ok) {
|
236
251
|
var msg = util.getMessage(this, arguments)
|
@@ -268,7 +283,7 @@
|
|
268
283
|
/*!
|
269
284
|
* chai
|
270
285
|
* http://chaijs.com
|
271
|
-
* Copyright(c) 2011-
|
286
|
+
* Copyright(c) 2011-2013 Jake Luer <jake@alogicalparadox.com>
|
272
287
|
* MIT Licensed
|
273
288
|
*/
|
274
289
|
|
@@ -352,7 +367,7 @@
|
|
352
367
|
*
|
353
368
|
* The `a` and `an` assertions are aliases that can be
|
354
369
|
* used either as language chains or to assert a value's
|
355
|
-
* type
|
370
|
+
* type.
|
356
371
|
*
|
357
372
|
* // typeof
|
358
373
|
* expect('test').to.be.a('string');
|
@@ -370,15 +385,14 @@
|
|
370
385
|
* @api public
|
371
386
|
*/
|
372
387
|
|
373
|
-
function an(type, msg) {
|
388
|
+
function an (type, msg) {
|
374
389
|
if (msg) flag(this, 'message', msg);
|
390
|
+
type = type.toLowerCase();
|
375
391
|
var obj = flag(this, 'object')
|
376
|
-
,
|
377
|
-
, klass = klassStart + type.slice(1)
|
378
|
-
, article = ~[ 'A', 'E', 'I', 'O', 'U' ].indexOf(klassStart) ? 'an ' : 'a ';
|
392
|
+
, article = ~[ 'a', 'e', 'i', 'o', 'u' ].indexOf(type.charAt(0)) ? 'an ' : 'a ';
|
379
393
|
|
380
394
|
this.assert(
|
381
|
-
|
395
|
+
type === _.type(obj)
|
382
396
|
, 'expected #{this} to be ' + article + type
|
383
397
|
, 'expected #{this} not to be ' + article + type
|
384
398
|
);
|
@@ -663,12 +677,13 @@
|
|
663
677
|
* expect([ 1, 2, 3 ]).to.eql([ 1, 2, 3 ]);
|
664
678
|
*
|
665
679
|
* @name eql
|
680
|
+
* @alias eqls
|
666
681
|
* @param {Mixed} value
|
667
682
|
* @param {String} message _optional_
|
668
683
|
* @api public
|
669
684
|
*/
|
670
685
|
|
671
|
-
|
686
|
+
function assertEql(obj, msg) {
|
672
687
|
if (msg) flag(this, 'message', msg);
|
673
688
|
this.assert(
|
674
689
|
_.eql(obj, flag(this, 'object'))
|
@@ -678,7 +693,10 @@
|
|
678
693
|
, this._obj
|
679
694
|
, true
|
680
695
|
);
|
681
|
-
}
|
696
|
+
}
|
697
|
+
|
698
|
+
Assertion.addMethod('eql', assertEql);
|
699
|
+
Assertion.addMethod('eqls', assertEql);
|
682
700
|
|
683
701
|
/**
|
684
702
|
* ### .above(value)
|
@@ -760,7 +778,7 @@
|
|
760
778
|
this.assert(
|
761
779
|
len >= n
|
762
780
|
, 'expected #{this} to have a length at least #{exp} but got #{act}'
|
763
|
-
, 'expected #{this} to
|
781
|
+
, 'expected #{this} to have a length below #{exp}'
|
764
782
|
, n
|
765
783
|
, len
|
766
784
|
);
|
@@ -856,7 +874,7 @@
|
|
856
874
|
this.assert(
|
857
875
|
len <= n
|
858
876
|
, 'expected #{this} to have a length at most #{exp} but got #{act}'
|
859
|
-
, 'expected #{this} to
|
877
|
+
, 'expected #{this} to have a length above #{exp}'
|
860
878
|
, n
|
861
879
|
, len
|
862
880
|
);
|
@@ -1301,35 +1319,50 @@
|
|
1301
1319
|
if (desiredError) {
|
1302
1320
|
this.assert(
|
1303
1321
|
err === desiredError
|
1304
|
-
, 'expected #{this} to throw
|
1305
|
-
, 'expected #{this} to not throw '
|
1322
|
+
, 'expected #{this} to throw #{exp} but #{act} was thrown'
|
1323
|
+
, 'expected #{this} to not throw #{exp}'
|
1324
|
+
, desiredError
|
1325
|
+
, err
|
1306
1326
|
);
|
1327
|
+
|
1307
1328
|
return this;
|
1308
1329
|
}
|
1309
1330
|
// next, check constructor
|
1310
1331
|
if (constructor) {
|
1311
1332
|
this.assert(
|
1312
1333
|
err instanceof constructor
|
1313
|
-
, 'expected #{this} to throw
|
1314
|
-
, 'expected #{this} to not throw
|
1334
|
+
, 'expected #{this} to throw #{exp} but #{act} was thrown'
|
1335
|
+
, 'expected #{this} to not throw #{exp} but #{act} was thrown'
|
1336
|
+
, name
|
1337
|
+
, err
|
1338
|
+
);
|
1339
|
+
|
1315
1340
|
if (!errMsg) return this;
|
1316
1341
|
}
|
1317
1342
|
// next, check message
|
1318
|
-
|
1343
|
+
var message = 'object' === _.type(err) && "message" in err
|
1344
|
+
? err.message
|
1345
|
+
: '' + err;
|
1346
|
+
|
1347
|
+
if ((message != null) && errMsg && errMsg instanceof RegExp) {
|
1319
1348
|
this.assert(
|
1320
|
-
errMsg.exec(
|
1321
|
-
, 'expected #{this} to throw error matching
|
1322
|
-
, 'expected #{this} to throw error not matching '
|
1349
|
+
errMsg.exec(message)
|
1350
|
+
, 'expected #{this} to throw error matching #{exp} but got #{act}'
|
1351
|
+
, 'expected #{this} to throw error not matching #{exp}'
|
1352
|
+
, errMsg
|
1353
|
+
, message
|
1323
1354
|
);
|
1355
|
+
|
1324
1356
|
return this;
|
1325
|
-
} else if (
|
1357
|
+
} else if ((message != null) && errMsg && 'string' === typeof errMsg) {
|
1326
1358
|
this.assert(
|
1327
|
-
~
|
1359
|
+
~message.indexOf(errMsg)
|
1328
1360
|
, 'expected #{this} to throw error including #{exp} but got #{act}'
|
1329
1361
|
, 'expected #{this} to throw error not including #{act}'
|
1330
1362
|
, errMsg
|
1331
|
-
,
|
1363
|
+
, message
|
1332
1364
|
);
|
1365
|
+
|
1333
1366
|
return this;
|
1334
1367
|
} else {
|
1335
1368
|
thrown = true;
|
@@ -1337,16 +1370,23 @@
|
|
1337
1370
|
}
|
1338
1371
|
}
|
1339
1372
|
|
1340
|
-
var expectedThrown = name ? name : desiredError ? _.inspect(desiredError) : 'an error';
|
1341
1373
|
var actuallyGot = ''
|
1374
|
+
, expectedThrown = name !== null
|
1375
|
+
? name
|
1376
|
+
: desiredError
|
1377
|
+
? '#{exp}' //_.inspect(desiredError)
|
1378
|
+
: 'an error';
|
1379
|
+
|
1342
1380
|
if (thrown) {
|
1343
|
-
actuallyGot = ' but
|
1381
|
+
actuallyGot = ' but #{act} was thrown'
|
1344
1382
|
}
|
1345
1383
|
|
1346
1384
|
this.assert(
|
1347
1385
|
thrown === true
|
1348
1386
|
, 'expected #{this} to throw ' + expectedThrown + actuallyGot
|
1349
1387
|
, 'expected #{this} to not throw ' + expectedThrown + actuallyGot
|
1388
|
+
, desiredError
|
1389
|
+
, thrownError
|
1350
1390
|
);
|
1351
1391
|
};
|
1352
1392
|
|
@@ -1379,7 +1419,7 @@
|
|
1379
1419
|
if (msg) flag(this, 'message', msg);
|
1380
1420
|
var obj = flag(this, 'object')
|
1381
1421
|
, itself = flag(this, 'itself')
|
1382
|
-
, context = ('function' ===
|
1422
|
+
, context = ('function' === _.type(obj) && !itself)
|
1383
1423
|
? obj.prototype[method]
|
1384
1424
|
: obj[method];
|
1385
1425
|
|
@@ -1428,8 +1468,8 @@
|
|
1428
1468
|
var obj = flag(this, 'object');
|
1429
1469
|
this.assert(
|
1430
1470
|
matcher(obj)
|
1431
|
-
, 'expected #{this} to satisfy ' + _.
|
1432
|
-
, 'expected #{this} to not satisfy' + _.
|
1471
|
+
, 'expected #{this} to satisfy ' + _.objDisplay(matcher)
|
1472
|
+
, 'expected #{this} to not satisfy' + _.objDisplay(matcher)
|
1433
1473
|
, this.negate ? false : true
|
1434
1474
|
, matcher(obj)
|
1435
1475
|
);
|
@@ -1466,7 +1506,7 @@
|
|
1466
1506
|
require.register("chai/error.js", function(module, exports, require){
|
1467
1507
|
/*!
|
1468
1508
|
* chai
|
1469
|
-
* Copyright(c) 2011-
|
1509
|
+
* Copyright(c) 2011-2013 Jake Luer <jake@alogicalparadox.com>
|
1470
1510
|
* MIT Licensed
|
1471
1511
|
*/
|
1472
1512
|
|
@@ -1530,7 +1570,7 @@
|
|
1530
1570
|
require.register("chai/interface/assert.js", function(module, exports, require){
|
1531
1571
|
/*!
|
1532
1572
|
* chai
|
1533
|
-
* Copyright(c) 2011-
|
1573
|
+
* Copyright(c) 2011-2013 Jake Luer <jake@alogicalparadox.com>
|
1534
1574
|
* MIT Licensed
|
1535
1575
|
*/
|
1536
1576
|
|
@@ -2520,7 +2560,7 @@
|
|
2520
2560
|
require.register("chai/interface/expect.js", function(module, exports, require){
|
2521
2561
|
/*!
|
2522
2562
|
* chai
|
2523
|
-
* Copyright(c) 2011-
|
2563
|
+
* Copyright(c) 2011-2013 Jake Luer <jake@alogicalparadox.com>
|
2524
2564
|
* MIT Licensed
|
2525
2565
|
*/
|
2526
2566
|
|
@@ -2536,7 +2576,7 @@
|
|
2536
2576
|
require.register("chai/interface/should.js", function(module, exports, require){
|
2537
2577
|
/*!
|
2538
2578
|
* chai
|
2539
|
-
* Copyright(c) 2011-
|
2579
|
+
* Copyright(c) 2011-2013 Jake Luer <jake@alogicalparadox.com>
|
2540
2580
|
* MIT Licensed
|
2541
2581
|
*/
|
2542
2582
|
|
@@ -2616,7 +2656,7 @@
|
|
2616
2656
|
require.register("chai/utils/addChainableMethod.js", function(module, exports, require){
|
2617
2657
|
/*!
|
2618
2658
|
* Chai - addChainingMethod utility
|
2619
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
2659
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
2620
2660
|
* MIT Licensed
|
2621
2661
|
*/
|
2622
2662
|
|
@@ -2626,6 +2666,18 @@
|
|
2626
2666
|
|
2627
2667
|
var transferFlags = require('./transferFlags');
|
2628
2668
|
|
2669
|
+
/*!
|
2670
|
+
* Module variables
|
2671
|
+
*/
|
2672
|
+
|
2673
|
+
// Check whether `__proto__` is supported
|
2674
|
+
var hasProtoSupport = '__proto__' in Object;
|
2675
|
+
|
2676
|
+
// Without `__proto__` support, this module will need to add properties to a function.
|
2677
|
+
// However, some Function.prototype methods cannot be overwritten,
|
2678
|
+
// and there seems no easy cross-platform way to detect them (@see chaijs/chai/issues/69).
|
2679
|
+
var excludeNames = /^(?:length|name|arguments|caller)$/;
|
2680
|
+
|
2629
2681
|
/**
|
2630
2682
|
* ### addChainableMethod (ctx, name, method, chainingBehavior)
|
2631
2683
|
*
|
@@ -2667,16 +2719,20 @@
|
|
2667
2719
|
return result === undefined ? this : result;
|
2668
2720
|
};
|
2669
2721
|
|
2670
|
-
//
|
2671
|
-
|
2672
|
-
|
2673
|
-
|
2674
|
-
|
2675
|
-
|
2676
|
-
|
2677
|
-
|
2678
|
-
|
2679
|
-
|
2722
|
+
// Use `__proto__` if available
|
2723
|
+
if (hasProtoSupport) {
|
2724
|
+
assert.__proto__ = this;
|
2725
|
+
}
|
2726
|
+
// Otherwise, redefine all properties (slow!)
|
2727
|
+
else {
|
2728
|
+
var asserterNames = Object.getOwnPropertyNames(ctx);
|
2729
|
+
asserterNames.forEach(function (asserterName) {
|
2730
|
+
if (!excludeNames.test(asserterName)) {
|
2731
|
+
var pd = Object.getOwnPropertyDescriptor(ctx, asserterName);
|
2732
|
+
Object.defineProperty(assert, asserterName, pd);
|
2733
|
+
}
|
2734
|
+
});
|
2735
|
+
}
|
2680
2736
|
|
2681
2737
|
transferFlags(this, assert);
|
2682
2738
|
return assert;
|
@@ -2690,7 +2746,7 @@
|
|
2690
2746
|
require.register("chai/utils/addMethod.js", function(module, exports, require){
|
2691
2747
|
/*!
|
2692
2748
|
* Chai - addMethod utility
|
2693
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
2749
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
2694
2750
|
* MIT Licensed
|
2695
2751
|
*/
|
2696
2752
|
|
@@ -2731,7 +2787,7 @@
|
|
2731
2787
|
require.register("chai/utils/addProperty.js", function(module, exports, require){
|
2732
2788
|
/*!
|
2733
2789
|
* Chai - addProperty utility
|
2734
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
2790
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
2735
2791
|
* MIT Licensed
|
2736
2792
|
*/
|
2737
2793
|
|
@@ -2778,6 +2834,8 @@
|
|
2778
2834
|
|
2779
2835
|
module.exports = _deepEqual;
|
2780
2836
|
|
2837
|
+
var getEnumerableProperties = require('./getEnumerableProperties');
|
2838
|
+
|
2781
2839
|
// for the browser
|
2782
2840
|
var Buffer;
|
2783
2841
|
try {
|
@@ -2862,8 +2920,8 @@
|
|
2862
2920
|
return _deepEqual(a, b, memos);
|
2863
2921
|
}
|
2864
2922
|
try {
|
2865
|
-
var ka =
|
2866
|
-
kb =
|
2923
|
+
var ka = getEnumerableProperties(a),
|
2924
|
+
kb = getEnumerableProperties(b),
|
2867
2925
|
key;
|
2868
2926
|
} catch (e) {//happens when one is a string literal and the other isn't
|
2869
2927
|
return false;
|
@@ -2901,7 +2959,7 @@
|
|
2901
2959
|
require.register("chai/utils/flag.js", function(module, exports, require){
|
2902
2960
|
/*!
|
2903
2961
|
* Chai - flag utility
|
2904
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
2962
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
2905
2963
|
* MIT Licensed
|
2906
2964
|
*/
|
2907
2965
|
|
@@ -2937,7 +2995,7 @@
|
|
2937
2995
|
require.register("chai/utils/getActual.js", function(module, exports, require){
|
2938
2996
|
/*!
|
2939
2997
|
* Chai - getActual utility
|
2940
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
2998
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
2941
2999
|
* MIT Licensed
|
2942
3000
|
*/
|
2943
3001
|
|
@@ -2957,10 +3015,39 @@
|
|
2957
3015
|
|
2958
3016
|
}); // module: chai/utils/getActual.js
|
2959
3017
|
|
3018
|
+
require.register("chai/utils/getEnumerableProperties.js", function(module, exports, require){
|
3019
|
+
/*!
|
3020
|
+
* Chai - getEnumerableProperties utility
|
3021
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
3022
|
+
* MIT Licensed
|
3023
|
+
*/
|
3024
|
+
|
3025
|
+
/**
|
3026
|
+
* ### .getEnumerableProperties(object)
|
3027
|
+
*
|
3028
|
+
* This allows the retrieval of enumerable property names of an object,
|
3029
|
+
* inherited or not.
|
3030
|
+
*
|
3031
|
+
* @param {Object} object
|
3032
|
+
* @returns {Array}
|
3033
|
+
* @name getEnumerableProperties
|
3034
|
+
* @api public
|
3035
|
+
*/
|
3036
|
+
|
3037
|
+
module.exports = function getEnumerableProperties(object) {
|
3038
|
+
var result = [];
|
3039
|
+
for (var name in object) {
|
3040
|
+
result.push(name);
|
3041
|
+
}
|
3042
|
+
return result;
|
3043
|
+
};
|
3044
|
+
|
3045
|
+
}); // module: chai/utils/getEnumerableProperties.js
|
3046
|
+
|
2960
3047
|
require.register("chai/utils/getMessage.js", function(module, exports, require){
|
2961
3048
|
/*!
|
2962
3049
|
* Chai - message composition utility
|
2963
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
3050
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
2964
3051
|
* MIT Licensed
|
2965
3052
|
*/
|
2966
3053
|
|
@@ -3013,7 +3100,7 @@
|
|
3013
3100
|
require.register("chai/utils/getName.js", function(module, exports, require){
|
3014
3101
|
/*!
|
3015
3102
|
* Chai - getName utility
|
3016
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
3103
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
3017
3104
|
* MIT Licensed
|
3018
3105
|
*/
|
3019
3106
|
|
@@ -3037,7 +3124,7 @@
|
|
3037
3124
|
require.register("chai/utils/getPathValue.js", function(module, exports, require){
|
3038
3125
|
/*!
|
3039
3126
|
* Chai - getPathValue utility
|
3040
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
3127
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
3041
3128
|
* @see https://github.com/logicalparadox/filtr
|
3042
3129
|
* MIT Licensed
|
3043
3130
|
*/
|
@@ -3140,6 +3227,45 @@
|
|
3140
3227
|
|
3141
3228
|
}); // module: chai/utils/getPathValue.js
|
3142
3229
|
|
3230
|
+
require.register("chai/utils/getProperties.js", function(module, exports, require){
|
3231
|
+
/*!
|
3232
|
+
* Chai - getProperties utility
|
3233
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
3234
|
+
* MIT Licensed
|
3235
|
+
*/
|
3236
|
+
|
3237
|
+
/**
|
3238
|
+
* ### .getProperties(object)
|
3239
|
+
*
|
3240
|
+
* This allows the retrieval of property names of an object, enumerable or not,
|
3241
|
+
* inherited or not.
|
3242
|
+
*
|
3243
|
+
* @param {Object} object
|
3244
|
+
* @returns {Array}
|
3245
|
+
* @name getProperties
|
3246
|
+
* @api public
|
3247
|
+
*/
|
3248
|
+
|
3249
|
+
module.exports = function getProperties(object) {
|
3250
|
+
var result = Object.getOwnPropertyNames(subject);
|
3251
|
+
|
3252
|
+
function addProperty(property) {
|
3253
|
+
if (result.indexOf(property) === -1) {
|
3254
|
+
result.push(property);
|
3255
|
+
}
|
3256
|
+
}
|
3257
|
+
|
3258
|
+
var proto = Object.getPrototypeOf(subject);
|
3259
|
+
while (proto !== null) {
|
3260
|
+
Object.getOwnPropertyNames(proto).forEach(addProperty);
|
3261
|
+
proto = Object.getPrototypeOf(proto);
|
3262
|
+
}
|
3263
|
+
|
3264
|
+
return result;
|
3265
|
+
};
|
3266
|
+
|
3267
|
+
}); // module: chai/utils/getProperties.js
|
3268
|
+
|
3143
3269
|
require.register("chai/utils/index.js", function(module, exports, require){
|
3144
3270
|
/*!
|
3145
3271
|
* chai
|
@@ -3159,6 +3285,12 @@
|
|
3159
3285
|
|
3160
3286
|
exports.test = require('./test');
|
3161
3287
|
|
3288
|
+
/*!
|
3289
|
+
* type utility
|
3290
|
+
*/
|
3291
|
+
|
3292
|
+
exports.type = require('./type');
|
3293
|
+
|
3162
3294
|
/*!
|
3163
3295
|
* message utility
|
3164
3296
|
*/
|
@@ -3251,6 +3383,8 @@
|
|
3251
3383
|
// https://github.com/joyent/node/blob/f8c335d0caf47f16d31413f89aa28eda3878e3aa/lib/util.js
|
3252
3384
|
|
3253
3385
|
var getName = require('./getName');
|
3386
|
+
var getProperties = require('./getProperties');
|
3387
|
+
var getEnumerableProperties = require('./getEnumerableProperties');
|
3254
3388
|
|
3255
3389
|
module.exports = inspect;
|
3256
3390
|
|
@@ -3291,7 +3425,7 @@
|
|
3291
3425
|
return html;
|
3292
3426
|
}
|
3293
3427
|
};
|
3294
|
-
|
3428
|
+
|
3295
3429
|
// Returns true if object is a DOM element.
|
3296
3430
|
var isDOMElement = function (object) {
|
3297
3431
|
if (typeof HTMLElement === 'object') {
|
@@ -3327,8 +3461,8 @@
|
|
3327
3461
|
}
|
3328
3462
|
|
3329
3463
|
// Look up the keys of the object.
|
3330
|
-
var visibleKeys =
|
3331
|
-
var keys = ctx.showHidden ?
|
3464
|
+
var visibleKeys = getEnumerableProperties(value);
|
3465
|
+
var keys = ctx.showHidden ? getProperties(value) : visibleKeys;
|
3332
3466
|
|
3333
3467
|
// Some type of object without properties can be shortcutted.
|
3334
3468
|
// In IE, errors have a single `stack` property, or if they are vanilla `Error`,
|
@@ -3567,7 +3701,7 @@
|
|
3567
3701
|
require.register("chai/utils/objDisplay.js", function(module, exports, require){
|
3568
3702
|
/*!
|
3569
3703
|
* Chai - flag utility
|
3570
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
3704
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
3571
3705
|
* MIT Licensed
|
3572
3706
|
*/
|
3573
3707
|
|
@@ -3594,7 +3728,11 @@
|
|
3594
3728
|
, type = Object.prototype.toString.call(obj);
|
3595
3729
|
|
3596
3730
|
if (str.length >= 40) {
|
3597
|
-
if (type === '[object
|
3731
|
+
if (type === '[object Function]') {
|
3732
|
+
return !obj.name || obj.name === ''
|
3733
|
+
? '[Function]'
|
3734
|
+
: '[Function: ' + obj.name + ']';
|
3735
|
+
} else if (type === '[object Array]') {
|
3598
3736
|
return '[ Array(' + obj.length + ') ]';
|
3599
3737
|
} else if (type === '[object Object]') {
|
3600
3738
|
var keys = Object.keys(obj)
|
@@ -3615,7 +3753,7 @@
|
|
3615
3753
|
require.register("chai/utils/overwriteMethod.js", function(module, exports, require){
|
3616
3754
|
/*!
|
3617
3755
|
* Chai - overwriteMethod utility
|
3618
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
3756
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
3619
3757
|
* MIT Licensed
|
3620
3758
|
*/
|
3621
3759
|
|
@@ -3670,7 +3808,7 @@
|
|
3670
3808
|
require.register("chai/utils/overwriteProperty.js", function(module, exports, require){
|
3671
3809
|
/*!
|
3672
3810
|
* Chai - overwriteProperty utility
|
3673
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
3811
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
3674
3812
|
* MIT Licensed
|
3675
3813
|
*/
|
3676
3814
|
|
@@ -3728,7 +3866,7 @@
|
|
3728
3866
|
require.register("chai/utils/test.js", function(module, exports, require){
|
3729
3867
|
/*!
|
3730
3868
|
* Chai - test utility
|
3731
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
3869
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
3732
3870
|
* MIT Licensed
|
3733
3871
|
*/
|
3734
3872
|
|
@@ -3758,7 +3896,7 @@
|
|
3758
3896
|
require.register("chai/utils/transferFlags.js", function(module, exports, require){
|
3759
3897
|
/*!
|
3760
3898
|
* Chai - transferFlags utility
|
3761
|
-
* Copyright(c) 2012 Jake Luer <jake@alogicalparadox.com>
|
3899
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
3762
3900
|
* MIT Licensed
|
3763
3901
|
*/
|
3764
3902
|
|
@@ -3803,6 +3941,55 @@
|
|
3803
3941
|
|
3804
3942
|
}); // module: chai/utils/transferFlags.js
|
3805
3943
|
|
3944
|
+
require.register("chai/utils/type.js", function(module, exports, require){
|
3945
|
+
/*!
|
3946
|
+
* Chai - type utility
|
3947
|
+
* Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
|
3948
|
+
* MIT Licensed
|
3949
|
+
*/
|
3950
|
+
|
3951
|
+
/*!
|
3952
|
+
* Detectable javascript natives
|
3953
|
+
*/
|
3954
|
+
|
3955
|
+
var natives = {
|
3956
|
+
'[object Arguments]': 'arguments'
|
3957
|
+
, '[object Array]': 'array'
|
3958
|
+
, '[object Date]': 'date'
|
3959
|
+
, '[object Function]': 'function'
|
3960
|
+
, '[object Number]': 'number'
|
3961
|
+
, '[object RegExp]': 'regexp'
|
3962
|
+
, '[object String]': 'string'
|
3963
|
+
};
|
3964
|
+
|
3965
|
+
/**
|
3966
|
+
* ### type(object)
|
3967
|
+
*
|
3968
|
+
* Better implementation of `typeof` detection that can
|
3969
|
+
* be used cross-browser. Handles the inconsistencies of
|
3970
|
+
* Array, `null`, and `undefined` detection.
|
3971
|
+
*
|
3972
|
+
* utils.type({}) // 'object'
|
3973
|
+
* utils.type(null) // `null'
|
3974
|
+
* utils.type(undefined) // `undefined`
|
3975
|
+
* utils.type([]) // `array`
|
3976
|
+
*
|
3977
|
+
* @param {Mixed} object to detect type of
|
3978
|
+
* @name type
|
3979
|
+
* @api private
|
3980
|
+
*/
|
3981
|
+
|
3982
|
+
module.exports = function (obj) {
|
3983
|
+
var str = Object.prototype.toString.call(obj);
|
3984
|
+
if (natives[str]) return natives[str];
|
3985
|
+
if (obj === null) return 'null';
|
3986
|
+
if (obj === undefined) return 'undefined';
|
3987
|
+
if (obj === Object(obj)) return 'object';
|
3988
|
+
return typeof obj;
|
3989
|
+
};
|
3990
|
+
|
3991
|
+
}); // module: chai/utils/type.js
|
3992
|
+
|
3806
3993
|
require.alias("./chai.js", "chai");
|
3807
3994
|
|
3808
3995
|
return require('chai');
|
@@ -1,6 +1,5 @@
|
|
1
1
|
;(function(){
|
2
2
|
|
3
|
-
|
4
3
|
// CommonJS require()
|
5
4
|
|
6
5
|
function require(p){
|
@@ -32,11 +31,11 @@ require.register = function (path, fn){
|
|
32
31
|
require.relative = function (parent) {
|
33
32
|
return function(p){
|
34
33
|
if ('.' != p.charAt(0)) return require(p);
|
35
|
-
|
34
|
+
|
36
35
|
var path = parent.split('/')
|
37
36
|
, segs = p.split('/');
|
38
37
|
path.pop();
|
39
|
-
|
38
|
+
|
40
39
|
for (var i = 0; i < segs.length; i++) {
|
41
40
|
var seg = segs[i];
|
42
41
|
if ('..' == seg) path.pop();
|
@@ -52,9 +51,9 @@ require.register("browser/debug.js", function(module, exports, require){
|
|
52
51
|
|
53
52
|
module.exports = function(type){
|
54
53
|
return function(){
|
55
|
-
|
56
54
|
}
|
57
55
|
};
|
56
|
+
|
58
57
|
}); // module: browser/debug.js
|
59
58
|
|
60
59
|
require.register("browser/diff.js", function(module, exports, require){
|
@@ -805,7 +804,6 @@ Hook.prototype.error = function(err){
|
|
805
804
|
this._error = err;
|
806
805
|
};
|
807
806
|
|
808
|
-
|
809
807
|
}); // module: hook.js
|
810
808
|
|
811
809
|
require.register("interfaces/bdd.js", function(module, exports, require){
|
@@ -819,7 +817,7 @@ var Suite = require('../suite')
|
|
819
817
|
|
820
818
|
/**
|
821
819
|
* BDD-style interface:
|
822
|
-
*
|
820
|
+
*
|
823
821
|
* describe('Array', function(){
|
824
822
|
* describe('#indexOf()', function(){
|
825
823
|
* it('should return -1 when not present', function(){
|
@@ -831,7 +829,7 @@ var Suite = require('../suite')
|
|
831
829
|
* });
|
832
830
|
* });
|
833
831
|
* });
|
834
|
-
*
|
832
|
+
*
|
835
833
|
*/
|
836
834
|
|
837
835
|
module.exports = function(suite){
|
@@ -876,7 +874,7 @@ module.exports = function(suite){
|
|
876
874
|
* and callback `fn` containing nested suites
|
877
875
|
* and/or tests.
|
878
876
|
*/
|
879
|
-
|
877
|
+
|
880
878
|
context.describe = context.context = function(title, fn){
|
881
879
|
var suite = Suite.create(suites[0], title);
|
882
880
|
suites.unshift(suite);
|
@@ -956,19 +954,19 @@ var Suite = require('../suite')
|
|
956
954
|
|
957
955
|
/**
|
958
956
|
* TDD-style interface:
|
959
|
-
*
|
957
|
+
*
|
960
958
|
* exports.Array = {
|
961
959
|
* '#indexOf()': {
|
962
960
|
* 'should return -1 when the value is not present': function(){
|
963
|
-
*
|
961
|
+
*
|
964
962
|
* },
|
965
963
|
*
|
966
964
|
* 'should return the correct index when the value is present': function(){
|
967
|
-
*
|
965
|
+
*
|
968
966
|
* }
|
969
967
|
* }
|
970
968
|
* };
|
971
|
-
*
|
969
|
+
*
|
972
970
|
*/
|
973
971
|
|
974
972
|
module.exports = function(suite){
|
@@ -1006,6 +1004,7 @@ module.exports = function(suite){
|
|
1006
1004
|
}
|
1007
1005
|
}
|
1008
1006
|
};
|
1007
|
+
|
1009
1008
|
}); // module: interfaces/exports.js
|
1010
1009
|
|
1011
1010
|
require.register("interfaces/index.js", function(module, exports, require){
|
@@ -1028,27 +1027,27 @@ var Suite = require('../suite')
|
|
1028
1027
|
|
1029
1028
|
/**
|
1030
1029
|
* QUnit-style interface:
|
1031
|
-
*
|
1030
|
+
*
|
1032
1031
|
* suite('Array');
|
1033
|
-
*
|
1032
|
+
*
|
1034
1033
|
* test('#length', function(){
|
1035
1034
|
* var arr = [1,2,3];
|
1036
1035
|
* ok(arr.length == 3);
|
1037
1036
|
* });
|
1038
|
-
*
|
1037
|
+
*
|
1039
1038
|
* test('#indexOf()', function(){
|
1040
1039
|
* var arr = [1,2,3];
|
1041
1040
|
* ok(arr.indexOf(1) == 0);
|
1042
1041
|
* ok(arr.indexOf(2) == 1);
|
1043
1042
|
* ok(arr.indexOf(3) == 2);
|
1044
1043
|
* });
|
1045
|
-
*
|
1044
|
+
*
|
1046
1045
|
* suite('String');
|
1047
|
-
*
|
1046
|
+
*
|
1048
1047
|
* test('#length', function(){
|
1049
1048
|
* ok('foo'.length == 3);
|
1050
1049
|
* });
|
1051
|
-
*
|
1050
|
+
*
|
1052
1051
|
*/
|
1053
1052
|
|
1054
1053
|
module.exports = function(suite){
|
@@ -1091,7 +1090,7 @@ module.exports = function(suite){
|
|
1091
1090
|
/**
|
1092
1091
|
* Describe a "suite" with the given `title`.
|
1093
1092
|
*/
|
1094
|
-
|
1093
|
+
|
1095
1094
|
context.suite = function(title){
|
1096
1095
|
if (suites.length > 1) suites.shift();
|
1097
1096
|
var suite = Suite.create(suites[0], title);
|
@@ -1129,7 +1128,7 @@ var Suite = require('../suite')
|
|
1129
1128
|
* suiteSetup(function(){
|
1130
1129
|
*
|
1131
1130
|
* });
|
1132
|
-
*
|
1131
|
+
*
|
1133
1132
|
* test('should return -1 when not present', function(){
|
1134
1133
|
*
|
1135
1134
|
* });
|
@@ -1549,7 +1548,7 @@ Mocha.prototype.run = function(fn){
|
|
1549
1548
|
var options = this.options;
|
1550
1549
|
var runner = new exports.Runner(suite);
|
1551
1550
|
var reporter = new this._reporter(runner);
|
1552
|
-
runner.ignoreLeaks = options.ignoreLeaks;
|
1551
|
+
runner.ignoreLeaks = false !== options.ignoreLeaks;
|
1553
1552
|
runner.asyncOnly = options.asyncOnly;
|
1554
1553
|
if (options.grep) runner.grep(options.grep, options.invert);
|
1555
1554
|
if (options.globals) runner.globals(options.globals);
|
@@ -1710,7 +1709,7 @@ exports.colors = {
|
|
1710
1709
|
/**
|
1711
1710
|
* Default symbol map.
|
1712
1711
|
*/
|
1713
|
-
|
1712
|
+
|
1714
1713
|
exports.symbols = {
|
1715
1714
|
ok: '✓',
|
1716
1715
|
err: '✖',
|
@@ -2334,8 +2333,6 @@ function HTML(runner, root) {
|
|
2334
2333
|
});
|
2335
2334
|
|
2336
2335
|
runner.on('test end', function(test){
|
2337
|
-
window.scrollTo(0, document.body.scrollHeight);
|
2338
|
-
|
2339
2336
|
// TODO: add to stats
|
2340
2337
|
var percent = stats.tests / this.total * 100 | 0;
|
2341
2338
|
if (progress) progress.update(percent).draw(ctx);
|
@@ -3080,7 +3077,7 @@ exports = module.exports = Min;
|
|
3080
3077
|
|
3081
3078
|
function Min(runner) {
|
3082
3079
|
Base.call(this, runner);
|
3083
|
-
|
3080
|
+
|
3084
3081
|
runner.on('start', function(){
|
3085
3082
|
// clear screen
|
3086
3083
|
process.stdout.write('\u001b[2J');
|
@@ -3100,10 +3097,10 @@ F.prototype = Base.prototype;
|
|
3100
3097
|
Min.prototype = new F;
|
3101
3098
|
Min.prototype.constructor = Min;
|
3102
3099
|
|
3100
|
+
|
3103
3101
|
}); // module: reporters/min.js
|
3104
3102
|
|
3105
3103
|
require.register("reporters/nyan.js", function(module, exports, require){
|
3106
|
-
|
3107
3104
|
/**
|
3108
3105
|
* Module dependencies.
|
3109
3106
|
*/
|
@@ -3249,44 +3246,39 @@ NyanCat.prototype.drawRainbow = function(){
|
|
3249
3246
|
NyanCat.prototype.drawNyanCat = function(status) {
|
3250
3247
|
var self = this;
|
3251
3248
|
var startWidth = this.scoreboardWidth + this.trajectories[0].length;
|
3252
|
-
|
3253
|
-
|
3254
|
-
|
3255
|
-
|
3256
|
-
|
3257
|
-
|
3258
|
-
|
3259
|
-
|
3260
|
-
|
3261
|
-
|
3262
|
-
|
3263
|
-
|
3264
|
-
|
3265
|
-
|
3266
|
-
|
3267
|
-
|
3268
|
-
|
3269
|
-
|
3270
|
-
|
3271
|
-
|
3272
|
-
|
3273
|
-
|
3274
|
-
|
3275
|
-
|
3276
|
-
|
3277
|
-
|
3278
|
-
|
3279
|
-
|
3280
|
-
|
3281
|
-
|
3282
|
-
|
3283
|
-
|
3284
|
-
|
3285
|
-
write(padding + '"" "" ');
|
3286
|
-
write('\n');
|
3287
|
-
break;
|
3288
|
-
}
|
3289
|
-
});
|
3249
|
+
var color = '\u001b[' + startWidth + 'C';
|
3250
|
+
var padding = '';
|
3251
|
+
|
3252
|
+
write(color);
|
3253
|
+
write('_,------,');
|
3254
|
+
write('\n');
|
3255
|
+
|
3256
|
+
write(color);
|
3257
|
+
padding = self.tick ? ' ' : ' ';
|
3258
|
+
write('_|' + padding + '/\\_/\\ ');
|
3259
|
+
write('\n');
|
3260
|
+
|
3261
|
+
write(color);
|
3262
|
+
padding = self.tick ? '_' : '__';
|
3263
|
+
var tail = self.tick ? '~' : '^';
|
3264
|
+
var face;
|
3265
|
+
switch (status) {
|
3266
|
+
case 'pass':
|
3267
|
+
face = '( ^ .^)';
|
3268
|
+
break;
|
3269
|
+
case 'fail':
|
3270
|
+
face = '( o .o)';
|
3271
|
+
break;
|
3272
|
+
default:
|
3273
|
+
face = '( - .-)';
|
3274
|
+
}
|
3275
|
+
write(tail + '|' + padding + face + ' ');
|
3276
|
+
write('\n');
|
3277
|
+
|
3278
|
+
write(color);
|
3279
|
+
padding = self.tick ? ' ' : ' ';
|
3280
|
+
write(padding + '"" "" ');
|
3281
|
+
write('\n');
|
3290
3282
|
|
3291
3283
|
this.cursorUp(this.numberOfLines);
|
3292
3284
|
};
|
@@ -3746,7 +3738,7 @@ function XUnit(runner) {
|
|
3746
3738
|
runner.on('pass', function(test){
|
3747
3739
|
tests.push(test);
|
3748
3740
|
});
|
3749
|
-
|
3741
|
+
|
3750
3742
|
runner.on('fail', function(test){
|
3751
3743
|
tests.push(test);
|
3752
3744
|
});
|
@@ -3763,7 +3755,7 @@ function XUnit(runner) {
|
|
3763
3755
|
}, false));
|
3764
3756
|
|
3765
3757
|
tests.forEach(test);
|
3766
|
-
console.log('</testsuite>');
|
3758
|
+
console.log('</testsuite>');
|
3767
3759
|
});
|
3768
3760
|
}
|
3769
3761
|
|
@@ -4065,8 +4057,7 @@ var EventEmitter = require('browser/events').EventEmitter
|
|
4065
4057
|
, Test = require('./test')
|
4066
4058
|
, utils = require('./utils')
|
4067
4059
|
, filter = utils.filter
|
4068
|
-
, keys = utils.keys
|
4069
|
-
, noop = function(){};
|
4060
|
+
, keys = utils.keys;
|
4070
4061
|
|
4071
4062
|
/**
|
4072
4063
|
* Non-enumerable globals.
|
@@ -4118,6 +4109,15 @@ function Runner(suite) {
|
|
4118
4109
|
this.globals(this.globalProps().concat(['errno']));
|
4119
4110
|
}
|
4120
4111
|
|
4112
|
+
/**
|
4113
|
+
* Wrapper for setImmediate, process.nextTick, or browser polyfill.
|
4114
|
+
*
|
4115
|
+
* @param {Function} fn
|
4116
|
+
* @api private
|
4117
|
+
*/
|
4118
|
+
|
4119
|
+
Runner.immediately = global.setImmediate || process.nextTick;
|
4120
|
+
|
4121
4121
|
/**
|
4122
4122
|
* Inherit from `EventEmitter.prototype`.
|
4123
4123
|
*/
|
@@ -4246,7 +4246,7 @@ Runner.prototype.fail = function(test, err){
|
|
4246
4246
|
if ('string' == typeof err) {
|
4247
4247
|
err = new Error('the string "' + err + '" was thrown, throw an Error :)');
|
4248
4248
|
}
|
4249
|
-
|
4249
|
+
|
4250
4250
|
this.emit('fail', test, err);
|
4251
4251
|
};
|
4252
4252
|
|
@@ -4303,7 +4303,7 @@ Runner.prototype.hook = function(name, fn){
|
|
4303
4303
|
});
|
4304
4304
|
}
|
4305
4305
|
|
4306
|
-
|
4306
|
+
Runner.immediately(function(){
|
4307
4307
|
next(0);
|
4308
4308
|
});
|
4309
4309
|
};
|
@@ -4546,14 +4546,16 @@ Runner.prototype.run = function(fn){
|
|
4546
4546
|
var self = this
|
4547
4547
|
, fn = fn || function(){};
|
4548
4548
|
|
4549
|
+
function uncaught(err){
|
4550
|
+
self.uncaught(err);
|
4551
|
+
}
|
4552
|
+
|
4549
4553
|
debug('start');
|
4550
4554
|
|
4551
4555
|
// callback
|
4552
4556
|
this.on('end', function(){
|
4553
4557
|
debug('end');
|
4554
|
-
process.removeListener('uncaughtException',
|
4555
|
-
self.uncaught(err);
|
4556
|
-
});
|
4558
|
+
process.removeListener('uncaughtException', uncaught);
|
4557
4559
|
fn(self.failures);
|
4558
4560
|
});
|
4559
4561
|
|
@@ -4565,9 +4567,7 @@ Runner.prototype.run = function(fn){
|
|
4565
4567
|
});
|
4566
4568
|
|
4567
4569
|
// uncaught exception
|
4568
|
-
process.on('uncaughtException',
|
4569
|
-
self.uncaught(err);
|
4570
|
-
});
|
4570
|
+
process.on('uncaughtException', uncaught);
|
4571
4571
|
|
4572
4572
|
return this;
|
4573
4573
|
};
|
@@ -5005,7 +5005,7 @@ exports.indexOf = function(arr, obj, start){
|
|
5005
5005
|
|
5006
5006
|
/**
|
5007
5007
|
* Array#reduce (<=IE8)
|
5008
|
-
*
|
5008
|
+
*
|
5009
5009
|
* @param {Array} array
|
5010
5010
|
* @param {Function} fn
|
5011
5011
|
* @param {Object} initial value
|
@@ -5238,34 +5238,6 @@ process.exit = function(status){};
|
|
5238
5238
|
process.stdout = {};
|
5239
5239
|
global = window;
|
5240
5240
|
|
5241
|
-
/**
|
5242
|
-
* next tick implementation.
|
5243
|
-
*/
|
5244
|
-
|
5245
|
-
process.nextTick = (function(){
|
5246
|
-
// postMessage behaves badly on IE8
|
5247
|
-
if (window.ActiveXObject || !window.postMessage) {
|
5248
|
-
return function(fn){ fn() };
|
5249
|
-
}
|
5250
|
-
|
5251
|
-
// based on setZeroTimeout by David Baron
|
5252
|
-
// - http://dbaron.org/log/20100309-faster-timeouts
|
5253
|
-
var timeouts = []
|
5254
|
-
, name = 'mocha-zero-timeout'
|
5255
|
-
|
5256
|
-
window.addEventListener('message', function(e){
|
5257
|
-
if (e.source == window && e.data == name) {
|
5258
|
-
if (e.stopPropagation) e.stopPropagation();
|
5259
|
-
if (timeouts.length) timeouts.shift()();
|
5260
|
-
}
|
5261
|
-
}, true);
|
5262
|
-
|
5263
|
-
return function(fn){
|
5264
|
-
timeouts.push(fn);
|
5265
|
-
window.postMessage(name, '*');
|
5266
|
-
}
|
5267
|
-
})();
|
5268
|
-
|
5269
5241
|
/**
|
5270
5242
|
* Remove uncaughtException listener.
|
5271
5243
|
*/
|
@@ -5298,6 +5270,32 @@ process.on = function(e, fn){
|
|
5298
5270
|
var Mocha = window.Mocha = require('mocha'),
|
5299
5271
|
mocha = window.mocha = new Mocha({ reporter: 'html' });
|
5300
5272
|
|
5273
|
+
var immediateQueue = []
|
5274
|
+
, immediateTimeout;
|
5275
|
+
|
5276
|
+
function timeslice() {
|
5277
|
+
var immediateStart = new Date().getTime();
|
5278
|
+
while (immediateQueue.length && (new Date().getTime() - immediateStart) < 100) {
|
5279
|
+
immediateQueue.shift()();
|
5280
|
+
}
|
5281
|
+
if (immediateQueue.length) {
|
5282
|
+
immediateTimeout = setTimeout(timeslice, 0);
|
5283
|
+
} else {
|
5284
|
+
immediateTimeout = null;
|
5285
|
+
}
|
5286
|
+
}
|
5287
|
+
|
5288
|
+
/**
|
5289
|
+
* High-performance override of Runner.immediately.
|
5290
|
+
*/
|
5291
|
+
|
5292
|
+
Mocha.Runner.immediately = function(callback) {
|
5293
|
+
immediateQueue.push(callback);
|
5294
|
+
if (!immediateTimeout) {
|
5295
|
+
immediateTimeout = setTimeout(timeslice, 0);
|
5296
|
+
}
|
5297
|
+
};
|
5298
|
+
|
5301
5299
|
/**
|
5302
5300
|
* Override ui to ensure that the ui functions are initialized.
|
5303
5301
|
* Normally this would happen in Mocha.prototype.loadFiles.
|
@@ -224,8 +224,23 @@ body {
|
|
224
224
|
padding-top: 11px;
|
225
225
|
}
|
226
226
|
|
227
|
+
#mocha-stats canvas {
|
228
|
+
width: 40px;
|
229
|
+
height: 40px;
|
230
|
+
}
|
231
|
+
|
227
232
|
code .comment { color: #ddd }
|
228
233
|
code .init { color: #2F6FAD }
|
229
234
|
code .string { color: #5890AD }
|
230
235
|
code .keyword { color: #8A6343 }
|
231
236
|
code .number { color: #2F6FAD }
|
237
|
+
|
238
|
+
@media screen and (max-device-width: 480px) {
|
239
|
+
body {
|
240
|
+
padding: 60px 0px;
|
241
|
+
}
|
242
|
+
|
243
|
+
#stats {
|
244
|
+
position: absolute;
|
245
|
+
}
|
246
|
+
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: konacha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03
|
12
|
+
date: 2013-04-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: railties
|
@@ -326,21 +326,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
326
326
|
- - ! '>='
|
327
327
|
- !ruby/object:Gem::Version
|
328
328
|
version: '0'
|
329
|
-
segments:
|
330
|
-
- 0
|
331
|
-
hash: -79528298761712315
|
332
329
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
333
330
|
none: false
|
334
331
|
requirements:
|
335
332
|
- - ! '>='
|
336
333
|
- !ruby/object:Gem::Version
|
337
334
|
version: '0'
|
338
|
-
segments:
|
339
|
-
- 0
|
340
|
-
hash: -79528298761712315
|
341
335
|
requirements: []
|
342
336
|
rubyforge_project:
|
343
|
-
rubygems_version: 1.8.
|
337
|
+
rubygems_version: 1.8.23
|
344
338
|
signing_key:
|
345
339
|
specification_version: 3
|
346
340
|
summary: Unit-test your Rails JavaScript with the mocha test framework and chai assertion
|