stylus-source 0.28.2 → 0.29.0
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/vendor/Readme.md +1 -1
- data/vendor/lib/functions/index.js +75 -1
- data/vendor/lib/functions/url.js +11 -12
- data/vendor/lib/lexer.js +2 -1
- data/vendor/lib/stylus.js +1 -1
- data/vendor/lib/visitor/compiler.js +1 -1
- data/vendor/lib/visitor/evaluator.js +2 -0
- data/vendor/node_modules/cssom/package.json +0 -3
- data/vendor/node_modules/mocha/History.md +21 -0
- data/vendor/node_modules/mocha/Makefile +2 -2
- data/vendor/node_modules/mocha/_mocha.js +141 -48
- data/vendor/node_modules/mocha/bin/_mocha +53 -61
- data/vendor/node_modules/mocha/bin/mocha +3 -0
- data/vendor/node_modules/mocha/lib/interfaces/bdd.js +23 -6
- data/vendor/node_modules/mocha/lib/mocha.js +55 -4
- data/vendor/node_modules/mocha/lib/reporters/base.js +5 -5
- data/vendor/node_modules/mocha/lib/reporters/dot.js +5 -4
- data/vendor/node_modules/mocha/lib/reporters/html.js +25 -12
- data/vendor/node_modules/mocha/lib/reporters/landing.js +2 -2
- data/vendor/node_modules/mocha/lib/reporters/min.js +2 -2
- data/vendor/node_modules/mocha/lib/reporters/nyan.js +6 -6
- data/vendor/node_modules/mocha/lib/reporters/progress.js +1 -1
- data/vendor/node_modules/mocha/lib/reporters/xunit.js +5 -1
- data/vendor/node_modules/mocha/lib/runnable.js +1 -1
- data/vendor/node_modules/mocha/lib/runner.js +3 -3
- data/vendor/node_modules/mocha/lib/suite.js +7 -1
- data/vendor/node_modules/mocha/lib/utils.js +1 -1
- data/vendor/node_modules/mocha/mocha.css +18 -1
- data/vendor/node_modules/mocha/mocha.js +141 -48
- data/vendor/node_modules/mocha/package.json +6 -3
- data/vendor/node_modules/mocha/test.js +3 -5
- data/vendor/node_modules/should/History.md +11 -0
- data/vendor/node_modules/should/Readme.md +22 -10
- data/vendor/node_modules/should/lib/should.js +70 -62
- data/vendor/node_modules/should/package.json +5 -2
- data/vendor/node_modules/should/test/should.test.js +64 -0
- data/vendor/package.json +1 -1
- data/vendor/testing/foo.css +3 -0
- data/vendor/testing/index.js +1 -0
- data/vendor/testing/small.styl +12 -10
- metadata +3 -16
- data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/bdd - after each.tmSnippet +0 -16
- data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/bdd - after.tmSnippet +0 -16
- data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/bdd - before each.tmSnippet +0 -16
- data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/bdd - before.tmSnippet +0 -16
- data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/bdd - it.tmSnippet +0 -16
- data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/Snippets/untitled.tmSnippet +0 -16
- data/vendor/node_modules/mocha/editors/JavaScript mocha.tmbundle/info.plist +0 -19
- data/vendor/node_modules/mocha/support/compile.js +0 -154
- data/vendor/node_modules/mocha/support/foot.js +0 -1
- data/vendor/node_modules/mocha/support/head.js +0 -2
- data/vendor/node_modules/mocha/support/tail.js +0 -150
- data/vendor/node_modules/mocha/support/template.html +0 -16
@@ -537,11 +537,6 @@ module.exports = function(suite){
|
|
537
537
|
|
538
538
|
suite.on('pre-require', function(context){
|
539
539
|
|
540
|
-
// noop variants
|
541
|
-
|
542
|
-
context.xdescribe = function(){};
|
543
|
-
context.xit = function(){};
|
544
|
-
|
545
540
|
/**
|
546
541
|
* Execute before running tests.
|
547
542
|
*/
|
@@ -574,6 +569,18 @@ module.exports = function(suite){
|
|
574
569
|
suites[0].afterEach(fn);
|
575
570
|
};
|
576
571
|
|
572
|
+
/**
|
573
|
+
* Pending describe.
|
574
|
+
*/
|
575
|
+
|
576
|
+
context.xdescribe = context.xcontext = function(title, fn){
|
577
|
+
var suite = Suite.create(suites[0], title);
|
578
|
+
suite.pending = true;
|
579
|
+
suites.unshift(suite);
|
580
|
+
fn();
|
581
|
+
suites.shift();
|
582
|
+
};
|
583
|
+
|
577
584
|
/**
|
578
585
|
* Describe a "suite" with the given `title`
|
579
586
|
* and callback `fn` containing nested suites
|
@@ -594,7 +601,17 @@ module.exports = function(suite){
|
|
594
601
|
*/
|
595
602
|
|
596
603
|
context.it = context.specify = function(title, fn){
|
597
|
-
suites[0]
|
604
|
+
var suite = suites[0];
|
605
|
+
if (suite.pending) var fn = null;
|
606
|
+
suite.addTest(new Test(title, fn));
|
607
|
+
};
|
608
|
+
|
609
|
+
/**
|
610
|
+
* Pending test case.
|
611
|
+
*/
|
612
|
+
|
613
|
+
context.xit = context.xspecify = function(title){
|
614
|
+
context.it(title);
|
598
615
|
};
|
599
616
|
});
|
600
617
|
};
|
@@ -985,13 +1002,15 @@ Mocha.prototype.ui = function(name){
|
|
985
1002
|
* @api private
|
986
1003
|
*/
|
987
1004
|
|
988
|
-
Mocha.prototype.loadFiles = function(){
|
1005
|
+
Mocha.prototype.loadFiles = function(fn){
|
989
1006
|
var suite = this.suite;
|
1007
|
+
var pending = this.files.length;
|
990
1008
|
this.files.forEach(function(file){
|
991
1009
|
file = path.resolve(file);
|
992
1010
|
suite.emit('pre-require', global, file);
|
993
1011
|
suite.emit('require', require(file), file);
|
994
1012
|
suite.emit('post-require', global, file);
|
1013
|
+
--pending || (fn && fn());
|
995
1014
|
});
|
996
1015
|
};
|
997
1016
|
|
@@ -1001,7 +1020,7 @@ Mocha.prototype.loadFiles = function(){
|
|
1001
1020
|
* @api private
|
1002
1021
|
*/
|
1003
1022
|
|
1004
|
-
Mocha.prototype.
|
1023
|
+
Mocha.prototype._growl = function(runner, reporter) {
|
1005
1024
|
var notify = require('growl');
|
1006
1025
|
|
1007
1026
|
runner.on('end', function(){
|
@@ -1034,6 +1053,55 @@ Mocha.prototype.grep = function(re){
|
|
1034
1053
|
return this;
|
1035
1054
|
};
|
1036
1055
|
|
1056
|
+
/**
|
1057
|
+
* Invert `.grep()` matches.
|
1058
|
+
*
|
1059
|
+
* @return {Mocha}
|
1060
|
+
* @api public
|
1061
|
+
*/
|
1062
|
+
|
1063
|
+
Mocha.prototype.invert = function(){
|
1064
|
+
this.options.invert = true;
|
1065
|
+
return this;
|
1066
|
+
};
|
1067
|
+
|
1068
|
+
/**
|
1069
|
+
* Ignore global leaks.
|
1070
|
+
*
|
1071
|
+
* @return {Mocha}
|
1072
|
+
* @api public
|
1073
|
+
*/
|
1074
|
+
|
1075
|
+
Mocha.prototype.ignoreLeaks = function(){
|
1076
|
+
this.options.ignoreLeaks = true;
|
1077
|
+
return this;
|
1078
|
+
};
|
1079
|
+
|
1080
|
+
/**
|
1081
|
+
* Enable growl support.
|
1082
|
+
*
|
1083
|
+
* @return {Mocha}
|
1084
|
+
* @api public
|
1085
|
+
*/
|
1086
|
+
|
1087
|
+
Mocha.prototype.growl = function(){
|
1088
|
+
this.options.growl = true;
|
1089
|
+
return this;
|
1090
|
+
};
|
1091
|
+
|
1092
|
+
/**
|
1093
|
+
* Ignore `globals`.
|
1094
|
+
*
|
1095
|
+
* @param {Array} globals
|
1096
|
+
* @return {Mocha}
|
1097
|
+
* @api public
|
1098
|
+
*/
|
1099
|
+
|
1100
|
+
Mocha.prototype.globals = function(globals){
|
1101
|
+
this.options.globals = globals;
|
1102
|
+
return this;
|
1103
|
+
};
|
1104
|
+
|
1037
1105
|
/**
|
1038
1106
|
* Run tests and invoke `fn()` when complete.
|
1039
1107
|
*
|
@@ -1049,9 +1117,9 @@ Mocha.prototype.run = function(fn){
|
|
1049
1117
|
var runner = new exports.Runner(suite);
|
1050
1118
|
var reporter = new this._reporter(runner);
|
1051
1119
|
runner.ignoreLeaks = options.ignoreLeaks;
|
1052
|
-
if (options.grep) runner.grep(options.grep);
|
1120
|
+
if (options.grep) runner.grep(options.grep, options.invert);
|
1053
1121
|
if (options.globals) runner.globals(options.globals);
|
1054
|
-
if (options.growl) this.
|
1122
|
+
if (options.growl) this._growl(runner, reporter);
|
1055
1123
|
return runner.run(fn);
|
1056
1124
|
};
|
1057
1125
|
|
@@ -1134,7 +1202,7 @@ exports.colors = {
|
|
1134
1202
|
|
1135
1203
|
var color = exports.color = function(type, str) {
|
1136
1204
|
if (!exports.useColors) return str;
|
1137
|
-
return '\
|
1205
|
+
return '\u001b[' + exports.colors[type] + 'm' + str + '\u001b[0m';
|
1138
1206
|
};
|
1139
1207
|
|
1140
1208
|
/**
|
@@ -1157,19 +1225,19 @@ exports.window = {
|
|
1157
1225
|
|
1158
1226
|
exports.cursor = {
|
1159
1227
|
hide: function(){
|
1160
|
-
process.stdout.write('\
|
1228
|
+
process.stdout.write('\u001b[?25l');
|
1161
1229
|
},
|
1162
1230
|
|
1163
1231
|
show: function(){
|
1164
|
-
process.stdout.write('\
|
1232
|
+
process.stdout.write('\u001b[?25h');
|
1165
1233
|
},
|
1166
1234
|
|
1167
1235
|
deleteLine: function(){
|
1168
|
-
process.stdout.write('\
|
1236
|
+
process.stdout.write('\u001b[2K');
|
1169
1237
|
},
|
1170
1238
|
|
1171
1239
|
beginningOfLine: function(){
|
1172
|
-
process.stdout.write('\
|
1240
|
+
process.stdout.write('\u001b[0G');
|
1173
1241
|
},
|
1174
1242
|
|
1175
1243
|
CR: function(){
|
@@ -1504,6 +1572,7 @@ function Dot(runner) {
|
|
1504
1572
|
var self = this
|
1505
1573
|
, stats = this.stats
|
1506
1574
|
, width = Base.window.width * .75 | 0
|
1575
|
+
, c = '․'
|
1507
1576
|
, n = 0;
|
1508
1577
|
|
1509
1578
|
runner.on('start', function(){
|
@@ -1511,21 +1580,21 @@ function Dot(runner) {
|
|
1511
1580
|
});
|
1512
1581
|
|
1513
1582
|
runner.on('pending', function(test){
|
1514
|
-
process.stdout.write(color('pending',
|
1583
|
+
process.stdout.write(color('pending', c));
|
1515
1584
|
});
|
1516
1585
|
|
1517
1586
|
runner.on('pass', function(test){
|
1518
1587
|
if (++n % width == 0) process.stdout.write('\n ');
|
1519
1588
|
if ('slow' == test.speed) {
|
1520
|
-
process.stdout.write(color('bright yellow',
|
1589
|
+
process.stdout.write(color('bright yellow', c));
|
1521
1590
|
} else {
|
1522
|
-
process.stdout.write(color(test.speed,
|
1591
|
+
process.stdout.write(color(test.speed, c));
|
1523
1592
|
}
|
1524
1593
|
});
|
1525
1594
|
|
1526
1595
|
runner.on('fail', function(test, err){
|
1527
1596
|
if (++n % width == 0) process.stdout.write('\n ');
|
1528
|
-
process.stdout.write(color('fail',
|
1597
|
+
process.stdout.write(color('fail', c));
|
1529
1598
|
});
|
1530
1599
|
|
1531
1600
|
runner.on('end', function(){
|
@@ -1630,8 +1699,8 @@ exports = module.exports = HTML;
|
|
1630
1699
|
|
1631
1700
|
var statsTemplate = '<ul id="stats">'
|
1632
1701
|
+ '<li class="progress"><canvas width="40" height="40"></canvas></li>'
|
1633
|
-
+ '<li class="passes">passes
|
1634
|
-
+ '<li class="failures">failures
|
1702
|
+
+ '<li class="passes"><a href="#">passes:</a> <em>0</em></li>'
|
1703
|
+
+ '<li class="failures"><a href="#">failures:</a> <em>0</em></li>'
|
1635
1704
|
+ '<li class="duration">duration: <em>0</em>s</li>'
|
1636
1705
|
+ '</ul>';
|
1637
1706
|
|
@@ -1652,7 +1721,9 @@ function HTML(runner) {
|
|
1652
1721
|
, stat = fragment(statsTemplate)
|
1653
1722
|
, items = stat.getElementsByTagName('li')
|
1654
1723
|
, passes = items[1].getElementsByTagName('em')[0]
|
1724
|
+
, passesLink = items[1].getElementsByTagName('a')[0]
|
1655
1725
|
, failures = items[2].getElementsByTagName('em')[0]
|
1726
|
+
, failuresLink = items[2].getElementsByTagName('a')[0]
|
1656
1727
|
, duration = items[3].getElementsByTagName('em')[0]
|
1657
1728
|
, canvas = stat.getElementsByTagName('canvas')[0]
|
1658
1729
|
, report = fragment('<ul id="report"></ul>')
|
@@ -1667,6 +1738,18 @@ function HTML(runner) {
|
|
1667
1738
|
|
1668
1739
|
if (!root) return error('#mocha div missing, add it to your document');
|
1669
1740
|
|
1741
|
+
// pass toggle
|
1742
|
+
on(passesLink, 'click', function () {
|
1743
|
+
var className = /pass/.test(report.className) ? '' : ' pass';
|
1744
|
+
report.className = report.className.replace(/fail|pass/g, '') + className;
|
1745
|
+
});
|
1746
|
+
|
1747
|
+
// failure toggle
|
1748
|
+
on(failuresLink, 'click', function () {
|
1749
|
+
var className = /fail/.test(report.className) ? '' : ' fail';
|
1750
|
+
report.className = report.className.replace(/fail|pass/g, '') + className;
|
1751
|
+
});
|
1752
|
+
|
1670
1753
|
root.appendChild(stat);
|
1671
1754
|
root.appendChild(report);
|
1672
1755
|
|
@@ -1734,17 +1817,16 @@ function HTML(runner) {
|
|
1734
1817
|
}
|
1735
1818
|
|
1736
1819
|
// toggle code
|
1737
|
-
var h2 = el.getElementsByTagName('h2')[0];
|
1738
|
-
|
1739
|
-
on(h2, 'click', function(){
|
1740
|
-
pre.style.display = 'none' == pre.style.display
|
1741
|
-
? 'block'
|
1742
|
-
: 'none';
|
1743
|
-
});
|
1744
|
-
|
1745
|
-
// code
|
1746
1820
|
// TODO: defer
|
1747
1821
|
if (!test.pending) {
|
1822
|
+
var h2 = el.getElementsByTagName('h2')[0];
|
1823
|
+
|
1824
|
+
on(h2, 'click', function(){
|
1825
|
+
pre.style.display = 'none' == pre.style.display
|
1826
|
+
? 'inline-block'
|
1827
|
+
: 'none';
|
1828
|
+
});
|
1829
|
+
|
1748
1830
|
var pre = fragment('<pre><code>%e</code></pre>', utils.clean(test.fn.toString()));
|
1749
1831
|
el.appendChild(pre);
|
1750
1832
|
pre.style.display = 'none';
|
@@ -1804,6 +1886,7 @@ function on(el, event, fn) {
|
|
1804
1886
|
el.attachEvent('on' + event, fn);
|
1805
1887
|
}
|
1806
1888
|
}
|
1889
|
+
|
1807
1890
|
}); // module: reporters/html.js
|
1808
1891
|
|
1809
1892
|
require.register("reporters/index.js", function(module, exports, require){
|
@@ -2194,14 +2277,14 @@ function Landing(runner) {
|
|
2194
2277
|
}
|
2195
2278
|
|
2196
2279
|
// render landing strip
|
2197
|
-
stream.write('\
|
2280
|
+
stream.write('\u001b[4F\n\n');
|
2198
2281
|
stream.write(runway());
|
2199
2282
|
stream.write('\n ');
|
2200
2283
|
stream.write(color('runway', Array(col).join('⋅')));
|
2201
2284
|
stream.write(plane)
|
2202
2285
|
stream.write(color('runway', Array(width - col).join('⋅') + '\n'));
|
2203
2286
|
stream.write(runway());
|
2204
|
-
stream.write('\
|
2287
|
+
stream.write('\u001b[0m');
|
2205
2288
|
});
|
2206
2289
|
|
2207
2290
|
runner.on('end', function(){
|
@@ -2411,9 +2494,9 @@ function Min(runner) {
|
|
2411
2494
|
|
2412
2495
|
runner.on('start', function(){
|
2413
2496
|
// clear screen
|
2414
|
-
process.stdout.write('\
|
2497
|
+
process.stdout.write('\u001b[2J');
|
2415
2498
|
// set cursor position
|
2416
|
-
process.stdout.write('\
|
2499
|
+
process.stdout.write('\u001b[1;3H');
|
2417
2500
|
});
|
2418
2501
|
|
2419
2502
|
runner.on('end', this.epilogue.bind(this));
|
@@ -2518,7 +2601,7 @@ NyanCat.prototype.drawScoreboard = function(){
|
|
2518
2601
|
|
2519
2602
|
function draw(color, n) {
|
2520
2603
|
write(' ');
|
2521
|
-
write('\
|
2604
|
+
write('\u001b[' + color + 'm' + n + '\u001b[0m');
|
2522
2605
|
write('\n');
|
2523
2606
|
}
|
2524
2607
|
|
@@ -2557,7 +2640,7 @@ NyanCat.prototype.drawRainbow = function(){
|
|
2557
2640
|
var self = this;
|
2558
2641
|
|
2559
2642
|
this.trajectories.forEach(function(line, index) {
|
2560
|
-
write('\
|
2643
|
+
write('\u001b[' + self.scoreboardWidth + 'C');
|
2561
2644
|
write(line.join(''));
|
2562
2645
|
write('\n');
|
2563
2646
|
});
|
@@ -2577,7 +2660,7 @@ NyanCat.prototype.drawNyanCat = function(status) {
|
|
2577
2660
|
var startWidth = this.scoreboardWidth + this.trajectories[0].length;
|
2578
2661
|
|
2579
2662
|
[0, 1, 2, 3].forEach(function(index) {
|
2580
|
-
write('\
|
2663
|
+
write('\u001b[' + startWidth + 'C');
|
2581
2664
|
|
2582
2665
|
switch (index) {
|
2583
2666
|
case 0:
|
@@ -2625,7 +2708,7 @@ NyanCat.prototype.drawNyanCat = function(status) {
|
|
2625
2708
|
*/
|
2626
2709
|
|
2627
2710
|
NyanCat.prototype.cursorUp = function(n) {
|
2628
|
-
write('\
|
2711
|
+
write('\u001b[' + n + 'A');
|
2629
2712
|
};
|
2630
2713
|
|
2631
2714
|
/**
|
@@ -2636,7 +2719,7 @@ NyanCat.prototype.cursorUp = function(n) {
|
|
2636
2719
|
*/
|
2637
2720
|
|
2638
2721
|
NyanCat.prototype.cursorDown = function(n) {
|
2639
|
-
write('\
|
2722
|
+
write('\u001b[' + n + 'B');
|
2640
2723
|
};
|
2641
2724
|
|
2642
2725
|
/**
|
@@ -2672,7 +2755,7 @@ NyanCat.prototype.generateColors = function(){
|
|
2672
2755
|
NyanCat.prototype.rainbowify = function(str){
|
2673
2756
|
var color = this.rainbowColors[this.colorIndex % this.rainbowColors.length];
|
2674
2757
|
this.colorIndex += 1;
|
2675
|
-
return '\
|
2758
|
+
return '\u001b[38;5;' + color + 'm' + str + '\u001b[0m';
|
2676
2759
|
};
|
2677
2760
|
|
2678
2761
|
/**
|
@@ -2756,7 +2839,7 @@ function Progress(runner, options) {
|
|
2756
2839
|
, i = width - n;
|
2757
2840
|
|
2758
2841
|
cursor.CR();
|
2759
|
-
process.stdout.write('\
|
2842
|
+
process.stdout.write('\u001b[J');
|
2760
2843
|
process.stdout.write(color('progress', ' ' + options.open));
|
2761
2844
|
process.stdout.write(Array(n).join(options.complete));
|
2762
2845
|
process.stdout.write(Array(i).join(options.incomplete));
|
@@ -3053,7 +3136,11 @@ function XUnit(runner) {
|
|
3053
3136
|
, tests = []
|
3054
3137
|
, self = this;
|
3055
3138
|
|
3056
|
-
runner.on('
|
3139
|
+
runner.on('pass', function(test){
|
3140
|
+
tests.push(test);
|
3141
|
+
});
|
3142
|
+
|
3143
|
+
runner.on('fail', function(test){
|
3057
3144
|
tests.push(test);
|
3058
3145
|
});
|
3059
3146
|
|
@@ -3138,7 +3225,7 @@ require.register("runnable.js", function(module, exports, require){
|
|
3138
3225
|
*/
|
3139
3226
|
|
3140
3227
|
var EventEmitter = require('browser/events').EventEmitter
|
3141
|
-
, debug = require('browser/debug')('runnable');
|
3228
|
+
, debug = require('browser/debug')('mocha:runnable');
|
3142
3229
|
|
3143
3230
|
/**
|
3144
3231
|
* Save timer references to avoid Sinon interfering (see GH-237).
|
@@ -3334,7 +3421,7 @@ require.register("runner.js", function(module, exports, require){
|
|
3334
3421
|
*/
|
3335
3422
|
|
3336
3423
|
var EventEmitter = require('browser/events').EventEmitter
|
3337
|
-
, debug = require('browser/debug')('runner')
|
3424
|
+
, debug = require('browser/debug')('mocha:runner')
|
3338
3425
|
, Test = require('./test')
|
3339
3426
|
, utils = require('./utils')
|
3340
3427
|
, filter = utils.filter
|
@@ -3743,9 +3830,9 @@ Runner.prototype.runSuite = function(suite, fn){
|
|
3743
3830
|
*/
|
3744
3831
|
|
3745
3832
|
Runner.prototype.uncaught = function(err){
|
3746
|
-
debug('uncaught exception');
|
3833
|
+
debug('uncaught exception %s', err.message);
|
3747
3834
|
var runnable = this.currentRunnable;
|
3748
|
-
if ('failed' == runnable.state) return;
|
3835
|
+
if (!runnable || 'failed' == runnable.state) return;
|
3749
3836
|
runnable.clearTimeout();
|
3750
3837
|
err.uncaught = true;
|
3751
3838
|
this.fail(runnable, err);
|
@@ -3827,7 +3914,7 @@ require.register("suite.js", function(module, exports, require){
|
|
3827
3914
|
*/
|
3828
3915
|
|
3829
3916
|
var EventEmitter = require('browser/events').EventEmitter
|
3830
|
-
, debug = require('browser/debug')('suite')
|
3917
|
+
, debug = require('browser/debug')('mocha:suite')
|
3831
3918
|
, utils = require('./utils')
|
3832
3919
|
, Hook = require('./hook');
|
3833
3920
|
|
@@ -3853,6 +3940,7 @@ exports = module.exports = Suite;
|
|
3853
3940
|
exports.create = function(parent, title){
|
3854
3941
|
var suite = new Suite(title, parent.ctx);
|
3855
3942
|
suite.parent = parent;
|
3943
|
+
if (parent.pending) suite.pending = true;
|
3856
3944
|
title = suite.fullTitle();
|
3857
3945
|
parent.addSuite(suite);
|
3858
3946
|
return suite;
|
@@ -3872,6 +3960,7 @@ function Suite(title, ctx) {
|
|
3872
3960
|
this.ctx = ctx;
|
3873
3961
|
this.suites = [];
|
3874
3962
|
this.tests = [];
|
3963
|
+
this.pending = false;
|
3875
3964
|
this._beforeEach = [];
|
3876
3965
|
this._beforeAll = [];
|
3877
3966
|
this._afterEach = [];
|
@@ -3945,6 +4034,7 @@ Suite.prototype.bail = function(bail){
|
|
3945
4034
|
*/
|
3946
4035
|
|
3947
4036
|
Suite.prototype.beforeAll = function(fn){
|
4037
|
+
if (this.pending) return this;
|
3948
4038
|
var hook = new Hook('"before all" hook', fn);
|
3949
4039
|
hook.parent = this;
|
3950
4040
|
hook.timeout(this.timeout());
|
@@ -3963,6 +4053,7 @@ Suite.prototype.beforeAll = function(fn){
|
|
3963
4053
|
*/
|
3964
4054
|
|
3965
4055
|
Suite.prototype.afterAll = function(fn){
|
4056
|
+
if (this.pending) return this;
|
3966
4057
|
var hook = new Hook('"after all" hook', fn);
|
3967
4058
|
hook.parent = this;
|
3968
4059
|
hook.timeout(this.timeout());
|
@@ -3981,6 +4072,7 @@ Suite.prototype.afterAll = function(fn){
|
|
3981
4072
|
*/
|
3982
4073
|
|
3983
4074
|
Suite.prototype.beforeEach = function(fn){
|
4075
|
+
if (this.pending) return this;
|
3984
4076
|
var hook = new Hook('"before each" hook', fn);
|
3985
4077
|
hook.parent = this;
|
3986
4078
|
hook.timeout(this.timeout());
|
@@ -3999,6 +4091,7 @@ Suite.prototype.beforeEach = function(fn){
|
|
3999
4091
|
*/
|
4000
4092
|
|
4001
4093
|
Suite.prototype.afterEach = function(fn){
|
4094
|
+
if (this.pending) return this;
|
4002
4095
|
var hook = new Hook('"after each" hook', fn);
|
4003
4096
|
hook.parent = this;
|
4004
4097
|
hook.timeout(this.timeout());
|
@@ -4138,7 +4231,7 @@ require.register("utils.js", function(module, exports, require){
|
|
4138
4231
|
var fs = require('browser/fs')
|
4139
4232
|
, path = require('browser/path')
|
4140
4233
|
, join = path.join
|
4141
|
-
, debug = require('browser/debug')('watch');
|
4234
|
+
, debug = require('browser/debug')('mocha:watch');
|
4142
4235
|
|
4143
4236
|
/**
|
4144
4237
|
* Ignored directories.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "mocha",
|
3
|
-
"version": "1.3.
|
3
|
+
"version": "1.3.2",
|
4
4
|
"description": "simple, flexible, fun test framework",
|
5
5
|
"keywords": [
|
6
6
|
"test",
|
@@ -25,7 +25,7 @@
|
|
25
25
|
"node": ">= 0.4.x"
|
26
26
|
},
|
27
27
|
"scripts": {
|
28
|
-
"test": "make test"
|
28
|
+
"test": "make test-all"
|
29
29
|
},
|
30
30
|
"dependencies": {
|
31
31
|
"commander": "0.6.1",
|
@@ -38,11 +38,14 @@
|
|
38
38
|
"should": "*",
|
39
39
|
"coffee-script": "1.2"
|
40
40
|
},
|
41
|
-
"_id": "mocha@1.3.
|
41
|
+
"_id": "mocha@1.3.2",
|
42
42
|
"optionalDependencies": {},
|
43
43
|
"_engineSupported": true,
|
44
44
|
"_npmVersion": "1.1.21",
|
45
45
|
"_nodeVersion": "v0.8.1",
|
46
46
|
"_defaultsLoaded": true,
|
47
|
+
"dist": {
|
48
|
+
"shasum": "ab97b4f1e5942b9fe4d4436b8bd9eeda0eb01e13"
|
49
|
+
},
|
47
50
|
"_from": "mocha@*"
|
48
51
|
}
|
@@ -1,10 +1,8 @@
|
|
1
1
|
|
2
2
|
describe('foo', function(){
|
3
3
|
it('should bar', function(){
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
it('should baz', function(){
|
8
|
-
asdf
|
4
|
+
var obj = { name: 'tobi', age: 2, species: 'ferret', friends: [] };
|
5
|
+
var other = { name: 'tobi', age: 3, species: 'ferret', friends: ['loki', 'jane'] };
|
6
|
+
obj.should.eql(other);
|
9
7
|
})
|
10
8
|
})
|
@@ -1,4 +1,15 @@
|
|
1
1
|
|
2
|
+
1.1.0 / 2012-07-30
|
3
|
+
==================
|
4
|
+
|
5
|
+
* add enclosing of failure message functions. Closes #81
|
6
|
+
* add mocha .actual / .expected string support for all assertion values
|
7
|
+
|
8
|
+
0.7.0 / 2012-07-17
|
9
|
+
==================
|
10
|
+
|
11
|
+
* add `.throw(Constructor)` support [snakamura]
|
12
|
+
|
2
13
|
0.6.3 / 2012-04-26
|
3
14
|
==================
|
4
15
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
_should_ is an expressive, readable, test framework agnostic, assertion library for [node](http://nodejs.org).
|
2
|
-
|
2
|
+
|
3
3
|
It extends the Object prototype with a single non-enumerable getter that allows you to express how that object should behave.
|
4
4
|
|
5
5
|
_should_ literally extends node's _assert_ module, in fact, it is node's assert module, for example `should.equal(str, 'foo')` will work, just as `assert.equal(str, 'foo')` would, and `should.AssertionError` **is** `assert.AssertionError`, meaning any test framework supporting this constructor will function properly with _should_.
|
@@ -13,7 +13,7 @@ _should_ literally extends node's _assert_ module, in fact, it is node's assert
|
|
13
13
|
|
14
14
|
user.should.have.property('name', 'tj');
|
15
15
|
user.should.have.property('pets').with.lengthOf(4);
|
16
|
-
|
16
|
+
|
17
17
|
someAsyncTask(foo, function(err, result){
|
18
18
|
should.not.exist(err);
|
19
19
|
should.exist(result);
|
@@ -161,12 +161,12 @@ Assert __typeof__:
|
|
161
161
|
user.should.be.a('object')
|
162
162
|
'test'.should.be.a('string')
|
163
163
|
|
164
|
-
## instanceof
|
164
|
+
## instanceof and instanceOf
|
165
165
|
|
166
|
-
Assert __instanceof__:
|
166
|
+
Assert __instanceof__ or __instanceOf__:
|
167
167
|
|
168
168
|
user.should.be.an.instanceof(User)
|
169
|
-
[].should.be.an.
|
169
|
+
[].should.be.an.instanceOf(Array)
|
170
170
|
|
171
171
|
## above
|
172
172
|
|
@@ -229,13 +229,13 @@ Assert own property (on the immediate object):
|
|
229
229
|
## json
|
230
230
|
|
231
231
|
Assert that Content-Type is "application/json; charset=utf-8"
|
232
|
-
|
232
|
+
|
233
233
|
res.should.be.json
|
234
234
|
|
235
235
|
## html
|
236
236
|
|
237
237
|
Assert that Content-Type is "text/html; charset=utf-8"
|
238
|
-
|
238
|
+
|
239
239
|
res.should.be.html
|
240
240
|
|
241
241
|
## include(obj)
|
@@ -288,7 +288,7 @@ Assert an exception is not thrown:
|
|
288
288
|
|
289
289
|
```js
|
290
290
|
(function(){
|
291
|
-
|
291
|
+
|
292
292
|
}).should.not.throw();
|
293
293
|
```
|
294
294
|
Assert exepection message matches string:
|
@@ -307,6 +307,18 @@ Assert exepection message matches regexp:
|
|
307
307
|
}).should.throw(/^fail/);
|
308
308
|
```
|
309
309
|
|
310
|
+
## throwError()
|
311
|
+
|
312
|
+
An alias of `throw`, its purpose is to be an option for those who run
|
313
|
+
[jshint](https://github.com/jshint/node-jshint/) in strict mode.
|
314
|
+
|
315
|
+
```js
|
316
|
+
(function(){
|
317
|
+
throw new Error('failed to baz');
|
318
|
+
}).should.throwError(/^fail.*/);
|
319
|
+
```
|
320
|
+
|
321
|
+
|
310
322
|
## keys
|
311
323
|
|
312
324
|
Assert own object keys, which must match _exactly_,
|
@@ -334,7 +346,7 @@ For example you can use should with the [Expresso TDD Framework](http://github.c
|
|
334
346
|
|
335
347
|
var lib = require('mylib')
|
336
348
|
, should = require('should');
|
337
|
-
|
349
|
+
|
338
350
|
module.exports = {
|
339
351
|
'test .version': function(){
|
340
352
|
lib.version.should.match(/^\d+\.\d+\.\d+$/);
|
@@ -351,7 +363,7 @@ To run the tests for _should_ simply update your git submodules and run:
|
|
351
363
|
|
352
364
|
Yes, yes it does, with a single getter _should_, and no it won't break your code, because it does this **properly** with a non-enumerable property.
|
353
365
|
|
354
|
-
## License
|
366
|
+
## License
|
355
367
|
|
356
368
|
(The MIT License)
|
357
369
|
|