konacha-chai-matchers 0.2.0 → 0.3.0
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.
- checksums.yaml +4 -4
- data/.gitmodules +15 -0
- data/.ruby-version +1 -0
- data/VERSIONS +9 -4
- data/VERSIONS.lock +2 -1
- data/lib/konacha-chai-matchers/collector.rb +16 -2
- data/lib/konacha-chai-matchers/version.rb +1 -1
- data/vendor/assets/javascripts/chai-as-promised.js +4 -4
- data/vendor/assets/javascripts/chai-change.js +200 -0
- data/vendor/assets/javascripts/chai-datetime.js +170 -0
- data/vendor/assets/javascripts/chai-jq.js +524 -0
- data/vendor/assets/javascripts/chai-jquery.js +21 -14
- data/vendor/assets/javascripts/chai-js-factories.js +26 -0
- data/vendor/assets/javascripts/chai-json-schema.js +183 -0
- data/vendor/assets/javascripts/js-factories.js +4 -4
- data/vendor/assets/javascripts/memo-is.js +1 -1
- data/vendor/assets/javascripts/sinon.js +986 -381
- metadata +13 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6b60b89f98ae533e719ffcab08c0b3e87b8799e
|
4
|
+
data.tar.gz: 191e69e079fa781a2e451fae095d89336f88d26b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5ecfef8e457cdbe3ee1fca5c66d222284f91c25ef913261f3c3f9931d1db9121b766f4009b77e042676b779824fee78163d2aae93596498e0668079ac2629a99
|
7
|
+
data.tar.gz: 8de203d47ce991198b08732835a37176d46ee9ff713b98956186dfb4ee731d252fbb441ffe83710a442387c2d205e00d8b974fd5533f27ad5a6f826254fa78ad
|
data/.gitmodules
CHANGED
@@ -46,3 +46,18 @@
|
|
46
46
|
[submodule "memo-is"]
|
47
47
|
path = memo-is
|
48
48
|
url = https://github.com/d11wtq/node-memo-is.git
|
49
|
+
[submodule "chai-jq"]
|
50
|
+
path = chai-jq
|
51
|
+
url = https://github.com/FormidableLabs/chai-jq.git
|
52
|
+
[submodule "chai-js-factories"]
|
53
|
+
path = chai-js-factories
|
54
|
+
url = https://github.com/solatis/chai-js-factories.git
|
55
|
+
[submodule "chai-json-schema"]
|
56
|
+
path = chai-json-schema
|
57
|
+
url = https://github.com/Bartvds/chai-json-schema.git
|
58
|
+
[submodule "chai-datetime"]
|
59
|
+
path = chai-datetime
|
60
|
+
url = https://github.com/gaslight/chai-datetime.git
|
61
|
+
[submodule "chai-change"]
|
62
|
+
path = chai-change
|
63
|
+
url = https://github.com/timruffles/chai-change.git
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.1.1
|
data/VERSIONS
CHANGED
@@ -1,16 +1,21 @@
|
|
1
1
|
chai-spies: 0.5.1
|
2
2
|
sinon-chai: 2.5.0
|
3
|
-
chai-as-promised: 4.1.
|
4
|
-
chai-jquery: 1.2.
|
3
|
+
chai-as-promised: 4.1.1
|
4
|
+
chai-jquery: 1.2.3
|
5
5
|
chai-timers: 0.2.0
|
6
6
|
chai-stats: 0.3.0
|
7
7
|
chai-null: 0.1.0
|
8
8
|
chai-factories: 0.1.0
|
9
9
|
chai-changes: 1.3.4
|
10
10
|
chai-backbone: 0.9.2
|
11
|
-
js-factories: 1.
|
11
|
+
js-factories: 1.1.1
|
12
12
|
mocha-as-promised: 2.0.0
|
13
13
|
chai-things: 0.2.0
|
14
14
|
chai-fuzzy: 1.4.0
|
15
|
-
sinon: 1.
|
15
|
+
sinon: 1.10.3
|
16
16
|
memo-is: 0.0.2
|
17
|
+
chai-jq: 0.0.7
|
18
|
+
chai-js-factories: 0.1.3
|
19
|
+
chai-json-schema: 1.1.0
|
20
|
+
chai-datetime: 1.3.0
|
21
|
+
chai-change: 1.0.0
|
data/VERSIONS.lock
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
|
1
|
+
memo-is: origin/master
|
2
|
+
chai-jquery: origin/master
|
@@ -30,11 +30,25 @@ module Konacha
|
|
30
30
|
@libs ||= urls.each_with_index.map do |url, i|
|
31
31
|
name = paths[i]
|
32
32
|
`cd ./#{name} && git fetch && cd ..`
|
33
|
-
|
34
|
-
|
33
|
+
`cd ./#{name} && git fetch --tags && cd ..`
|
34
|
+
tags = `cd ./#{name} && git tag && cd ..`.split
|
35
|
+
|
36
|
+
ordered_tags = tags.sort do |astr, bstr|
|
37
|
+
a = astr.scan(/\d+/).map(&:to_i)
|
38
|
+
b = bstr.scan(/\d+/).map(&:to_i)
|
39
|
+
a.each_with_index do |e, c|
|
40
|
+
next if e == b[c]
|
41
|
+
break e <=> b[c]
|
42
|
+
end
|
43
|
+
end
|
44
|
+
latest_tag = ordered_tags.last
|
35
45
|
|
46
|
+
library_tag = latest_tag
|
47
|
+
library_tag = locked_versions[name] if locked_versions.key? name
|
36
48
|
latest_commit = `cd ./#{name} && git rev-parse #{library_tag || 'HEAD'} && cd ..`.split.first
|
37
49
|
|
50
|
+
$stdout.puts "*** #{name} tag: #{latest_tag.inspect}, using: #{library_tag.inspect} commit: #{latest_commit}"
|
51
|
+
|
38
52
|
Library.new url: url, name: name, tag: library_tag, commit: latest_commit
|
39
53
|
end
|
40
54
|
end
|
@@ -330,12 +330,12 @@
|
|
330
330
|
return toTestAgainst !== undefined ? assertion.to.be.rejectedWith(toTestAgainst) : assertion.to.be.rejected;
|
331
331
|
};
|
332
332
|
|
333
|
-
assert.becomes = function (promise, value) {
|
334
|
-
return assert.eventually.deepEqual(promise, value);
|
333
|
+
assert.becomes = function (promise, value, message) {
|
334
|
+
return assert.eventually.deepEqual(promise, value, message);
|
335
335
|
};
|
336
336
|
|
337
|
-
assert.doesNotBecome = function (promise, value) {
|
338
|
-
return assert.eventually.notDeepEqual(promise, value);
|
337
|
+
assert.doesNotBecome = function (promise, value, message) {
|
338
|
+
return assert.eventually.notDeepEqual(promise, value, message);
|
339
339
|
};
|
340
340
|
|
341
341
|
assert.eventually = {};
|
@@ -0,0 +1,200 @@
|
|
1
|
+
(function() {
|
2
|
+
|
3
|
+
function plugin(chai,util) {
|
4
|
+
|
5
|
+
var Assertion = chai.Assertion;
|
6
|
+
var flag = util.flag;
|
7
|
+
|
8
|
+
chai.Assertion.addMethod('change',assertChange);
|
9
|
+
chai.Assertion.addMethod('changes',assertChange);
|
10
|
+
chai.assert.change = assertInterfaceChange;
|
11
|
+
chai.assert.noChange = assertInterfaceNoChange;
|
12
|
+
|
13
|
+
/**
|
14
|
+
* ### .change(getValue)
|
15
|
+
*
|
16
|
+
* Asserts that the value returned by `getValue`
|
17
|
+
* changes after the function has run:
|
18
|
+
*
|
19
|
+
* var x = 0;
|
20
|
+
* expect(function() { x += 1; }).to.change(function() { return x });
|
21
|
+
*
|
22
|
+
* expect(function() {}).not.to.change(function() { return x });
|
23
|
+
*
|
24
|
+
* You can pass options to be specific about the changes expected. Use the `from`
|
25
|
+
* key to enforce a starting value, a `to` key for and ending value, and a
|
26
|
+
* `by` key to enforce a numeric change.
|
27
|
+
*
|
28
|
+
* expect(function() { x += 1 }).to.change(function() { return x },{by: 1});
|
29
|
+
* expect(function() { x += 1 }).to.change(function() { return x },{from: x});
|
30
|
+
* expect(function() { x += 1 }).to.change(function() { return x },{from: x, to: x + 1});
|
31
|
+
* expect(function() { x += 1 }).to.change(function() { return x },{to: x + 1});
|
32
|
+
*
|
33
|
+
* @name change
|
34
|
+
* @param {Function} changer
|
35
|
+
* @param {Function} getValue
|
36
|
+
* @param {Object} options _optional_
|
37
|
+
* @api public
|
38
|
+
*/
|
39
|
+
function assertChange(changeWatcher, changeSpec, msg) {
|
40
|
+
if(msg) flag(this, 'message', msg);
|
41
|
+
var body = flag(this, 'object');
|
42
|
+
var negated = flag(this,'negate');
|
43
|
+
|
44
|
+
var chai = this;
|
45
|
+
var FAIL = {};
|
46
|
+
|
47
|
+
changeSpec = changeSpec || {}
|
48
|
+
|
49
|
+
withFail(function() {
|
50
|
+
if(changeSpec) new Assertion(changeSpec).is.a('object');
|
51
|
+
|
52
|
+
new Assertion(body, msg).is.a('function');
|
53
|
+
new Assertion(changeWatcher, msg).is.a('function');
|
54
|
+
|
55
|
+
if(changeWatcher.length > 0 || body.length > 0) {
|
56
|
+
chai.assert(changeSpec.callback != null,"For asynchronous tests, need to pass a `done(err)` function as `callback:` option");
|
57
|
+
}
|
58
|
+
|
59
|
+
runStep(changeWatcher,function(before) {
|
60
|
+
withFail(preconditions,before);
|
61
|
+
runStep(body,function() {
|
62
|
+
runStep(changeWatcher,function(after) {
|
63
|
+
var result = withFail(postconditions,before,after);
|
64
|
+
if(result !== FAIL && changeSpec.callback) changeSpec.callback();
|
65
|
+
});
|
66
|
+
});
|
67
|
+
});
|
68
|
+
});
|
69
|
+
|
70
|
+
function preconditions(before) {
|
71
|
+
if('by' in changeSpec) {
|
72
|
+
if(typeof changeSpec.by !== 'number' ||
|
73
|
+
(changeSpec.from != null && typeof changeSpec.from !== 'number')) {
|
74
|
+
throw new Error('change "by" assertions only work with numbers specified in "by" and or "from" options');
|
75
|
+
}
|
76
|
+
changeSpec.to = before + changeSpec.by;
|
77
|
+
}
|
78
|
+
if('from' in changeSpec && changeSpec.from !== before) {
|
79
|
+
throw new Error("change 'from' value wasn't equal to " + util.inspect(before));
|
80
|
+
}
|
81
|
+
}
|
82
|
+
|
83
|
+
function postconditions(before,after) {
|
84
|
+
if('to' in changeSpec) {
|
85
|
+
chai.assert(
|
86
|
+
after === changeSpec.to
|
87
|
+
, 'expected ' + util.inspect(before) + ' to change to ' + util.inspect(changeSpec.to) + ', instead changed to ' + util.inspect(after)
|
88
|
+
, 'didn\'t expect ' + util.inspect(before) + ' to have changed to ' + util.inspect(changeSpec.to)
|
89
|
+
);
|
90
|
+
} else {
|
91
|
+
chai.assert(
|
92
|
+
after !== before
|
93
|
+
, 'expected value to have changed from ' + util.inspect(before)
|
94
|
+
, 'expected value to have remained unchanged from ' + util.inspect(before) + ', but changed to ' + util.inspect(after)
|
95
|
+
);
|
96
|
+
}
|
97
|
+
}
|
98
|
+
|
99
|
+
function runStep(fn,done) {
|
100
|
+
if(fn.length === 0) return done(withFail(fn));
|
101
|
+
fn(function(err,val) {
|
102
|
+
if(err) return fail(err);
|
103
|
+
done(val);
|
104
|
+
});
|
105
|
+
}
|
106
|
+
|
107
|
+
function fail(err) {
|
108
|
+
if(changeSpec.callback) return changeSpec.callback(err);
|
109
|
+
if(!(err instanceof Error)) err = new Error(err);
|
110
|
+
throw err;
|
111
|
+
}
|
112
|
+
|
113
|
+
function withFail(fn) {
|
114
|
+
var args = [].slice.call(arguments,1);
|
115
|
+
try {
|
116
|
+
return fn.apply(null,args);
|
117
|
+
} catch(e) {
|
118
|
+
fail(e);
|
119
|
+
return FAIL;
|
120
|
+
}
|
121
|
+
}
|
122
|
+
|
123
|
+
return this;
|
124
|
+
|
125
|
+
};
|
126
|
+
/**
|
127
|
+
* ### .change(getValue)
|
128
|
+
*
|
129
|
+
* Asserts that the value returned by `getValue`
|
130
|
+
* changes after the `affect` function has run:
|
131
|
+
*
|
132
|
+
* var x = 0;
|
133
|
+
* assert.change(function() { x += 1; },function() { return x });
|
134
|
+
*
|
135
|
+
* You can pass options to be specific about the changes expected. Use the `from`
|
136
|
+
* key to enforce a starting value, a `to` key for and ending value, and a
|
137
|
+
* `by` key to enforce a numeric change.
|
138
|
+
*
|
139
|
+
* assert.change(function() { x += 1 },function() { return x },{by: 1});
|
140
|
+
* assert.change(function() { x += 1 },function() { return x },{from: x});
|
141
|
+
* assert.change(function() { x += 1 },function() { return x },{from: x, to: x + 1});
|
142
|
+
* assert.change(function() { x += 1 },function() { return x },{to: x + 1});
|
143
|
+
*
|
144
|
+
* @name change
|
145
|
+
* @param {Function} affect
|
146
|
+
* @param {Function} getValue
|
147
|
+
* @param {Object} options _optional_
|
148
|
+
* @param {String} message
|
149
|
+
* @api public
|
150
|
+
*/
|
151
|
+
function assertInterfaceChange(fn, changeWatcher, opts, msg) {
|
152
|
+
if(typeof opts === 'string') {
|
153
|
+
msg = opts;
|
154
|
+
opts = null;
|
155
|
+
}
|
156
|
+
new Assertion(fn, msg).to.change(changeWatcher,opts);
|
157
|
+
};
|
158
|
+
|
159
|
+
/**
|
160
|
+
* ### .change(getValue)
|
161
|
+
*
|
162
|
+
* Asserts that the value returned by `getValue`
|
163
|
+
* doesn't change after the `affect` has run:
|
164
|
+
*
|
165
|
+
* var x = 0;
|
166
|
+
* assert.noChange(doesNothing,function() { return x });
|
167
|
+
* function doesNothing() {}
|
168
|
+
*
|
169
|
+
* @name change
|
170
|
+
* @param {Function} affect
|
171
|
+
* @param {Function} getValue
|
172
|
+
* @param {Object} options _optional_
|
173
|
+
* @param {String} message
|
174
|
+
* @api public
|
175
|
+
*/
|
176
|
+
|
177
|
+
function assertInterfaceNoChange(fn, changeWatcher, opts, msg) {
|
178
|
+
if(typeof opts === 'string') {
|
179
|
+
msg = opts;
|
180
|
+
opts = null;
|
181
|
+
}
|
182
|
+
new Assertion(fn, msg).not.to.change(changeWatcher,opts);
|
183
|
+
};
|
184
|
+
|
185
|
+
}
|
186
|
+
|
187
|
+
if(typeof module === "undefined") {
|
188
|
+
if(typeof define === "function" && define.amd) {
|
189
|
+
define([],function() {
|
190
|
+
return plugin;
|
191
|
+
});
|
192
|
+
} else {
|
193
|
+
chai.use(plugin);
|
194
|
+
}
|
195
|
+
} else {
|
196
|
+
module.exports = plugin;
|
197
|
+
}
|
198
|
+
|
199
|
+
|
200
|
+
})();
|
@@ -0,0 +1,170 @@
|
|
1
|
+
(function(plugin){
|
2
|
+
if (
|
3
|
+
typeof require === "function" &&
|
4
|
+
typeof exports === "object" &&
|
5
|
+
typeof module === "object"
|
6
|
+
) {
|
7
|
+
// NodeJS
|
8
|
+
module.exports = plugin;
|
9
|
+
} else if (
|
10
|
+
typeof define === "function" &&
|
11
|
+
define.amd
|
12
|
+
) {
|
13
|
+
// AMD
|
14
|
+
define(function () {
|
15
|
+
return plugin;
|
16
|
+
});
|
17
|
+
} else {
|
18
|
+
// Other environment (usually <script> tag): plug in to global chai instance directly.
|
19
|
+
chai.use(plugin);
|
20
|
+
}
|
21
|
+
}(function(chai, utils){
|
22
|
+
chai.datetime = chai.datetime || {};
|
23
|
+
|
24
|
+
chai.datetime.formatDate = function(date) {
|
25
|
+
return date.toDateString();
|
26
|
+
};
|
27
|
+
|
28
|
+
chai.datetime.formatTime = function(time) {
|
29
|
+
return time;
|
30
|
+
};
|
31
|
+
|
32
|
+
chai.datetime.equalTime = function(actual, expected) {
|
33
|
+
return actual.getTime() == expected.getTime();
|
34
|
+
};
|
35
|
+
|
36
|
+
chai.datetime.equalDate = function(actual, expected) {
|
37
|
+
return actual.toDateString() === expected.toDateString();
|
38
|
+
};
|
39
|
+
|
40
|
+
chai.datetime.beforeDate = function(actual, expected) {
|
41
|
+
return actual.getUTCFullYear() < expected.getUTCFullYear() || actual.getUTCMonth() < expected.getUTCMonth() || actual.getUTCDate() < expected.getUTCDate();
|
42
|
+
};
|
43
|
+
|
44
|
+
chai.datetime.afterDate = function(actual, expected) {
|
45
|
+
return actual.getUTCFullYear() > expected.getUTCFullYear() || actual.getUTCMonth() > expected.getUTCMonth() || actual.getUTCDate() > expected.getUTCDate();
|
46
|
+
};
|
47
|
+
|
48
|
+
chai.datetime.beforeTime = function(actual, expected) {
|
49
|
+
return actual.getTime() < expected.getTime();
|
50
|
+
};
|
51
|
+
|
52
|
+
chai.datetime.afterTime = function(actual, expected) {
|
53
|
+
return actual.getTime() > expected.getTime();
|
54
|
+
};
|
55
|
+
|
56
|
+
chai.Assertion.addChainableMethod('equalTime', function(expected) {
|
57
|
+
var actual = this._obj;
|
58
|
+
|
59
|
+
return this.assert(
|
60
|
+
chai.datetime.equalTime(expected, actual),
|
61
|
+
'expected ' + this._obj + ' to equal ' + expected,
|
62
|
+
'expected ' + this._obj + ' to not equal ' + expected,
|
63
|
+
expected.toString(),
|
64
|
+
actual.toString()
|
65
|
+
);
|
66
|
+
});
|
67
|
+
|
68
|
+
chai.Assertion.addChainableMethod('equalDate', function(expected) {
|
69
|
+
var expectedDate = chai.datetime.formatDate(expected),
|
70
|
+
actualDate = chai.datetime.formatDate(this._obj);
|
71
|
+
|
72
|
+
return this.assert(
|
73
|
+
chai.datetime.equalDate(this._obj, expected),
|
74
|
+
'expected ' + actualDate + ' to equal ' + expectedDate,
|
75
|
+
'expected ' + actualDate + ' to not equal ' + expectedDate
|
76
|
+
);
|
77
|
+
});
|
78
|
+
|
79
|
+
chai.Assertion.addChainableMethod('beforeDate', function(expected) {
|
80
|
+
var actual = this._obj;
|
81
|
+
|
82
|
+
this.assert(
|
83
|
+
chai.datetime.beforeDate(actual, expected),
|
84
|
+
'expected ' + chai.datetime.formatDate(actual) + ' to be before ' + chai.datetime.formatDate(expected),
|
85
|
+
'expected ' + chai.datetime.formatDate(actual) + ' not to be before ' + chai.datetime.formatDate(expected)
|
86
|
+
);
|
87
|
+
});
|
88
|
+
|
89
|
+
chai.Assertion.addChainableMethod('afterDate', function(expected) {
|
90
|
+
var actual = this._obj;
|
91
|
+
|
92
|
+
this.assert(
|
93
|
+
chai.datetime.afterDate(actual, expected),
|
94
|
+
'expected ' + chai.datetime.formatDate(actual) + ' to be after ' + chai.datetime.formatDate(expected),
|
95
|
+
'expected ' + chai.datetime.formatDate(actual) + ' not to be after ' + chai.datetime.formatDate(expected)
|
96
|
+
);
|
97
|
+
});
|
98
|
+
|
99
|
+
chai.Assertion.addChainableMethod('beforeTime', function(expected) {
|
100
|
+
var actual = this._obj;
|
101
|
+
|
102
|
+
this.assert(
|
103
|
+
chai.datetime.beforeTime(actual, expected),
|
104
|
+
'expected ' + chai.datetime.formatTime(actual) + ' to be before ' + chai.datetime.formatTime(expected),
|
105
|
+
'expected ' + chai.datetime.formatTime(actual) + ' not to be before ' + chai.datetime.formatTime(expected)
|
106
|
+
);
|
107
|
+
});
|
108
|
+
|
109
|
+
chai.Assertion.addChainableMethod('afterTime', function(expected) {
|
110
|
+
var actual = this._obj;
|
111
|
+
|
112
|
+
this.assert(
|
113
|
+
chai.datetime.afterTime(actual, expected),
|
114
|
+
'expected ' + chai.datetime.formatTime(actual) + ' to be after ' + chai.datetime.formatTime(expected),
|
115
|
+
'expected ' + chai.datetime.formatTime(actual) + ' not to be after ' + chai.datetime.formatTime(expected)
|
116
|
+
);
|
117
|
+
});
|
118
|
+
|
119
|
+
// Asserts
|
120
|
+
var assert = chai.assert;
|
121
|
+
|
122
|
+
assert.equalDate = function(val, exp, msg) {
|
123
|
+
new chai.Assertion(val, msg).to.be.equalDate(exp);
|
124
|
+
};
|
125
|
+
|
126
|
+
assert.notEqualDate = function(val, exp, msg) {
|
127
|
+
new chai.Assertion(val, msg).to.not.be.equalDate(exp);
|
128
|
+
};
|
129
|
+
|
130
|
+
assert.beforeDate = function(val, exp, msg) {
|
131
|
+
new chai.Assertion(val, msg).to.be.beforeDate(exp);
|
132
|
+
};
|
133
|
+
|
134
|
+
assert.notBeforeDate = function(val, exp, msg) {
|
135
|
+
new chai.Assertion(val, msg).to.not.be.beforeDate(exp);
|
136
|
+
};
|
137
|
+
|
138
|
+
assert.afterDate = function(val, exp, msg) {
|
139
|
+
new chai.Assertion(val, msg).to.be.afterDate(exp);
|
140
|
+
};
|
141
|
+
|
142
|
+
assert.notAfterDate = function(val, exp, msg) {
|
143
|
+
new chai.Assertion(val, msg).not.to.be.afterDate(exp);
|
144
|
+
};
|
145
|
+
|
146
|
+
assert.equalTime = function(val, exp, msg) {
|
147
|
+
new chai.Assertion(val, msg).to.be.equalTime(exp);
|
148
|
+
};
|
149
|
+
|
150
|
+
assert.notEqualTime = function(val, exp, msg) {
|
151
|
+
new chai.Assertion(val, msg).to.not.be.equalTime(exp);
|
152
|
+
};
|
153
|
+
|
154
|
+
assert.beforeTime = function(val, exp, msg) {
|
155
|
+
new chai.Assertion(val, msg).to.be.beforeTime(exp);
|
156
|
+
};
|
157
|
+
|
158
|
+
assert.notBeforeTime = function(val, exp, msg) {
|
159
|
+
new chai.Assertion(val, msg).not.to.be.beforeTime(exp);
|
160
|
+
};
|
161
|
+
|
162
|
+
assert.afterTime = function(val, exp, msg) {
|
163
|
+
new chai.Assertion(val, msg).to.be.afterTime(exp);
|
164
|
+
};
|
165
|
+
|
166
|
+
assert.notAfterTime = function(val, exp, msg) {
|
167
|
+
new chai.Assertion(val, msg).to.not.be.afterTime(exp);
|
168
|
+
};
|
169
|
+
|
170
|
+
}));
|