jasmine-core 2.4.1 → 2.5.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/lib/console/console.js +1 -1
- data/lib/jasmine-core/boot.js +1 -1
- data/lib/jasmine-core/jasmine-html.js +15 -7
- data/lib/jasmine-core/jasmine.js +261 -82
- data/lib/jasmine-core/node_boot.js +1 -1
- data/lib/jasmine-core/spec/console/ConsoleReporterSpec.js +16 -16
- data/lib/jasmine-core/spec/core/CallTrackerSpec.js +26 -11
- data/lib/jasmine-core/spec/core/ClockSpec.js +61 -42
- data/lib/jasmine-core/spec/core/DelayedFunctionSchedulerSpec.js +28 -15
- data/lib/jasmine-core/spec/core/EnvSpec.js +8 -8
- data/lib/jasmine-core/spec/core/ExceptionFormatterSpec.js +6 -6
- data/lib/jasmine-core/spec/core/ExceptionsSpec.js +1 -1
- data/lib/jasmine-core/spec/core/ExpectationResultSpec.js +8 -8
- data/lib/jasmine-core/spec/core/ExpectationSpec.js +17 -17
- data/lib/jasmine-core/spec/core/JsApiReporterSpec.js +14 -14
- data/lib/jasmine-core/spec/core/MockDateSpec.js +14 -14
- data/lib/jasmine-core/spec/core/PrettyPrintSpec.js +65 -56
- data/lib/jasmine-core/spec/core/QueueRunnerSpec.js +32 -18
- data/lib/jasmine-core/spec/core/ReportDispatcherSpec.js +27 -3
- data/lib/jasmine-core/spec/core/SpecSpec.js +37 -37
- data/lib/jasmine-core/spec/core/SpyRegistrySpec.js +46 -7
- data/lib/jasmine-core/spec/core/SpySpec.js +11 -11
- data/lib/jasmine-core/spec/core/SpyStrategySpec.js +25 -13
- data/lib/jasmine-core/spec/core/SuiteSpec.js +25 -25
- data/lib/jasmine-core/spec/core/TimerSpec.js +2 -2
- data/lib/jasmine-core/spec/core/TreeProcessorSpec.js +26 -26
- data/lib/jasmine-core/spec/core/UtilSpec.js +12 -12
- data/lib/jasmine-core/spec/core/asymmetric_equality/AnySpec.js +8 -8
- data/lib/jasmine-core/spec/core/asymmetric_equality/AnythingSpec.js +7 -7
- data/lib/jasmine-core/spec/core/asymmetric_equality/ArrayContainingSpec.js +6 -6
- data/lib/jasmine-core/spec/core/asymmetric_equality/ObjectContainingSpec.js +11 -11
- data/lib/jasmine-core/spec/core/asymmetric_equality/StringMatchingSpec.js +4 -4
- data/lib/jasmine-core/spec/core/formatErrorMsgSpec.js +13 -0
- data/lib/jasmine-core/spec/core/integration/CustomMatchersSpec.js +2 -2
- data/lib/jasmine-core/spec/core/integration/EnvSpec.js +195 -76
- data/lib/jasmine-core/spec/core/integration/SpecRunningSpec.js +20 -21
- data/lib/jasmine-core/spec/core/matchers/matchersUtilSpec.js +164 -114
- data/lib/jasmine-core/spec/core/matchers/toBeCloseToSpec.js +4 -4
- data/lib/jasmine-core/spec/core/matchers/toBeDefinedSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeFalsySpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeGreaterThanOrEqualSpec.js +29 -0
- data/lib/jasmine-core/spec/core/matchers/toBeGreaterThanSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeLessThanOrEqualSpec.js +29 -0
- data/lib/jasmine-core/spec/core/matchers/toBeLessThanSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeNaNSpec.js +3 -3
- data/lib/jasmine-core/spec/core/matchers/toBeNullSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeTruthySpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toBeUndefinedSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toContainSpec.js +4 -4
- data/lib/jasmine-core/spec/core/matchers/toEqualSpec.js +2 -2
- data/lib/jasmine-core/spec/core/matchers/toHaveBeenCalledSpec.js +11 -11
- data/lib/jasmine-core/spec/core/matchers/toHaveBeenCalledTimesSpec.js +22 -17
- data/lib/jasmine-core/spec/core/matchers/toHaveBeenCalledWithSpec.js +11 -10
- data/lib/jasmine-core/spec/core/matchers/toMatchSpec.js +7 -6
- data/lib/jasmine-core/spec/core/matchers/toThrowErrorSpec.js +24 -24
- data/lib/jasmine-core/spec/core/matchers/toThrowSpec.js +9 -8
- data/lib/jasmine-core/spec/helpers/defineJasmineUnderTest.js +3 -3
- data/lib/jasmine-core/spec/helpers/nodeDefineJasmineUnderTest.js +5 -5
- data/lib/jasmine-core/spec/html/HtmlReporterSpec.js +95 -59
- data/lib/jasmine-core/spec/html/HtmlSpecFilterSpec.js +3 -3
- data/lib/jasmine-core/spec/html/MatchersHtmlSpec.js +1 -1
- data/lib/jasmine-core/spec/html/PrettyPrintHtmlSpec.js +4 -4
- data/lib/jasmine-core/spec/html/QueryStringSpec.js +5 -5
- data/lib/jasmine-core/spec/html/ResultsNodeSpec.js +4 -4
- data/lib/jasmine-core/spec/npmPackage/npmPackageSpec.js +2 -2
- data/lib/jasmine-core/spec/performance/large_object_test.js +1 -1
- data/lib/jasmine-core/version.rb +1 -1
- metadata +5 -3
- data/lib/jasmine-core/spec/node_suite.js +0 -195
@@ -19,7 +19,7 @@ describe("ConsoleReporter", function() {
|
|
19
19
|
});
|
20
20
|
|
21
21
|
it("reports that the suite has started to the console", function() {
|
22
|
-
var reporter = new
|
22
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
23
23
|
print: out.print
|
24
24
|
});
|
25
25
|
|
@@ -30,7 +30,7 @@ describe("ConsoleReporter", function() {
|
|
30
30
|
|
31
31
|
it("starts the provided timer when jasmine starts", function() {
|
32
32
|
var timerSpy = jasmine.createSpyObj('timer', ['start']),
|
33
|
-
reporter = new
|
33
|
+
reporter = new jasmineUnderTest.ConsoleReporter({
|
34
34
|
print: out.print,
|
35
35
|
timer: timerSpy
|
36
36
|
});
|
@@ -41,7 +41,7 @@ describe("ConsoleReporter", function() {
|
|
41
41
|
});
|
42
42
|
|
43
43
|
it("reports a passing spec as a dot", function() {
|
44
|
-
var reporter = new
|
44
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
45
45
|
print: out.print
|
46
46
|
});
|
47
47
|
|
@@ -51,7 +51,7 @@ describe("ConsoleReporter", function() {
|
|
51
51
|
});
|
52
52
|
|
53
53
|
it("does not report a disabled spec", function() {
|
54
|
-
var reporter = new
|
54
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
55
55
|
print: out.print
|
56
56
|
});
|
57
57
|
|
@@ -61,7 +61,7 @@ describe("ConsoleReporter", function() {
|
|
61
61
|
});
|
62
62
|
|
63
63
|
it("reports a failing spec as an 'F'", function() {
|
64
|
-
var reporter = new
|
64
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
65
65
|
print: out.print
|
66
66
|
});
|
67
67
|
|
@@ -71,7 +71,7 @@ describe("ConsoleReporter", function() {
|
|
71
71
|
});
|
72
72
|
|
73
73
|
it("reports a pending spec as a '*'", function() {
|
74
|
-
var reporter = new
|
74
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
75
75
|
print: out.print
|
76
76
|
});
|
77
77
|
|
@@ -81,7 +81,7 @@ describe("ConsoleReporter", function() {
|
|
81
81
|
});
|
82
82
|
|
83
83
|
it("alerts user if there are no specs", function(){
|
84
|
-
var reporter = new
|
84
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
85
85
|
print: out.print
|
86
86
|
});
|
87
87
|
|
@@ -94,7 +94,7 @@ describe("ConsoleReporter", function() {
|
|
94
94
|
|
95
95
|
it("reports a summary when done (singular spec and time)", function() {
|
96
96
|
var timerSpy = jasmine.createSpyObj('timer', ['start', 'elapsed']),
|
97
|
-
reporter = new
|
97
|
+
reporter = new jasmineUnderTest.ConsoleReporter({
|
98
98
|
print: out.print,
|
99
99
|
timer: timerSpy
|
100
100
|
});
|
@@ -114,7 +114,7 @@ describe("ConsoleReporter", function() {
|
|
114
114
|
|
115
115
|
it("reports a summary when done (pluralized specs and seconds)", function() {
|
116
116
|
var timerSpy = jasmine.createSpyObj('timer', ['start', 'elapsed']),
|
117
|
-
reporter = new
|
117
|
+
reporter = new jasmineUnderTest.ConsoleReporter({
|
118
118
|
print: out.print,
|
119
119
|
timer: timerSpy
|
120
120
|
});
|
@@ -148,7 +148,7 @@ describe("ConsoleReporter", function() {
|
|
148
148
|
});
|
149
149
|
|
150
150
|
it("reports a summary when done that includes stack traces for a failing suite", function() {
|
151
|
-
var reporter = new
|
151
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
152
152
|
print: out.print
|
153
153
|
});
|
154
154
|
|
@@ -182,7 +182,7 @@ describe("ConsoleReporter", function() {
|
|
182
182
|
|
183
183
|
beforeEach(function() {
|
184
184
|
onComplete = jasmine.createSpy('onComplete');
|
185
|
-
reporter = new
|
185
|
+
reporter = new jasmineUnderTest.ConsoleReporter({
|
186
186
|
print: out.print,
|
187
187
|
onComplete: onComplete
|
188
188
|
});
|
@@ -210,7 +210,7 @@ describe("ConsoleReporter", function() {
|
|
210
210
|
|
211
211
|
describe("with color", function() {
|
212
212
|
it("reports that the suite has started to the console", function() {
|
213
|
-
var reporter = new
|
213
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
214
214
|
print: out.print,
|
215
215
|
showColors: true
|
216
216
|
});
|
@@ -221,7 +221,7 @@ describe("ConsoleReporter", function() {
|
|
221
221
|
});
|
222
222
|
|
223
223
|
it("reports a passing spec as a dot", function() {
|
224
|
-
var reporter = new
|
224
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
225
225
|
print: out.print,
|
226
226
|
showColors: true
|
227
227
|
});
|
@@ -232,7 +232,7 @@ describe("ConsoleReporter", function() {
|
|
232
232
|
});
|
233
233
|
|
234
234
|
it("does not report a disabled spec", function() {
|
235
|
-
var reporter = new
|
235
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
236
236
|
print: out.print,
|
237
237
|
showColors: true
|
238
238
|
});
|
@@ -243,7 +243,7 @@ describe("ConsoleReporter", function() {
|
|
243
243
|
});
|
244
244
|
|
245
245
|
it("reports a failing spec as an 'F'", function() {
|
246
|
-
var reporter = new
|
246
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
247
247
|
print: out.print,
|
248
248
|
showColors: true
|
249
249
|
});
|
@@ -254,7 +254,7 @@ describe("ConsoleReporter", function() {
|
|
254
254
|
});
|
255
255
|
|
256
256
|
it("displays all afterAll exceptions", function() {
|
257
|
-
var reporter = new
|
257
|
+
var reporter = new jasmineUnderTest.ConsoleReporter({
|
258
258
|
print: out.print,
|
259
259
|
showColors: true
|
260
260
|
});
|
@@ -1,6 +1,6 @@
|
|
1
1
|
describe("CallTracker", function() {
|
2
2
|
it("tracks that it was called when executed", function() {
|
3
|
-
var callTracker = new
|
3
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
4
4
|
|
5
5
|
expect(callTracker.any()).toBe(false);
|
6
6
|
|
@@ -10,7 +10,7 @@ describe("CallTracker", function() {
|
|
10
10
|
});
|
11
11
|
|
12
12
|
it("tracks that number of times that it is executed", function() {
|
13
|
-
var callTracker = new
|
13
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
14
14
|
|
15
15
|
expect(callTracker.count()).toEqual(0);
|
16
16
|
|
@@ -20,7 +20,7 @@ describe("CallTracker", function() {
|
|
20
20
|
});
|
21
21
|
|
22
22
|
it("tracks the params from each execution", function() {
|
23
|
-
var callTracker = new
|
23
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
24
24
|
|
25
25
|
callTracker.track({object: void 0, args: []});
|
26
26
|
callTracker.track({object: {}, args: [0, "foo"]});
|
@@ -31,13 +31,13 @@ describe("CallTracker", function() {
|
|
31
31
|
});
|
32
32
|
|
33
33
|
it("returns any empty array when there was no call", function() {
|
34
|
-
var callTracker = new
|
34
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
35
35
|
|
36
36
|
expect(callTracker.argsFor(0)).toEqual([]);
|
37
37
|
});
|
38
38
|
|
39
39
|
it("allows access for the arguments for all calls", function() {
|
40
|
-
var callTracker = new
|
40
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
41
41
|
|
42
42
|
callTracker.track({object: {}, args: []});
|
43
43
|
callTracker.track({object: {}, args: [0, "foo"]});
|
@@ -46,7 +46,7 @@ describe("CallTracker", function() {
|
|
46
46
|
});
|
47
47
|
|
48
48
|
it("tracks the context and arguments for each call", function() {
|
49
|
-
var callTracker = new
|
49
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
50
50
|
|
51
51
|
callTracker.track({object: {}, args: []});
|
52
52
|
callTracker.track({object: {}, args: [0, "foo"]});
|
@@ -57,7 +57,7 @@ describe("CallTracker", function() {
|
|
57
57
|
});
|
58
58
|
|
59
59
|
it("simplifies access to the arguments for the last (most recent) call", function() {
|
60
|
-
var callTracker = new
|
60
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
61
61
|
|
62
62
|
callTracker.track();
|
63
63
|
callTracker.track({object: {}, args: [0, "foo"]});
|
@@ -69,13 +69,13 @@ describe("CallTracker", function() {
|
|
69
69
|
});
|
70
70
|
|
71
71
|
it("returns a useful falsy value when there isn't a last (most recent) call", function() {
|
72
|
-
var callTracker = new
|
72
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
73
73
|
|
74
74
|
expect(callTracker.mostRecent()).toBeFalsy();
|
75
75
|
});
|
76
76
|
|
77
77
|
it("simplifies access to the arguments for the first (oldest) call", function() {
|
78
|
-
var callTracker = new
|
78
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
79
79
|
|
80
80
|
callTracker.track({object: {}, args: [0, "foo"]});
|
81
81
|
|
@@ -83,14 +83,14 @@ describe("CallTracker", function() {
|
|
83
83
|
});
|
84
84
|
|
85
85
|
it("returns a useful falsy value when there isn't a first (oldest) call", function() {
|
86
|
-
var callTracker = new
|
86
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
87
87
|
|
88
88
|
expect(callTracker.first()).toBeFalsy();
|
89
89
|
});
|
90
90
|
|
91
91
|
|
92
92
|
it("allows the tracking to be reset", function() {
|
93
|
-
var callTracker = new
|
93
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
94
94
|
|
95
95
|
callTracker.track();
|
96
96
|
callTracker.track({object: {}, args: [0, "foo"]});
|
@@ -102,4 +102,19 @@ describe("CallTracker", function() {
|
|
102
102
|
expect(callTracker.all()).toEqual([]);
|
103
103
|
expect(callTracker.mostRecent()).toBeFalsy();
|
104
104
|
});
|
105
|
+
|
106
|
+
it("allows object arguments to be shallow cloned", function() {
|
107
|
+
var callTracker = new jasmineUnderTest.CallTracker();
|
108
|
+
callTracker.saveArgumentsByValue();
|
109
|
+
|
110
|
+
var objectArg = {"foo": "bar"},
|
111
|
+
arrayArg = ["foo", "bar"];
|
112
|
+
|
113
|
+
callTracker.track({object: {}, args: [objectArg, arrayArg, false, undefined, null, NaN, "", 0, 1.0]});
|
114
|
+
|
115
|
+
expect(callTracker.mostRecent().args[0]).not.toBe(objectArg);
|
116
|
+
expect(callTracker.mostRecent().args[0]).toEqual(objectArg);
|
117
|
+
expect(callTracker.mostRecent().args[1]).not.toBe(arrayArg);
|
118
|
+
expect(callTracker.mostRecent().args[1]).toEqual(arrayArg);
|
119
|
+
});
|
105
120
|
});
|
@@ -6,7 +6,7 @@ describe("Clock", function() {
|
|
6
6
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["scheduleFunction"]),
|
7
7
|
delayedFn = jasmine.createSpy("delayedFn"),
|
8
8
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
9
|
-
clock = new
|
9
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
10
10
|
|
11
11
|
fakeGlobal.setTimeout(delayedFn, 0);
|
12
12
|
|
@@ -28,7 +28,7 @@ describe("Clock", function() {
|
|
28
28
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["removeFunctionWithId"]),
|
29
29
|
delayedFn = jasmine.createSpy("delayedFn"),
|
30
30
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
31
|
-
clock = new
|
31
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
32
32
|
|
33
33
|
fakeGlobal.clearTimeout("foo");
|
34
34
|
|
@@ -50,7 +50,7 @@ describe("Clock", function() {
|
|
50
50
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["scheduleFunction"]),
|
51
51
|
delayedFn = jasmine.createSpy("delayedFn"),
|
52
52
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
53
|
-
clock = new
|
53
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
54
54
|
|
55
55
|
fakeGlobal.setInterval(delayedFn, 0);
|
56
56
|
|
@@ -72,7 +72,7 @@ describe("Clock", function() {
|
|
72
72
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["removeFunctionWithId"]),
|
73
73
|
delayedFn = jasmine.createSpy("delayedFn"),
|
74
74
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
75
|
-
clock = new
|
75
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
76
76
|
|
77
77
|
fakeGlobal.clearInterval("foo");
|
78
78
|
|
@@ -94,7 +94,7 @@ describe("Clock", function() {
|
|
94
94
|
fakeGlobal = { setTimeout: originalFakeSetTimeout },
|
95
95
|
delayedFunctionSchedulerFactory = jasmine.createSpy('delayedFunctionSchedulerFactory'),
|
96
96
|
mockDate = {},
|
97
|
-
clock = new
|
97
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, delayedFunctionSchedulerFactory, mockDate);
|
98
98
|
|
99
99
|
fakeGlobal.setTimeout = replacedSetTimeout;
|
100
100
|
|
@@ -112,7 +112,7 @@ describe("Clock", function() {
|
|
112
112
|
fakeGlobal = { clearTimeout: originalFakeClearTimeout },
|
113
113
|
delayedFunctionSchedulerFactory = jasmine.createSpy('delayedFunctionSchedulerFactory'),
|
114
114
|
mockDate = {},
|
115
|
-
clock = new
|
115
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, delayedFunctionSchedulerFactory, mockDate);
|
116
116
|
|
117
117
|
fakeGlobal.clearTimeout = replacedClearTimeout;
|
118
118
|
|
@@ -130,7 +130,7 @@ describe("Clock", function() {
|
|
130
130
|
fakeGlobal = { setInterval: originalFakeSetInterval },
|
131
131
|
delayedFunctionSchedulerFactory = jasmine.createSpy('delayedFunctionSchedulerFactory'),
|
132
132
|
mockDate = {},
|
133
|
-
clock = new
|
133
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, delayedFunctionSchedulerFactory, mockDate);
|
134
134
|
|
135
135
|
fakeGlobal.setInterval = replacedSetInterval;
|
136
136
|
|
@@ -148,7 +148,7 @@ describe("Clock", function() {
|
|
148
148
|
fakeGlobal = { clearInterval: originalFakeClearInterval },
|
149
149
|
delayedFunctionSchedulerFactory = jasmine.createSpy('delayedFunctionSchedulerFactory'),
|
150
150
|
mockDate = {},
|
151
|
-
clock = new
|
151
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, delayedFunctionSchedulerFactory, mockDate);
|
152
152
|
|
153
153
|
fakeGlobal.clearInterval = replacedClearInterval;
|
154
154
|
|
@@ -174,7 +174,7 @@ describe("Clock", function() {
|
|
174
174
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["scheduleFunction", "reset"]),
|
175
175
|
delayedFn = jasmine.createSpy("delayedFn"),
|
176
176
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
177
|
-
clock = new
|
177
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
178
178
|
|
179
179
|
clock.install();
|
180
180
|
clock.uninstall();
|
@@ -204,7 +204,7 @@ describe("Clock", function() {
|
|
204
204
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["scheduleFunction", "reset", "removeFunctionWithId"]),
|
205
205
|
delayedFn = jasmine.createSpy("delayedFn"),
|
206
206
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
207
|
-
clock = new
|
207
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate),
|
208
208
|
passedFunctionCalled = false;
|
209
209
|
|
210
210
|
clock.withMock(function() {
|
@@ -251,7 +251,7 @@ describe("Clock", function() {
|
|
251
251
|
delayedFunctionScheduler = jasmine.createSpyObj("delayedFunctionScheduler", ["scheduleFunction", "reset", "removeFunctionWithId"]),
|
252
252
|
delayedFn = jasmine.createSpy("delayedFn"),
|
253
253
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
254
|
-
clock = new
|
254
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate),
|
255
255
|
passedFunctionCalled = false;
|
256
256
|
|
257
257
|
expect(function() {
|
@@ -294,7 +294,7 @@ describe("Clock", function() {
|
|
294
294
|
fakeGlobal = { setTimeout: fakeSetTimeout },
|
295
295
|
delayedFn = jasmine.createSpy('delayedFn'),
|
296
296
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
297
|
-
clock = new
|
297
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
298
298
|
|
299
299
|
clock.install();
|
300
300
|
clock.setTimeout(delayedFn, 0, 'a', 'b');
|
@@ -311,7 +311,7 @@ describe("Clock", function() {
|
|
311
311
|
fakeGlobal = { setTimeout: fakeSetTimeout },
|
312
312
|
delayedFn = jasmine.createSpy('delayedFn'),
|
313
313
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
314
|
-
clock = new
|
314
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate),
|
315
315
|
timeoutId;
|
316
316
|
|
317
317
|
clock.install();
|
@@ -326,7 +326,7 @@ describe("Clock", function() {
|
|
326
326
|
fakeGlobal = { setTimeout: fakeClearTimeout },
|
327
327
|
delayedFn = jasmine.createSpy('delayedFn'),
|
328
328
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
329
|
-
clock = new
|
329
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
330
330
|
|
331
331
|
clock.install();
|
332
332
|
clock.clearTimeout(123);
|
@@ -342,7 +342,7 @@ describe("Clock", function() {
|
|
342
342
|
fakeGlobal = { setInterval: fakeSetInterval },
|
343
343
|
delayedFn = jasmine.createSpy('delayedFn'),
|
344
344
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
345
|
-
clock = new
|
345
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
346
346
|
|
347
347
|
clock.install();
|
348
348
|
clock.setInterval(delayedFn, 0, 'a', 'b');
|
@@ -359,7 +359,7 @@ describe("Clock", function() {
|
|
359
359
|
fakeGlobal = { setInterval: fakeSetInterval },
|
360
360
|
delayedFn = jasmine.createSpy('delayedFn'),
|
361
361
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
362
|
-
clock = new
|
362
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate),
|
363
363
|
intervalId;
|
364
364
|
|
365
365
|
clock.install();
|
@@ -374,7 +374,7 @@ describe("Clock", function() {
|
|
374
374
|
fakeGlobal = { setInterval: clearInterval },
|
375
375
|
delayedFn = jasmine.createSpy('delayedFn'),
|
376
376
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
377
|
-
clock = new
|
377
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
378
378
|
|
379
379
|
clock.install();
|
380
380
|
clock.clearInterval(123);
|
@@ -384,7 +384,7 @@ describe("Clock", function() {
|
|
384
384
|
});
|
385
385
|
|
386
386
|
it("gives you a friendly reminder if the Clock is not installed and you tick", function() {
|
387
|
-
var clock = new
|
387
|
+
var clock = new jasmineUnderTest.Clock({}, jasmine.createSpyObj('delayedFunctionScheduler', ['tick']));
|
388
388
|
expect(function() {
|
389
389
|
clock.tick(50);
|
390
390
|
}).toThrow();
|
@@ -401,7 +401,7 @@ describe("Clock", function() {
|
|
401
401
|
setInterval: fakeSetInterval
|
402
402
|
},
|
403
403
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
404
|
-
clock = new
|
404
|
+
clock = new jasmineUnderTest.Clock(fakeGlobal, function () { return delayedFunctionScheduler; }, mockDate);
|
405
405
|
|
406
406
|
fakeSetTimeout.apply = null;
|
407
407
|
fakeSetInterval.apply = null;
|
@@ -428,9 +428,9 @@ describe("Clock (acceptance)", function() {
|
|
428
428
|
delayedFn2 = jasmine.createSpy('delayedFn2'),
|
429
429
|
delayedFn3 = jasmine.createSpy('delayedFn3'),
|
430
430
|
recurring1 = jasmine.createSpy('recurring1'),
|
431
|
-
delayedFunctionScheduler = new
|
431
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
432
432
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
433
|
-
clock = new
|
433
|
+
clock = new jasmineUnderTest.Clock({setTimeout: setTimeout}, function () { return delayedFunctionScheduler; }, mockDate);
|
434
434
|
|
435
435
|
clock.install();
|
436
436
|
|
@@ -475,9 +475,9 @@ describe("Clock (acceptance)", function() {
|
|
475
475
|
|
476
476
|
it("can clear a previously set timeout", function() {
|
477
477
|
var clearedFn = jasmine.createSpy('clearedFn'),
|
478
|
-
delayedFunctionScheduler = new
|
478
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
479
479
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
480
|
-
clock = new
|
480
|
+
clock = new jasmineUnderTest.Clock({setTimeout: function() {}}, function () { return delayedFunctionScheduler; }, mockDate),
|
481
481
|
timeoutId;
|
482
482
|
|
483
483
|
clock.install();
|
@@ -493,9 +493,9 @@ describe("Clock (acceptance)", function() {
|
|
493
493
|
|
494
494
|
it("can clear a previously set interval using that interval's handler", function() {
|
495
495
|
var spy = jasmine.createSpy('spy'),
|
496
|
-
delayedFunctionScheduler = new
|
496
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
497
497
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
498
|
-
clock = new
|
498
|
+
clock = new jasmineUnderTest.Clock({setInterval: function() {}}, function () { return delayedFunctionScheduler; }, mockDate),
|
499
499
|
intervalId;
|
500
500
|
|
501
501
|
clock.install();
|
@@ -511,9 +511,9 @@ describe("Clock (acceptance)", function() {
|
|
511
511
|
|
512
512
|
it("correctly schedules functions after the Clock has advanced", function() {
|
513
513
|
var delayedFn1 = jasmine.createSpy('delayedFn1'),
|
514
|
-
delayedFunctionScheduler = new
|
514
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
515
515
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
516
|
-
clock = new
|
516
|
+
clock = new jasmineUnderTest.Clock({setTimeout: function() {}}, function () { return delayedFunctionScheduler; }, mockDate);
|
517
517
|
|
518
518
|
clock.install();
|
519
519
|
|
@@ -528,9 +528,9 @@ describe("Clock (acceptance)", function() {
|
|
528
528
|
it("correctly schedules functions while the Clock is advancing", function() {
|
529
529
|
var delayedFn1 = jasmine.createSpy('delayedFn1'),
|
530
530
|
delayedFn2 = jasmine.createSpy('delayedFn2'),
|
531
|
-
delayedFunctionScheduler = new
|
531
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
532
532
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
533
|
-
clock = new
|
533
|
+
clock = new jasmineUnderTest.Clock({setTimeout: function() {}}, function () { return delayedFunctionScheduler; }, mockDate);
|
534
534
|
|
535
535
|
delayedFn1.and.callFake(function() { clock.setTimeout(delayedFn2, 0); });
|
536
536
|
clock.install();
|
@@ -547,9 +547,9 @@ describe("Clock (acceptance)", function() {
|
|
547
547
|
it("correctly calls functions scheduled while the Clock is advancing", function() {
|
548
548
|
var delayedFn1 = jasmine.createSpy('delayedFn1'),
|
549
549
|
delayedFn2 = jasmine.createSpy('delayedFn2'),
|
550
|
-
delayedFunctionScheduler = new
|
550
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
551
551
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
552
|
-
clock = new
|
552
|
+
clock = new jasmineUnderTest.Clock({setTimeout: function() {}}, function () { return delayedFunctionScheduler; }, mockDate);
|
553
553
|
|
554
554
|
delayedFn1.and.callFake(function() { clock.setTimeout(delayedFn2, 1); });
|
555
555
|
clock.install();
|
@@ -563,9 +563,9 @@ describe("Clock (acceptance)", function() {
|
|
563
563
|
it("correctly schedules functions scheduled while the Clock is advancing but after the Clock is uninstalled", function() {
|
564
564
|
var delayedFn1 = jasmine.createSpy('delayedFn1'),
|
565
565
|
delayedFn2 = jasmine.createSpy('delayedFn2'),
|
566
|
-
delayedFunctionScheduler = new
|
566
|
+
delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
567
567
|
mockDate = { install: function() {}, tick: function() {}, uninstall: function() {} },
|
568
|
-
clock = new
|
568
|
+
clock = new jasmineUnderTest.Clock({setTimeout: function() {}}, function () { return delayedFunctionScheduler; }, mockDate);
|
569
569
|
|
570
570
|
delayedFn1.and.callFake(function() {
|
571
571
|
clock.uninstall();
|
@@ -585,10 +585,10 @@ describe("Clock (acceptance)", function() {
|
|
585
585
|
});
|
586
586
|
|
587
587
|
it("does not mock the Date object by default", function() {
|
588
|
-
var delayedFunctionScheduler = new
|
588
|
+
var delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
589
589
|
global = {Date: Date},
|
590
|
-
mockDate = new
|
591
|
-
clock = new
|
590
|
+
mockDate = new jasmineUnderTest.MockDate(global),
|
591
|
+
clock = new jasmineUnderTest.Clock({setTimeout: setTimeout}, function () { return delayedFunctionScheduler; }, mockDate);
|
592
592
|
|
593
593
|
clock.install();
|
594
594
|
|
@@ -602,10 +602,10 @@ describe("Clock (acceptance)", function() {
|
|
602
602
|
});
|
603
603
|
|
604
604
|
it("mocks the Date object and sets it to current time", function() {
|
605
|
-
var delayedFunctionScheduler = new
|
605
|
+
var delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
606
606
|
global = {Date: Date},
|
607
|
-
mockDate = new
|
608
|
-
clock = new
|
607
|
+
mockDate = new jasmineUnderTest.MockDate(global),
|
608
|
+
clock = new jasmineUnderTest.Clock({setTimeout: setTimeout}, function () { return delayedFunctionScheduler; }, mockDate);
|
609
609
|
|
610
610
|
clock.install().mockDate();
|
611
611
|
|
@@ -626,10 +626,10 @@ describe("Clock (acceptance)", function() {
|
|
626
626
|
});
|
627
627
|
|
628
628
|
it("mocks the Date object and sets it to a given time", function() {
|
629
|
-
var delayedFunctionScheduler = new
|
629
|
+
var delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
630
630
|
global = {Date: Date},
|
631
|
-
mockDate = new
|
632
|
-
clock = new
|
631
|
+
mockDate = new jasmineUnderTest.MockDate(global),
|
632
|
+
clock = new jasmineUnderTest.Clock({setTimeout: setTimeout}, function () { return delayedFunctionScheduler; }, mockDate),
|
633
633
|
baseTime = new Date(2013, 9, 23);
|
634
634
|
|
635
635
|
|
@@ -652,4 +652,23 @@ describe("Clock (acceptance)", function() {
|
|
652
652
|
|
653
653
|
expect(timeoutDate).toEqual(baseTime.getTime() + 150);
|
654
654
|
});
|
655
|
+
|
656
|
+
it("mocks the Date object and updates the date per delayed function", function () {
|
657
|
+
var delayedFunctionScheduler = new jasmineUnderTest.DelayedFunctionScheduler(),
|
658
|
+
global = {Date: Date},
|
659
|
+
mockDate = new jasmineUnderTest.MockDate(global),
|
660
|
+
clock = new jasmineUnderTest.Clock({setTimeout: setTimeout}, function () { return delayedFunctionScheduler; }, mockDate),
|
661
|
+
baseTime = new Date();
|
662
|
+
|
663
|
+
clock.install().mockDate(baseTime);
|
664
|
+
|
665
|
+
var actualTimes = [];
|
666
|
+
var pushCurrentTime = function() { actualTimes.push(global.Date().getTime()); };
|
667
|
+
delayedFunctionScheduler.scheduleFunction(pushCurrentTime);
|
668
|
+
delayedFunctionScheduler.scheduleFunction(pushCurrentTime, 1);
|
669
|
+
|
670
|
+
clock.tick(1);
|
671
|
+
|
672
|
+
expect(actualTimes).toEqual([baseTime.getTime(), baseTime.getTime() + 1]);
|
673
|
+
})
|
655
674
|
});
|