a_mock 2.0.2 → 2.0.4
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.
- package/.github/workflows/ci.yml +19 -0
- package/README.md +450 -1
- package/and/newBinaryAndSpec/test.js +1 -7
- package/and/newMonadicAndSpec/test.js +2 -5
- package/andSpec/test.js +1 -4
- package/andSpec/testIntegration.js +1 -2
- package/eventEmitter/addSpec/test.js +2 -4
- package/eventEmitter/emitterContextSpec/test.js +2 -3
- package/eventEmitter/removeSpec/test.js +2 -4
- package/eventEmitter/tryAddSpec/test.js +3 -6
- package/eventEmitter/tryRemoveSpec/test.js +2 -5
- package/eventEmitterSpec/test.js +1 -7
- package/expectRequireSpec/test.js +1 -5
- package/index.d.ts +134 -105
- package/mock/mockContextSpec/test.js +2 -5
- package/mock/mockFuncProperties.js +37 -37
- package/mock/mockFuncPropertiesSpec/test.js +2 -5
- package/mock/objectMock.js +59 -46
- package/mock/objectMockSpec/test.js +10 -11
- package/mock/propertyMockSpec/test.js +2 -4
- package/mock/throwUnexpectedArgumentsSpec/test.js +2 -3
- package/mock.js +8 -8
- package/mockSpec/test.js +1 -5
- package/mockSpec/testIntegration.js +1 -5
- package/newMutableAndSpec/test.js +1 -5
- package/newThenSpec/testExecute.js +1 -5
- package/newThenSpec/testNoCallback.js +1 -3
- package/newThenSpec/testPreReject.js +2 -2
- package/newThenSpec/testPreRejectAndThrow.js +2 -2
- package/newThenSpec/testPreResolve.js +1 -2
- package/newThenSpec/testPreResolveAndThrow.js +2 -2
- package/newThenSpec/testReject.js +2 -2
- package/newThenSpec/testRejectAndThrow.js +2 -2
- package/newThenSpec/testResolve.js +1 -2
- package/newThenSpec/testResolveAndThrow.js +2 -2
- package/newThenSpec/testResolveWithFailingPromise.js +1 -2
- package/newThenSpec/testResolveWithPromise.js +1 -2
- package/newTrueNTimesThenFalseSpec/test.js +1 -6
- package/newTrueOnceThenFalseSpec/test.js +1 -4
- package/package.json +5 -1
- package/partialMock/execute.js +10 -10
- package/partialMock/executeSpec/test.js +1 -4
- package/partialMock/expectAnything.js +7 -4
- package/partialMock/expectAnythingSpec/test.js +2 -8
- package/partialMock/expectArraySpec/test.js +2 -3
- package/partialMock/expectCore.js +11 -8
- package/partialMock/expectCoreSpec/test.js +2 -14
- package/partialMock/expectEmpty.js +5 -4
- package/partialMock/expectEmptySpec/test.js +2 -10
- package/partialMock/expectSpec/test.js +2 -3
- package/partialMock/hasSameArgument/isEqualArgSpec/test.js +7 -31
- package/partialMock/ignoreSpec/test.js +2 -3
- package/partialMock/mockContext/reset.js +15 -15
- package/partialMock/mockContext/resetSpec/test.js +4 -4
- package/partialMock/negotiateDecrementExpectCountSpec/test.js +1 -4
- package/partialMock/negotiateEndSpec/test.js +1 -6
- package/partialMock/negotiateIncrementExpectCountSpec/test.js +1 -4
- package/partialMock/newExecute.js +9 -9
- package/partialMock/newExecuteSpec/test.js +2 -6
- package/partialMock/newFallbackWrapper.js +29 -29
- package/partialMock/newFallbackWrapperSpec/test.js +2 -6
- package/partialMock/newFallbackWrapperSpec/testWithMockError.js +2 -4
- package/partialMock/newFallbackWrapperSpec/testWithOtherError.js +2 -5
- package/partialMock/newHasArgumentSpec/test.js +2 -5
- package/partialMock/newHasEqualArgumentArraySpec/test.js +2 -7
- package/partialMock/newHasNoMoreArgumentsSpec/test.js +2 -7
- package/partialMock/newHasSameArgumentSpec/test.js +2 -10
- package/partialMock/newMockContext.js +12 -12
- package/partialMock/newMockContextSpec/test.js +6 -6
- package/partialMock/newThrowSpec/test.js +2 -3
- package/partialMock/returnSpec/test.js +2 -5
- package/partialMock/setExecuteSpec/test.js +2 -3
- package/partialMock/simple/expectRequireSpec/test.js +2 -4
- package/partialMock/simple/newMock/throwUnexpectedArgumentsSpec/test.js +3 -4
- package/partialMock/simple/newMockSpec/test.js +2 -3
- package/partialMock/simple/newPartialMock.js +2 -0
- package/partialMock/simple/newPartialMockSpec/test.js +2 -8
- package/partialMock/simple/newPartialMockSpec/testRepeat.js +2 -5
- package/partialMock/simple/newPartialMockSpec/testWithMultiArgs.js +2 -4
- package/partialMock/simple/newPartialMockSpec/testWithSingleArg.js +2 -7
- package/partialMock/simple/newRequireMockSpec/test.js +2 -3
- package/partialMock/verifySpec/test.js +1 -4
- package/partialMock.js +12 -10
- package/partialMockSpec/test.js +3 -10
- package/partialMockSpec/testIntegration.js +1 -2
- package/readmeSpec/testREADME.js +199 -0
- package/requireMockSpec/test.js +1 -2
- package/strictMockSpec/test.js +1 -2
- package/util.js +7 -7
- package/test.js +0 -17
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
pull_request:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
test:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- uses: actions/checkout@v4
|
|
12
|
+
- name: Use Node.js 24
|
|
13
|
+
uses: actions/setup-node@v4
|
|
14
|
+
with:
|
|
15
|
+
node-version: 24
|
|
16
|
+
- name: Install dependencies
|
|
17
|
+
run: npm install
|
|
18
|
+
- name: Run tests
|
|
19
|
+
run: npm test
|
package/README.md
CHANGED
|
@@ -1 +1,450 @@
|
|
|
1
|
-
|
|
1
|
+
_a_mock_
|
|
2
|
+
===
|
|
3
|
+
_Mocking framework_
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
The mocking framework can be used in any JavaScript testing framework.
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
__To install:__
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
npm install a_mock
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
_Mocking_
|
|
17
|
+
===================
|
|
18
|
+
|
|
19
|
+
Mocking a function
|
|
20
|
+
------------------
|
|
21
|
+
|
|
22
|
+
__Partial mock__
|
|
23
|
+
|
|
24
|
+
```js
|
|
25
|
+
var original = function() {
|
|
26
|
+
return 'realValue';
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
var mock = require('a_mock').mock(original);
|
|
30
|
+
original = mock;
|
|
31
|
+
mock.expect().return('fake');
|
|
32
|
+
|
|
33
|
+
original(); //returns 'fake'
|
|
34
|
+
original(); //returns 'realValue'
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Note: Consumers do not need to provide a `thisArg`. It is optional and only used to force a specific `this` when the original fallback is called (low-level partial mock usage).
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
__Strict mock__
|
|
42
|
+
|
|
43
|
+
```js
|
|
44
|
+
var mock = require('a_mock').mock();
|
|
45
|
+
mock.expect().return('fake');
|
|
46
|
+
|
|
47
|
+
mock(); //returns 'fake'
|
|
48
|
+
mock(); //throws unexpected arguments
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
__Expecting arguments__
|
|
54
|
+
|
|
55
|
+
```js
|
|
56
|
+
var mock = require('a_mock').mock();
|
|
57
|
+
mock.expect('testValue1').return('fake1');
|
|
58
|
+
mock.expect('testValue2').return('fake2');
|
|
59
|
+
|
|
60
|
+
mock('testValue1'); //returns 'fake1'
|
|
61
|
+
mock('testValue2'); //returns 'fake2'
|
|
62
|
+
mock(); //throws unexpected arguments
|
|
63
|
+
mock('foo'); //throws unexpected arguments
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
__Expecting multiple arguments__
|
|
69
|
+
|
|
70
|
+
```js
|
|
71
|
+
var mock = require('a_mock').mock();
|
|
72
|
+
mock.expect('firstArg1', 'secondArg1').return('fake1');
|
|
73
|
+
mock.expect('firstArg2', 'secondArg2').return('fake2');
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
mock('firstArg1', 'secondArg1'); //returns 'fake1'
|
|
77
|
+
mock('firstArg2', 'secondArg2'); //returns 'fake2'
|
|
78
|
+
mock('foo'); //throws unexpected arguments
|
|
79
|
+
mock('foo', 'bar'); //throws unexpected arguments
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
__Expecting array__
|
|
83
|
+
|
|
84
|
+
```js
|
|
85
|
+
var mock = require('a_mock').mock();
|
|
86
|
+
mock.expect(['a','b']).return('fake1');
|
|
87
|
+
mock.expect(['a','b']).return('fake2');
|
|
88
|
+
mock.expect(['c','d').return('fake3');
|
|
89
|
+
|
|
90
|
+
mock(['a','b']); //returns 'fake1'
|
|
91
|
+
mock(['a','b']); //returns 'fake2'
|
|
92
|
+
mock(['c','d']); //returns 'fake3'
|
|
93
|
+
mock(['a','b']); //throws unexpected arguments
|
|
94
|
+
mock(['foo', 'bar']); //throws unexpected arguments
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
__Expecting struct__
|
|
98
|
+
|
|
99
|
+
```js
|
|
100
|
+
var mock = require('a_mock').mock();
|
|
101
|
+
var obj = {};
|
|
102
|
+
mock.expect({a : 1}).return('fake1');
|
|
103
|
+
mock.expect({a : 2}).return('fake2');
|
|
104
|
+
mock.expect({a : 2, b : {c : 'foo', d : ['me', 'too']}}).return('fake3');
|
|
105
|
+
mock.expect(obj).return('fake4');
|
|
106
|
+
mock.expect({}).return('will never happen');
|
|
107
|
+
|
|
108
|
+
mock({a : 'x'}); //throws unexpected arguments
|
|
109
|
+
mock({a : 1}); //returns 'fake1'
|
|
110
|
+
mock({a : 2}); //returns 'fake2'
|
|
111
|
+
mock({a : 2, b : {c : 'foo', d : ['me', 'too']}}); //returns 'fake3'
|
|
112
|
+
mock(obj); //returns 'fake4'
|
|
113
|
+
mock({}); //throws unexpected arguments
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
__Repeats__
|
|
117
|
+
|
|
118
|
+
```js
|
|
119
|
+
var mock = require('a_mock').mock();
|
|
120
|
+
mock.expect().return('fake').repeat(2);
|
|
121
|
+
|
|
122
|
+
mock(); //returns 'fake'
|
|
123
|
+
mock(); //returns 'fake'
|
|
124
|
+
mock(); //throws unexpected arguments
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
__Infinite repeats__
|
|
128
|
+
|
|
129
|
+
```js
|
|
130
|
+
var mock = require('a_mock').mock();
|
|
131
|
+
mock.expect().return('fake').repeatAny();
|
|
132
|
+
|
|
133
|
+
mock(); //returns 'fake'
|
|
134
|
+
mock(); //returns 'fake'
|
|
135
|
+
mock(); //returns 'fake'...
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
__Ignoring a single argument__
|
|
140
|
+
|
|
141
|
+
```js
|
|
142
|
+
var mock = require('a_mock').mock();
|
|
143
|
+
mock.ignore().expect('foo').return('fake1');
|
|
144
|
+
|
|
145
|
+
mock('ignore me', 'foo'); //returns 'fake1'
|
|
146
|
+
mock(); //throws unexpected arguments
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
__Ignoring all arguments__
|
|
150
|
+
|
|
151
|
+
```js
|
|
152
|
+
var mock = require('a_mock').mock();
|
|
153
|
+
mock.ignoreAll().return('fake1'); //same as expectAnything
|
|
154
|
+
|
|
155
|
+
mock('someRandomValue', 'whatever'); //returns 'fake1'
|
|
156
|
+
mock(); //throws unexpected arguments
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
__Throwing exceptions__
|
|
161
|
+
|
|
162
|
+
```js
|
|
163
|
+
var mock = require('a_mock').mock();
|
|
164
|
+
var error = new Error('invalid operation');
|
|
165
|
+
mock.expect().throw(error);
|
|
166
|
+
mock.expect().return('fake');
|
|
167
|
+
|
|
168
|
+
mock(); //throws error
|
|
169
|
+
mock(); //returns 'fake'
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
__Intercepting__
|
|
173
|
+
|
|
174
|
+
```js
|
|
175
|
+
var mock = require('a_mock').mock();
|
|
176
|
+
mock.expect('testValue').whenCalled(onCalled).return('fake1');
|
|
177
|
+
|
|
178
|
+
function onCalled(arg) {
|
|
179
|
+
//arg == 'testValue'
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
mock('testValue'); //returns 'fake1'
|
|
183
|
+
mock(); //throws unexpected arguments
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
__Verify (fail)__
|
|
187
|
+
|
|
188
|
+
```js
|
|
189
|
+
var mock = require('a_mock').mock();
|
|
190
|
+
mock.expect('testValue1').return('fake1');
|
|
191
|
+
mock.expect('testValue2').return('fake2');
|
|
192
|
+
|
|
193
|
+
mock('testValue1'); //returns 'fake1'
|
|
194
|
+
mock.verify(); //throws mock has 1 pending functions
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
__Verify (success)__
|
|
198
|
+
|
|
199
|
+
```js
|
|
200
|
+
var mock = require('a_mock').mock();
|
|
201
|
+
mock.expect('testValue1').return('fake1');
|
|
202
|
+
mock.expect('testValue2').return('fake2');
|
|
203
|
+
|
|
204
|
+
mock('testValue1'); //returns 'fake1'
|
|
205
|
+
mock('testValue2'); //returns 'fake2'
|
|
206
|
+
mock.verify(); //returns true
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
__returning void (compact syntax)__
|
|
210
|
+
|
|
211
|
+
```js
|
|
212
|
+
var mock = require('a_mock').mock();
|
|
213
|
+
mock.expect('testValue1');
|
|
214
|
+
mock.expect('testValue2').repeat(2);
|
|
215
|
+
|
|
216
|
+
mock('testValue1'); //returns undefined
|
|
217
|
+
mock('testValue2'); //returns undefined
|
|
218
|
+
mock('testValue2'); //returns undefined
|
|
219
|
+
mock.verify(); //returns true
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
__..is equivalent to ..__
|
|
223
|
+
```js
|
|
224
|
+
var mock = require('a_mock').mock();
|
|
225
|
+
mock.expect('testValue1').return();
|
|
226
|
+
mock.expect('testValue2').return().repeat(2);
|
|
227
|
+
|
|
228
|
+
mock('testValue1'); //returns undefined
|
|
229
|
+
mock('testValue2'); //returns undefined
|
|
230
|
+
mock('testValue2'); //returns undefined
|
|
231
|
+
mock.verify(); //returns true
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
__Reset mock__
|
|
235
|
+
```js
|
|
236
|
+
var original = function() {
|
|
237
|
+
return 'realValue';
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
var mock = require('a_mock').mock(original);
|
|
241
|
+
original = mock;
|
|
242
|
+
mock.expect().return('fake');
|
|
243
|
+
mock.reset();
|
|
244
|
+
|
|
245
|
+
original(); //returns 'realValue'
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
__Returning resolved promise__
|
|
249
|
+
```js
|
|
250
|
+
var mock = require('a_mock').mock();
|
|
251
|
+
mock.expect('foo').resolve('fake');
|
|
252
|
+
|
|
253
|
+
mock('foo').then(function(returned){
|
|
254
|
+
//returned == 'fake'
|
|
255
|
+
});
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
__Returning rejected promise__
|
|
259
|
+
```js
|
|
260
|
+
var mock = require('a_mock').mock();
|
|
261
|
+
mock.expect('foo').reject('fake');
|
|
262
|
+
|
|
263
|
+
mock('foo').then(null, function(returned){
|
|
264
|
+
//returned == 'fake'
|
|
265
|
+
});
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
__Strict mock - advanced scenario__
|
|
269
|
+
|
|
270
|
+
```js
|
|
271
|
+
var mock = require('a_mock').mock();
|
|
272
|
+
mock.expect('testValue').ignore().whenCalled(onCalled).return('fake1');
|
|
273
|
+
|
|
274
|
+
function onCalled(arg,callback) {
|
|
275
|
+
//arg == 'testValue'
|
|
276
|
+
//callback == foo
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
function foo() {
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
mock('testValue', foo); //returns 'fake1'
|
|
284
|
+
mock.verify() //returns true
|
|
285
|
+
mock('testValue',foo); //throws unexpected arguments
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Mocking require
|
|
289
|
+
----------------
|
|
290
|
+
|
|
291
|
+
__expectRequire__
|
|
292
|
+
|
|
293
|
+
```js
|
|
294
|
+
var fakeDep = {};
|
|
295
|
+
|
|
296
|
+
var expectRequire = require('a_mock').expectRequire;
|
|
297
|
+
expectRequire('./realDep').return(fakeDep);
|
|
298
|
+
|
|
299
|
+
require('./realDep'); //returns fakeDep
|
|
300
|
+
require('./realDep'); //returns realDep (behaves like a partial mock)
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
__requireMock (compact syntax)__
|
|
304
|
+
|
|
305
|
+
```js
|
|
306
|
+
var requireMock = require('a_mock').requireMock;
|
|
307
|
+
var fakeDep = requireMock('./realDep'); //returns a strict mock
|
|
308
|
+
|
|
309
|
+
require('./realDep'); //returns fakeDep
|
|
310
|
+
require('./realDep'); //returns realDep
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
__..is equivalent to ..__
|
|
314
|
+
|
|
315
|
+
```js
|
|
316
|
+
var mock = require('a_mock').mock();
|
|
317
|
+
var expectRequire = require('a_mock').expectRequire;
|
|
318
|
+
|
|
319
|
+
var fakeDep = mock;
|
|
320
|
+
expectRequire('./realDep').return(fakeDep);
|
|
321
|
+
|
|
322
|
+
require('./realDep'); //returns fakeDep
|
|
323
|
+
require('./realDep'); //returns realDep
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
__Reset mocks for require__
|
|
327
|
+
|
|
328
|
+
```js
|
|
329
|
+
var fakeDep = {};
|
|
330
|
+
|
|
331
|
+
var expectRequire = require('a_mock').expectRequire;
|
|
332
|
+
expectRequire('./realDep').return(fakeDep);
|
|
333
|
+
expectRequire.reset();
|
|
334
|
+
|
|
335
|
+
require('./realDep'); //returns realDep
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
__..is equivalent to ..__
|
|
339
|
+
|
|
340
|
+
```js
|
|
341
|
+
var requireMock = require('a_mock').requireMock;
|
|
342
|
+
var fakeDep = requireMock('./realDep'); //returns a strict mock
|
|
343
|
+
requireMock.reset(); //is an alias for expectRequire.reset()
|
|
344
|
+
|
|
345
|
+
require('./realDep'); //returns realDep
|
|
346
|
+
|
|
347
|
+
```
|
|
348
|
+
Mocking an object
|
|
349
|
+
-----------------
|
|
350
|
+
__Partial object mock__
|
|
351
|
+
|
|
352
|
+
```js
|
|
353
|
+
function newCustomer(_name) {
|
|
354
|
+
var c = {};
|
|
355
|
+
|
|
356
|
+
c.getName = function ()
|
|
357
|
+
{
|
|
358
|
+
return _name;
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
return c;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
var customer = newCustomer('Alfonzo The Real');
|
|
365
|
+
var customerMock = mock(customer);
|
|
366
|
+
|
|
367
|
+
customerMock.getName.expect().return('Johnny Fake');
|
|
368
|
+
|
|
369
|
+
customer.getName(); //returns Johnny Fake
|
|
370
|
+
customer.getName(); //returns Alfonzo The Real
|
|
371
|
+
customerMock.verify(); //returns true
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
Mocking promises
|
|
375
|
+
-----------------
|
|
376
|
+
__Mocking resolve__
|
|
377
|
+
|
|
378
|
+
```js
|
|
379
|
+
var a = require('a_mock');
|
|
380
|
+
|
|
381
|
+
var promise = a.promise(); //mocked promise
|
|
382
|
+
|
|
383
|
+
promise.then(success,error);
|
|
384
|
+
promise.resolve('success');
|
|
385
|
+
|
|
386
|
+
function success(arg) {
|
|
387
|
+
console.log(arg);//success
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
function error(e) {
|
|
391
|
+
//will not happen
|
|
392
|
+
}
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
__Mocking resolve (alternative syntax)__
|
|
396
|
+
|
|
397
|
+
```js
|
|
398
|
+
var a = require('a_mock');
|
|
399
|
+
|
|
400
|
+
var promise = a.promise(); //mocked promise
|
|
401
|
+
|
|
402
|
+
promise.then(success,error);
|
|
403
|
+
promise('success');
|
|
404
|
+
|
|
405
|
+
function success(arg) {
|
|
406
|
+
console.log(arg);//success
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
function error(e) {
|
|
410
|
+
//will not happen
|
|
411
|
+
}
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
__Mocking reject__
|
|
415
|
+
|
|
416
|
+
```js
|
|
417
|
+
var a = require('a_mock');
|
|
418
|
+
|
|
419
|
+
var promise = a.promise();
|
|
420
|
+
|
|
421
|
+
promise.then(success,error);
|
|
422
|
+
promise.reject(new Error('error'));
|
|
423
|
+
|
|
424
|
+
function success(arg) {
|
|
425
|
+
//will not happen
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
function error(e) {
|
|
429
|
+
console.log(e.stack);//will happen
|
|
430
|
+
}
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
__Mocking reject (alternative syntax)__
|
|
434
|
+
|
|
435
|
+
```js
|
|
436
|
+
var a = require('a_mock');
|
|
437
|
+
|
|
438
|
+
var promise = a.promise();
|
|
439
|
+
|
|
440
|
+
promise.then(success,error);
|
|
441
|
+
promise(null,new Error('error'));
|
|
442
|
+
|
|
443
|
+
function success(arg) {
|
|
444
|
+
//will not happen
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
function error(e) {
|
|
448
|
+
console.log(e.stack);//will happen
|
|
449
|
+
}
|
|
450
|
+
```
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var newRequireMock = require('../../partialMock/simple/newRequireMock');
|
|
4
4
|
var newMock = require('../../partialMock/simple/newMock');
|
|
5
5
|
|
|
@@ -8,13 +8,11 @@ var newSut = require('../newBinaryAnd');
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
(function(){
|
|
11
|
-
console.log('newBinaryAnd');
|
|
12
11
|
var predicate = newMock();
|
|
13
12
|
var predicate2 = newMock();
|
|
14
13
|
var sut = newSut(predicate,predicate2);
|
|
15
14
|
|
|
16
15
|
(function() {
|
|
17
|
-
console.log('execute when predicate1 returns false');
|
|
18
16
|
var arg = {};
|
|
19
17
|
predicate.expect(arg).return(false);
|
|
20
18
|
var returned = sut(arg);
|
|
@@ -25,7 +23,6 @@ var newSut = require('../newBinaryAnd');
|
|
|
25
23
|
})();
|
|
26
24
|
|
|
27
25
|
(function() {
|
|
28
|
-
console.log('execute when predicate1 returns true, predicate2 returns false');
|
|
29
26
|
var arg = {};
|
|
30
27
|
predicate.expect(arg).return(true);
|
|
31
28
|
predicate2.expect(arg).return(false);
|
|
@@ -37,7 +34,6 @@ var newSut = require('../newBinaryAnd');
|
|
|
37
34
|
})();
|
|
38
35
|
|
|
39
36
|
(function() {
|
|
40
|
-
console.log('execute when predicate1 returns true, predicate2 returns true');
|
|
41
37
|
var arg = {};
|
|
42
38
|
predicate.expect(arg).return(true);
|
|
43
39
|
predicate2.expect(arg).return(true);
|
|
@@ -49,7 +45,6 @@ var newSut = require('../newBinaryAnd');
|
|
|
49
45
|
})();
|
|
50
46
|
|
|
51
47
|
(function() {
|
|
52
|
-
console.log('add');
|
|
53
48
|
var binaryAnd = {};
|
|
54
49
|
var predicate = {};
|
|
55
50
|
var predicate2 = {};
|
|
@@ -64,4 +59,3 @@ var newSut = require('../newBinaryAnd');
|
|
|
64
59
|
});
|
|
65
60
|
})();
|
|
66
61
|
});
|
|
67
|
-
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var newRequireMock = require('../../partialMock/simple/newRequireMock');
|
|
4
4
|
var newMock = require('../../partialMock/simple/newMock');
|
|
5
5
|
|
|
@@ -8,12 +8,10 @@ var newSut = require('../newMonadicAnd');
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
(function(){
|
|
11
|
-
console.log('newMonadicAnd');
|
|
12
11
|
var predicate = newMock();
|
|
13
12
|
var sut = newSut(predicate);
|
|
14
13
|
|
|
15
14
|
(function() {
|
|
16
|
-
console.log('execute');
|
|
17
15
|
var arg = {};
|
|
18
16
|
var expected = {};
|
|
19
17
|
predicate.expect(arg).return(expected);
|
|
@@ -27,7 +25,6 @@ var newSut = require('../newMonadicAnd');
|
|
|
27
25
|
|
|
28
26
|
|
|
29
27
|
(function() {
|
|
30
|
-
console.log('add');
|
|
31
28
|
var binaryAnd = {};
|
|
32
29
|
var predicate = {};
|
|
33
30
|
var predicate2 = {};
|
|
@@ -42,4 +39,4 @@ var newSut = require('../newMonadicAnd');
|
|
|
42
39
|
});
|
|
43
40
|
})();
|
|
44
41
|
|
|
45
|
-
})();
|
|
42
|
+
})();
|
package/andSpec/test.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var newRequireMock = require('../partialMock/simple/newRequireMock');
|
|
4
4
|
var newMock = require('../partialMock/simple/newMock');
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
(function(){
|
|
8
|
-
console.log('and');
|
|
9
8
|
var sut = require('../and');
|
|
10
9
|
|
|
11
10
|
(function() {
|
|
12
|
-
console.log('execute');
|
|
13
11
|
var returned = sut();
|
|
14
12
|
|
|
15
13
|
test('it returns true',function() {
|
|
@@ -18,7 +16,6 @@ var newMock = require('../partialMock/simple/newMock');
|
|
|
18
16
|
})();
|
|
19
17
|
|
|
20
18
|
(function() {
|
|
21
|
-
console.log('add');
|
|
22
19
|
var newMonadicAnd = newRequireMock('./and/newMonadicAnd');
|
|
23
20
|
var monadicAnd = {};
|
|
24
21
|
var predicate = {};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var newRequireMock = require('../partialMock/simple/newRequireMock');
|
|
4
4
|
var newMock = require('../partialMock/simple/newMock');
|
|
5
5
|
|
|
6
6
|
var and = require('../and');
|
|
7
7
|
|
|
8
8
|
(function(){
|
|
9
|
-
console.log('and');
|
|
10
9
|
var arg = {};
|
|
11
10
|
var arg2 = {};
|
|
12
11
|
var predicate1 = newMock();
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var sut = require('../add');
|
|
4
4
|
|
|
5
5
|
(function(){
|
|
6
|
-
console.log('addSpec');
|
|
7
6
|
|
|
8
7
|
(function() {
|
|
9
|
-
console.log('execute');
|
|
10
8
|
var context = {};
|
|
11
9
|
var callbacks = [{}];
|
|
12
10
|
context.callbacks = callbacks;
|
|
@@ -19,4 +17,4 @@ var sut = require('../add');
|
|
|
19
17
|
});
|
|
20
18
|
})();
|
|
21
19
|
|
|
22
|
-
})();
|
|
20
|
+
})();
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var newSut = require('../emitterContext');
|
|
4
4
|
|
|
5
5
|
(function(){
|
|
6
|
-
console.log('newEmitterContext');
|
|
7
6
|
var returned = newSut();
|
|
8
7
|
|
|
9
8
|
test('it should set callbacks to empty array',function() {
|
|
10
9
|
assert.equal(returned.callbacks.length,0);
|
|
11
10
|
});
|
|
12
|
-
})();
|
|
11
|
+
})();
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var sut = require('../remove');
|
|
4
4
|
|
|
5
5
|
(function(){
|
|
6
|
-
console.log('removeSpec');
|
|
7
6
|
|
|
8
7
|
(function() {
|
|
9
|
-
console.log('execute');
|
|
10
8
|
var context = {};
|
|
11
9
|
var callback = {};
|
|
12
10
|
var callback0 = {};
|
|
@@ -24,4 +22,4 @@ var sut = require('../remove');
|
|
|
24
22
|
});
|
|
25
23
|
})();
|
|
26
24
|
|
|
27
|
-
})();
|
|
25
|
+
})();
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var newRequireMock = require('../../partialMock/simple/newRequireMock');
|
|
4
|
-
|
|
4
|
+
var context = {};
|
|
5
5
|
var sut = require('../tryAdd');
|
|
6
6
|
|
|
7
7
|
(function(){
|
|
8
|
-
console.log('tryAddSpec');
|
|
9
8
|
|
|
10
9
|
(function() {
|
|
11
|
-
console.log('execute');
|
|
12
10
|
var add = newRequireMock('./add');
|
|
13
11
|
var didAdd;
|
|
14
12
|
var callback = {};
|
|
@@ -25,7 +23,6 @@ var sut = require('../tryAdd');
|
|
|
25
23
|
});
|
|
26
24
|
|
|
27
25
|
(function() {
|
|
28
|
-
console.log('execute with missing callback');
|
|
29
26
|
var add = newRequireMock('./add');
|
|
30
27
|
var didAdd;
|
|
31
28
|
var callback;
|
|
@@ -40,4 +37,4 @@ var sut = require('../tryAdd');
|
|
|
40
37
|
assert.ok(true);
|
|
41
38
|
});
|
|
42
39
|
})();
|
|
43
|
-
})();
|
|
40
|
+
})();
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var newRequireMock = require('../../partialMock/simple/newRequireMock');
|
|
4
4
|
var context = {};
|
|
5
5
|
var sut = require('../tryRemove');
|
|
6
6
|
|
|
7
7
|
(function(){
|
|
8
|
-
console.log('tryRemoveSpec');
|
|
9
8
|
|
|
10
9
|
(function() {
|
|
11
|
-
console.log('execute');
|
|
12
10
|
var remove = newRequireMock('./remove');
|
|
13
11
|
var didremove;
|
|
14
12
|
var callback = {};
|
|
@@ -25,7 +23,6 @@ var sut = require('../tryRemove');
|
|
|
25
23
|
})();
|
|
26
24
|
|
|
27
25
|
(function() {
|
|
28
|
-
console.log('execute with missing callback');
|
|
29
26
|
var remove = newRequireMock('./remove');
|
|
30
27
|
var didremove;
|
|
31
28
|
var callback;
|
|
@@ -40,4 +37,4 @@ var sut = require('../tryRemove');
|
|
|
40
37
|
assert.ok(true);
|
|
41
38
|
});
|
|
42
39
|
})();
|
|
43
|
-
})();
|
|
40
|
+
})();
|