konacha 2.5.1 → 2.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|