janitor_rails 0.0.7 → 0.0.8
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/vendor/assets/javascripts/janitor.js +124 -83
- metadata +2 -2
@@ -53,20 +53,24 @@ window.Janitor.Stitch = {};
|
|
53
53
|
return this.require.define;
|
54
54
|
}).call(this)({"assertions": function(exports, require, module) {
|
55
55
|
module.exports = {
|
56
|
-
|
56
|
+
equal: function(expected, actual) {
|
57
57
|
var success;
|
58
58
|
success = expected === actual;
|
59
|
-
return
|
59
|
+
return {
|
60
|
+
success: success,
|
60
61
|
expected: expected,
|
61
62
|
actual: actual
|
62
|
-
}
|
63
|
+
};
|
63
64
|
},
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
65
|
+
truthy: function(value) {
|
66
|
+
var success;
|
67
|
+
success = !!value;
|
68
|
+
return {
|
69
|
+
success: success,
|
70
|
+
value: value
|
71
|
+
};
|
68
72
|
},
|
69
|
-
|
73
|
+
throws: function(callback, check) {
|
70
74
|
var caught, error, success;
|
71
75
|
caught = false;
|
72
76
|
error = null;
|
@@ -77,61 +81,41 @@ window.Janitor.Stitch = {};
|
|
77
81
|
error = thrownError;
|
78
82
|
}
|
79
83
|
success = caught && (!check || check(error));
|
80
|
-
return
|
84
|
+
return {
|
85
|
+
success: success,
|
81
86
|
callback: callback,
|
82
87
|
error: error
|
83
|
-
}
|
88
|
+
};
|
84
89
|
},
|
85
|
-
|
86
|
-
var
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
callback();
|
91
|
-
} catch (thrownError) {
|
92
|
-
caught = true;
|
93
|
-
error = thrownError;
|
94
|
-
}
|
95
|
-
success = !caught;
|
96
|
-
return this.storeAssert('refuteThrow', success, {
|
97
|
-
callback: callback,
|
98
|
-
error: error
|
99
|
-
});
|
100
|
-
},
|
101
|
-
assertContains: function(container, value) {
|
102
|
-
var result;
|
103
|
-
result = container.indexOf(value) !== -1;
|
104
|
-
return this.storeAssert('contains', result, {
|
90
|
+
contains: function(container, value) {
|
91
|
+
var success;
|
92
|
+
success = container.indexOf(value) !== -1;
|
93
|
+
return {
|
94
|
+
success: success,
|
105
95
|
container: container,
|
106
96
|
value: value
|
107
|
-
}
|
97
|
+
};
|
108
98
|
},
|
109
|
-
|
99
|
+
all: function(enumerable, callback) {
|
110
100
|
var success;
|
111
101
|
success = true;
|
112
102
|
enumerable.forEach(function(item) {
|
113
103
|
if (success) return success = callback(item);
|
114
104
|
});
|
115
|
-
return
|
105
|
+
return {
|
106
|
+
success: success,
|
116
107
|
callback: callback
|
117
|
-
}
|
108
|
+
};
|
118
109
|
},
|
119
|
-
|
110
|
+
inDelta: function(expected, actual, delta) {
|
120
111
|
var success;
|
121
112
|
success = expected - delta < actual && expected + delta > actual;
|
122
|
-
return
|
113
|
+
return {
|
114
|
+
success: success,
|
123
115
|
expected: expected,
|
124
116
|
actual: actual,
|
125
117
|
delta: delta
|
126
|
-
}
|
127
|
-
},
|
128
|
-
refuteEqual: function(expected, actual) {
|
129
|
-
var success;
|
130
|
-
success = expected !== actual;
|
131
|
-
return this.storeAssert('refuteEqual', success, {
|
132
|
-
expected: expected,
|
133
|
-
actual: actual
|
134
|
-
});
|
118
|
+
};
|
135
119
|
}
|
136
120
|
};
|
137
121
|
}, "browser_presenter": function(exports, require, module) {(function() {
|
@@ -250,39 +234,48 @@ window.Janitor.Stitch = {};
|
|
250
234
|
}
|
251
235
|
};
|
252
236
|
}, "failed_assertion_message": function(exports, require, module) {(function() {
|
253
|
-
var FailedAssertionMessage;
|
237
|
+
var FailedAssertionMessage, Utils;
|
238
|
+
|
239
|
+
Utils = require('./utils');
|
254
240
|
|
255
241
|
module.exports = FailedAssertionMessage = (function() {
|
256
242
|
|
257
243
|
function FailedAssertionMessage(failedAssert) {
|
258
244
|
this.type = failedAssert.type;
|
259
|
-
this.
|
245
|
+
this.result = failedAssert.result;
|
246
|
+
this.refutation = failedAssert.refutation;
|
260
247
|
}
|
261
248
|
|
262
|
-
FailedAssertionMessage.prototype.
|
263
|
-
return "" + this.
|
249
|
+
FailedAssertionMessage.prototype.assertEqual = function() {
|
250
|
+
return "" + this.result.actual + " does not equal " + this.result.expected;
|
264
251
|
};
|
265
252
|
|
266
|
-
FailedAssertionMessage.prototype
|
267
|
-
return "" + this.
|
253
|
+
FailedAssertionMessage.prototype.assertInDelta = function() {
|
254
|
+
return "" + this.result.actual + " is not within " + this.result.expected + "±" + this.result.delta;
|
268
255
|
};
|
269
256
|
|
270
|
-
FailedAssertionMessage.prototype.
|
271
|
-
return "" + this.
|
257
|
+
FailedAssertionMessage.prototype.refuteEqual = function() {
|
258
|
+
return "" + this.result.actual + " equals " + this.result.expected;
|
272
259
|
};
|
273
260
|
|
274
|
-
FailedAssertionMessage.prototype.
|
275
|
-
return "" + this.
|
261
|
+
FailedAssertionMessage.prototype.assertTruthy = function() {
|
262
|
+
return "" + this.result.value + " is not true";
|
276
263
|
};
|
277
264
|
|
278
265
|
FailedAssertionMessage.prototype.toString = function() {
|
279
|
-
if (this[this.
|
280
|
-
return this[this.
|
266
|
+
if (this[this.methodName()]) {
|
267
|
+
return this[this.methodName()]();
|
281
268
|
} else {
|
282
269
|
return "Unknown assert fail: " + this.type;
|
283
270
|
}
|
284
271
|
};
|
285
272
|
|
273
|
+
FailedAssertionMessage.prototype.methodName = function() {
|
274
|
+
var prefix;
|
275
|
+
prefix = this.refutation ? 'refute' : 'assert';
|
276
|
+
return prefix + Utils.firstToUpper(this.type);
|
277
|
+
};
|
278
|
+
|
286
279
|
return FailedAssertionMessage;
|
287
280
|
|
288
281
|
})();
|
@@ -406,7 +399,7 @@ window.Janitor.Stitch = {};
|
|
406
399
|
|
407
400
|
_Class.prototype.run = function() {
|
408
401
|
var Test, _i, _len, _ref, _results;
|
409
|
-
new this.presenterClass(this.
|
402
|
+
new this.presenterClass(this.activeTests(), this.options);
|
410
403
|
_ref = this.tests();
|
411
404
|
_results = [];
|
412
405
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
@@ -416,23 +409,34 @@ window.Janitor.Stitch = {};
|
|
416
409
|
return _results;
|
417
410
|
};
|
418
411
|
|
412
|
+
_Class.prototype.activeTests = function() {
|
413
|
+
var soloTest, tests;
|
414
|
+
tests = this.tests();
|
415
|
+
soloTest = null;
|
416
|
+
tests.forEach(function(test) {
|
417
|
+
if (test.solo) return soloTest = test;
|
418
|
+
});
|
419
|
+
return soloTest || tests;
|
420
|
+
};
|
421
|
+
|
419
422
|
return _Class;
|
420
423
|
|
421
424
|
})();
|
422
425
|
}, "test_case": function(exports, require, module) {(function() {
|
423
|
-
var
|
426
|
+
var Assertions, EventEmitter, TestCase, Utils, key, _i, _len, _ref;
|
427
|
+
var __slice = Array.prototype.slice;
|
424
428
|
|
425
|
-
|
429
|
+
Assertions = require('./assertions');
|
426
430
|
|
427
431
|
EventEmitter = require('./event_emitter');
|
428
432
|
|
429
433
|
Utils = require('./utils');
|
430
434
|
|
431
|
-
|
435
|
+
TestCase = (function() {
|
432
436
|
|
433
|
-
|
437
|
+
TestCase.runs = [];
|
434
438
|
|
435
|
-
|
439
|
+
TestCase.runAll = function() {
|
436
440
|
var methodName, _i, _len, _ref, _results;
|
437
441
|
this.completed = 0;
|
438
442
|
if (this.testMethodNames().length > 0) {
|
@@ -448,7 +452,7 @@ window.Janitor.Stitch = {};
|
|
448
452
|
}
|
449
453
|
};
|
450
454
|
|
451
|
-
|
455
|
+
TestCase.run = function(methodName) {
|
452
456
|
var run;
|
453
457
|
var _this = this;
|
454
458
|
run = new this(methodName);
|
@@ -459,17 +463,17 @@ window.Janitor.Stitch = {};
|
|
459
463
|
return this.runs.push(run);
|
460
464
|
};
|
461
465
|
|
462
|
-
|
466
|
+
TestCase.runCompleted = function(run) {
|
463
467
|
this.trigger('runCompleted', run);
|
464
468
|
this.completed += 1;
|
465
469
|
if (this.completed === this.testMethodNames().length) return this.complete();
|
466
470
|
};
|
467
471
|
|
468
|
-
|
472
|
+
TestCase.complete = function() {
|
469
473
|
return this.trigger('completed');
|
470
474
|
};
|
471
475
|
|
472
|
-
|
476
|
+
TestCase.testMethodNames = function() {
|
473
477
|
var methodName, _i, _len, _ref, _results;
|
474
478
|
_ref = Object.keys(this.prototype);
|
475
479
|
_results = [];
|
@@ -482,59 +486,91 @@ window.Janitor.Stitch = {};
|
|
482
486
|
return _results;
|
483
487
|
};
|
484
488
|
|
485
|
-
|
489
|
+
TestCase.methodNameIsAsync = function(methodName) {
|
486
490
|
return methodName.substr(0, 11) === 'async test ';
|
487
491
|
};
|
488
492
|
|
489
|
-
function
|
493
|
+
TestCase.addAssertionMethods = function(type) {
|
494
|
+
this.addAssertionMethod(type);
|
495
|
+
return this.addAssertionMethod(type, true);
|
496
|
+
};
|
497
|
+
|
498
|
+
TestCase.addAssertionMethod = function(type, refutation) {
|
499
|
+
var name, prefix, suffix;
|
500
|
+
prefix = refutation ? 'refute' : 'assert';
|
501
|
+
suffix = type === 'truthy' ? '' : Utils.firstToUpper(type);
|
502
|
+
name = prefix + suffix;
|
503
|
+
return this.prototype[name] = function() {
|
504
|
+
var args;
|
505
|
+
args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
|
506
|
+
return this.runAssertion(type, {
|
507
|
+
args: args,
|
508
|
+
refutation: refutation
|
509
|
+
});
|
510
|
+
};
|
511
|
+
};
|
512
|
+
|
513
|
+
function TestCase(methodName) {
|
490
514
|
this.methodName = methodName;
|
491
515
|
this.succeededAssertsCount = 0;
|
492
516
|
this.failedAsserts = [];
|
493
517
|
}
|
494
518
|
|
495
|
-
|
519
|
+
TestCase.prototype.run = function() {
|
496
520
|
if (this.setup) this.setup();
|
497
521
|
this[this.methodName]();
|
498
522
|
if (this.teardown) this.teardown();
|
499
|
-
if (!this.
|
523
|
+
if (!this.isAsync()) return this.complete();
|
500
524
|
};
|
501
525
|
|
502
|
-
|
526
|
+
TestCase.prototype.isAsync = function() {
|
503
527
|
return this.constructor.methodNameIsAsync(this.methodName);
|
504
528
|
};
|
505
529
|
|
506
|
-
|
530
|
+
TestCase.prototype.complete = function() {
|
507
531
|
this.completed = true;
|
508
532
|
return this.trigger('completed');
|
509
533
|
};
|
510
534
|
|
511
|
-
|
512
|
-
if (
|
513
|
-
if (succeeded) {
|
535
|
+
TestCase.prototype.storeAssert = function(type, refutation, result) {
|
536
|
+
if (result.success) {
|
514
537
|
return this.succeededAssertsCount += 1;
|
515
538
|
} else {
|
516
539
|
return this.failedAsserts.push({
|
517
540
|
type: type,
|
518
|
-
|
519
|
-
|
541
|
+
refutation: refutation,
|
542
|
+
result: result,
|
520
543
|
run: this
|
521
544
|
});
|
522
545
|
}
|
523
546
|
};
|
524
547
|
|
525
|
-
|
548
|
+
TestCase.prototype.succeeded = function() {
|
526
549
|
return this.completed && this.failedAsserts === 0;
|
527
550
|
};
|
528
551
|
|
529
|
-
|
552
|
+
TestCase.prototype.runAssertion = function(type, options) {
|
553
|
+
var result;
|
554
|
+
result = Assertions[type].apply(null, options.args);
|
555
|
+
if (options.refutation) result.success = !result.succes;
|
556
|
+
return this.storeAssert(type, options.refutation, result);
|
557
|
+
};
|
558
|
+
|
559
|
+
return TestCase;
|
530
560
|
|
531
561
|
})();
|
532
562
|
|
533
|
-
|
563
|
+
_ref = Object.keys(Assertions);
|
564
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
565
|
+
key = _ref[_i];
|
566
|
+
TestCase.addAssertionMethods(key);
|
567
|
+
}
|
568
|
+
|
569
|
+
Utils.extend(TestCase.prototype, EventEmitter);
|
534
570
|
|
535
|
-
Utils.extend(
|
571
|
+
Utils.extend(TestCase, EventEmitter);
|
536
572
|
|
537
|
-
|
573
|
+
module.exports = TestCase;
|
538
574
|
|
539
575
|
}).call(this);
|
540
576
|
}, "utils": function(exports, require, module) {
|
@@ -547,6 +583,11 @@ window.Janitor.Stitch = {};
|
|
547
583
|
_results.push(obj1[key] = value);
|
548
584
|
}
|
549
585
|
return _results;
|
586
|
+
},
|
587
|
+
firstToUpper: function(text) {
|
588
|
+
return text.replace(/.{1}/, function(v) {
|
589
|
+
return v.toUpperCase();
|
590
|
+
});
|
550
591
|
}
|
551
592
|
};
|
552
593
|
}});
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: janitor_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
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: 2012-04-
|
12
|
+
date: 2012-04-26 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: janitor_rails lets you easily test Javascript code with Janitor.
|
15
15
|
email: rasmusrnielsen@gmail.com
|