This repository has been archived by the owner on Mar 23, 2019. It is now read-only.
/
failures.synct.js
79 lines (55 loc) · 2.51 KB
/
failures.synct.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
var failure = require('../failure')
, render = require('render')
, assert = require('assert')
var stderr = console.error
/*
throw failures.fail()
.explain('okay: {actual} != {expected}', {actual: false, expected: true}, '')
.explain('property: ({actual:JSON}){expected:path} did not pass {assertion}'
, { actual:[false]
, expected: [ 0 ]
, assertion: 'okay()'
}, 'here is a bit more explaination')
*/
exports['simple - toString'] = function () {
var f = failure.fail()
assert.equal(typeof f.explain, 'function')
assert.deepEqual(f.explaination, [])
f.explain('template: {actual} opperator {expected}', {actual: 1, expected: 2}, 'message here')
assert.equal(f.toString(), 'template: 1 opperator 2\n message here')
assert.ok(~f.stack.indexOf('template: 1 opperator 2'))
}
exports ['pass it another failure'] = function () {
var f = failure.fail()
, _f = failure.fail(f)
assert.equal(_f, f)
}
exports ['pass it another error'] = function () {
var f = new Error ('ERROR MESSAGE')
, _f = failure.fail(f)
assert.equal(typeof _f.explain, 'function')
assert.ok(~f.stack.indexOf('ERROR MESSAGE'))
}
exports ['pass it a primitive'] = function () {
var str = 'hello there'
var f = failure.fail(str)
assert.equal(typeof f.explain, 'function')
assert.ok(~f.stack.indexOf('hello there'))
}
exports [ 'integrate AssertionErrors (keep messages)'] = function () {
var err = (function () { try { assert.ok(false, 'message is here') } catch (err) {return err} } )()
var f = failure.fail(err)
assert.equal(typeof f.explain, 'function')
assert.ok(~f.stack.indexOf('false must == true'), 'should still have any preexisting error message')
assert.ok(~f.stack.indexOf('message is here'), 'should still have any preexisting error message')
}
exports [ 'integrate AssertionErrors add second explaination'] = function () {
var err = (function () { try { assert.ok(false, 'message is here') } catch (err) {return err} } )()
var f = failure.fail(err).explain('adding another message!', {}, 'more message')
console.error(f.stack)
assert.equal(typeof f.explain, 'function')
assert.ok(~f.stack.indexOf('false must == true'), 'should still have any preexisting error message')
assert.ok(~f.stack.indexOf('message is here'), 'should still have any preexisting error message')
assert.ok(~f.stack.indexOf('adding another message!'), 'should have 2nd message: "adding another message!"')
assert.ok(~f.stack.indexOf('more message'), 'should have 2nd message: "more message"')
}