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