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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var newSut = require('../newPartialMock');
|
|
2
2
|
var assert = require('assert');
|
|
3
|
-
var test = require('
|
|
3
|
+
var test = require('node:test');
|
|
4
4
|
|
|
5
5
|
var originalReturnValue = {};
|
|
6
6
|
var originalReturnValue2 = {};
|
|
@@ -18,10 +18,8 @@ var test = require('../../../test');
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
(function(){
|
|
21
|
-
console.log('partialMockSpec multiple args.2');
|
|
22
21
|
|
|
23
22
|
(function() {
|
|
24
|
-
console.log('expect arg1,arg2 return foo once.');
|
|
25
23
|
var sut = newSut(original);
|
|
26
24
|
var callBackCount = 0;
|
|
27
25
|
function onCalled(actualArg1,actualArg2) {
|
|
@@ -51,4 +49,4 @@ var test = require('../../../test');
|
|
|
51
49
|
assert.equal(1,callBackCount);
|
|
52
50
|
});
|
|
53
51
|
})();
|
|
54
|
-
})();
|
|
52
|
+
})();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var newSut = require('../newPartialMock');
|
|
2
2
|
var assert = require('assert');
|
|
3
|
-
var test = require('
|
|
3
|
+
var test = require('node:test');
|
|
4
4
|
|
|
5
5
|
var originalReturnValue = {};
|
|
6
6
|
function original() {
|
|
@@ -13,10 +13,8 @@ var test = require('../../../test');
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
(function(){
|
|
16
|
-
console.log('partialMockSpec');
|
|
17
16
|
|
|
18
17
|
(function() {
|
|
19
|
-
console.log('expect return foo once.');
|
|
20
18
|
var sut = newSut(original);
|
|
21
19
|
require('../newPartialMock')(function() {});
|
|
22
20
|
sut.expect(arg1).return(foo);
|
|
@@ -40,7 +38,6 @@ var test = require('../../../test');
|
|
|
40
38
|
})();
|
|
41
39
|
|
|
42
40
|
(function() {
|
|
43
|
-
console.log('expect return foo twice.');
|
|
44
41
|
|
|
45
42
|
var sut = newSut(original);
|
|
46
43
|
sut.expect(arg1).return(foo);
|
|
@@ -66,7 +63,6 @@ var test = require('../../../test');
|
|
|
66
63
|
|
|
67
64
|
|
|
68
65
|
(function() {
|
|
69
|
-
console.log('expect return foo then baz');
|
|
70
66
|
var sut = newSut(original);
|
|
71
67
|
sut.expect().return(foo);
|
|
72
68
|
sut.expect(arg1).return(baz);
|
|
@@ -90,7 +86,6 @@ var test = require('../../../test');
|
|
|
90
86
|
})();
|
|
91
87
|
|
|
92
88
|
(function() {
|
|
93
|
-
console.log('expect anything return foo, then expect arg1 return baz.');
|
|
94
89
|
var sut = newSut(original);
|
|
95
90
|
sut.expectAnything().return(foo);
|
|
96
91
|
sut.expect(arg1).return(baz);
|
|
@@ -113,4 +108,4 @@ var test = require('../../../test');
|
|
|
113
108
|
|
|
114
109
|
})();
|
|
115
110
|
|
|
116
|
-
})();
|
|
111
|
+
})();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var newMock = require('../newMock');
|
|
4
4
|
var expectRequire = require('../expectRequire');
|
|
5
5
|
|
|
@@ -10,7 +10,6 @@ expectRequire('./newMock').return(newMockMock);
|
|
|
10
10
|
expectRequire('./expectRequire').return(expectRequireMock);
|
|
11
11
|
|
|
12
12
|
(function() {
|
|
13
|
-
console.log('newRequireMock');
|
|
14
13
|
var didExpectRequireReturnMock = false;
|
|
15
14
|
var mock = {};
|
|
16
15
|
var moduleName = {};
|
|
@@ -36,4 +35,4 @@ expectRequire('./expectRequire').return(expectRequireMock);
|
|
|
36
35
|
assert.ok(didExpectRequireReturnMock);
|
|
37
36
|
});
|
|
38
37
|
|
|
39
|
-
})();
|
|
38
|
+
})();
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
|
|
4
4
|
var sut = require('../verify');
|
|
5
5
|
|
|
6
6
|
(function() {
|
|
7
|
-
console.log('verifySpec');
|
|
8
7
|
|
|
9
8
|
(function(){
|
|
10
|
-
console.log('expectCount is zero.execute');
|
|
11
9
|
var mockContext = {};
|
|
12
10
|
mockContext.expectCount = 0;
|
|
13
11
|
var returned = sut(mockContext);
|
|
@@ -18,7 +16,6 @@ var sut = require('../verify');
|
|
|
18
16
|
})();
|
|
19
17
|
|
|
20
18
|
(function(){
|
|
21
|
-
console.log('expectCount is above zero.execute');
|
|
22
19
|
var mockContext = {};
|
|
23
20
|
mockContext.expectCount = 2;
|
|
24
21
|
var msg;
|
package/partialMock.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
function create(originalFunc, thisArg) {
|
|
2
|
-
var newMockContext = require('./partialMock/newMockContext');
|
|
1
|
+
function create(originalFunc, thisArg) {
|
|
2
|
+
var newMockContext = require('./partialMock/newMockContext');
|
|
3
3
|
var expect = require('./partialMock/expect');
|
|
4
4
|
var expectAnything = require('./partialMock/expectAnything');
|
|
5
5
|
var ignore = require('./partialMock/ignore');
|
|
@@ -7,14 +7,14 @@ function create(originalFunc, thisArg) {
|
|
|
7
7
|
var verify = require('./partialMock/verify');
|
|
8
8
|
var expectEmpty = require('./partialMock/expectEmpty');
|
|
9
9
|
var newEmptyAnd = require('./newMutableAnd');
|
|
10
|
-
var mockContext = newMockContext(originalFunc, thisArg);
|
|
11
|
-
var _negotiateEnd = require('./partialMock/negotiateEnd');
|
|
12
|
-
|
|
13
|
-
function mock() {
|
|
14
|
-
negotiateEnd();
|
|
15
|
-
mockContext.arguments = arguments;
|
|
16
|
-
return mockContext.execute.apply(this,arguments);
|
|
17
|
-
}
|
|
10
|
+
var mockContext = newMockContext(originalFunc, thisArg);
|
|
11
|
+
var _negotiateEnd = require('./partialMock/negotiateEnd');
|
|
12
|
+
|
|
13
|
+
function mock() {
|
|
14
|
+
negotiateEnd();
|
|
15
|
+
mockContext.arguments = arguments;
|
|
16
|
+
return mockContext.execute.apply(this,arguments);
|
|
17
|
+
}
|
|
18
18
|
|
|
19
19
|
mock.expect = function() {
|
|
20
20
|
negotiateEnd();
|
|
@@ -35,6 +35,8 @@ function create(originalFunc, thisArg) {
|
|
|
35
35
|
return expectAnything.apply(null,args);
|
|
36
36
|
};
|
|
37
37
|
|
|
38
|
+
mock.ignoreAll = mock.expectAnything;
|
|
39
|
+
|
|
38
40
|
mock.ignore = function() {
|
|
39
41
|
negotiateEnd();
|
|
40
42
|
mockContext.compositeAreCorrectArguments = newEmptyAnd();
|
package/partialMockSpec/test.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var test = require('
|
|
1
|
+
var test = require('node:test');
|
|
2
2
|
var assert = require('assert');
|
|
3
3
|
var newMock = require('../partialMock/simple/newMock');
|
|
4
4
|
var newRequireMock = require('../partialMock/simple/newRequireMock');
|
|
@@ -18,7 +18,6 @@ var mutableAnd = {};
|
|
|
18
18
|
function fallback() {}
|
|
19
19
|
|
|
20
20
|
(function () {
|
|
21
|
-
console.log('partialMock');
|
|
22
21
|
var sut;
|
|
23
22
|
var fallbackMock;
|
|
24
23
|
var mockContext;
|
|
@@ -28,7 +27,8 @@ function fallback() {}
|
|
|
28
27
|
function stubMockContext() {
|
|
29
28
|
mockContext = {};
|
|
30
29
|
mockContext.reset = {};
|
|
31
|
-
|
|
30
|
+
// Allow optional thisArg without changing public usage.
|
|
31
|
+
newMockContext.expect(fallback).expectAnything().return(mockContext);
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
sut = newSut(fallback);
|
|
@@ -41,7 +41,6 @@ function fallback() {}
|
|
|
41
41
|
});
|
|
42
42
|
|
|
43
43
|
(function() {
|
|
44
|
-
console.log('when execute ');
|
|
45
44
|
var arg = {};
|
|
46
45
|
var expected = {};
|
|
47
46
|
var execute = newMock();
|
|
@@ -67,7 +66,6 @@ function fallback() {}
|
|
|
67
66
|
|
|
68
67
|
|
|
69
68
|
(function() {
|
|
70
|
-
console.log('when execute');
|
|
71
69
|
var expected = {};
|
|
72
70
|
mockContext.compositeAreCorrectArguments = null;
|
|
73
71
|
var arg = 'arg';
|
|
@@ -98,7 +96,6 @@ function fallback() {}
|
|
|
98
96
|
})();
|
|
99
97
|
|
|
100
98
|
(function() {
|
|
101
|
-
console.log('when expect empty');
|
|
102
99
|
var expected = {};
|
|
103
100
|
var didNegotiateEnd;
|
|
104
101
|
mockContext.compositeAreCorrectArguments = null;
|
|
@@ -128,7 +125,6 @@ function fallback() {}
|
|
|
128
125
|
|
|
129
126
|
|
|
130
127
|
(function() {
|
|
131
|
-
console.log('when expectAnything');
|
|
132
128
|
var expected = {};
|
|
133
129
|
var didNegotiateEnd;
|
|
134
130
|
mockContext.compositeAreCorrectArguments = null;
|
|
@@ -155,7 +151,6 @@ function fallback() {}
|
|
|
155
151
|
})();
|
|
156
152
|
|
|
157
153
|
(function() {
|
|
158
|
-
console.log('when ignore');
|
|
159
154
|
var expected = {};
|
|
160
155
|
var didNegotiateEnd;
|
|
161
156
|
mockContext.compositeAreCorrectArguments = null;
|
|
@@ -182,7 +177,6 @@ function fallback() {}
|
|
|
182
177
|
})();
|
|
183
178
|
|
|
184
179
|
(function() {
|
|
185
|
-
console.log('when verify');
|
|
186
180
|
var expected = {};
|
|
187
181
|
var didNegotiateEnd;
|
|
188
182
|
verify.expect(mockContext).return(expected);
|
|
@@ -203,7 +197,6 @@ function fallback() {}
|
|
|
203
197
|
})();
|
|
204
198
|
|
|
205
199
|
(function() {
|
|
206
|
-
console.log('when expectArray');
|
|
207
200
|
var expected = {};
|
|
208
201
|
var didNegotiateEnd;
|
|
209
202
|
mockContext.compositeAreCorrectArguments = null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var newMock = require('../partialMock/simple/newMock');
|
|
4
4
|
var newSut = require('../partialMock');
|
|
5
5
|
|
|
@@ -11,7 +11,6 @@ function fallback(arg, arg2) {
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
(function() {
|
|
14
|
-
console.log('partialMock');
|
|
15
14
|
|
|
16
15
|
test('it should return expected given stubbed twice with repeat', function() {
|
|
17
16
|
var arg = 'a';
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
const assert = require('assert');
|
|
2
|
+
const { describe, it } = require('node:test');
|
|
3
|
+
const aMock = require('..');
|
|
4
|
+
|
|
5
|
+
describe('README examples', () => {
|
|
6
|
+
it('partial mock returns fake then real', () => {
|
|
7
|
+
let original = function () {
|
|
8
|
+
return 'realValue';
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
const mock = aMock.mock(original);
|
|
12
|
+
original = mock;
|
|
13
|
+
mock.expect().return('fake');
|
|
14
|
+
|
|
15
|
+
assert.equal(original(), 'fake');
|
|
16
|
+
assert.equal(original(), 'realValue');
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it('strict mock throws on unexpected call', () => {
|
|
20
|
+
const mock = aMock.mock();
|
|
21
|
+
mock.expect().return('fake');
|
|
22
|
+
|
|
23
|
+
assert.equal(mock(), 'fake');
|
|
24
|
+
assert.throws(() => mock(), /Unexpected arguments/);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
it('expecting arguments', () => {
|
|
28
|
+
const mock = aMock.mock();
|
|
29
|
+
mock.expect('testValue1').return('fake1');
|
|
30
|
+
mock.expect('testValue2').return('fake2');
|
|
31
|
+
|
|
32
|
+
assert.equal(mock('testValue1'), 'fake1');
|
|
33
|
+
assert.equal(mock('testValue2'), 'fake2');
|
|
34
|
+
assert.throws(() => mock(), /Unexpected arguments/);
|
|
35
|
+
assert.throws(() => mock('foo'), /Unexpected arguments/);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('expecting multiple arguments', () => {
|
|
39
|
+
const mock = aMock.mock();
|
|
40
|
+
mock.expect('firstArg1', 'secondArg1').return('fake1');
|
|
41
|
+
mock.expect('firstArg2', 'secondArg2').return('fake2');
|
|
42
|
+
|
|
43
|
+
assert.equal(mock('firstArg1', 'secondArg1'), 'fake1');
|
|
44
|
+
assert.equal(mock('firstArg2', 'secondArg2'), 'fake2');
|
|
45
|
+
assert.throws(() => mock('foo'), /Unexpected arguments/);
|
|
46
|
+
assert.throws(() => mock('foo', 'bar'), /Unexpected arguments/);
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
it('expecting array', () => {
|
|
50
|
+
const mock = aMock.mock();
|
|
51
|
+
mock.expect(['a', 'b']).return('fake1');
|
|
52
|
+
mock.expect(['a', 'b']).return('fake2');
|
|
53
|
+
mock.expect(['c', 'd']).return('fake3');
|
|
54
|
+
|
|
55
|
+
assert.equal(mock(['a', 'b']), 'fake1');
|
|
56
|
+
assert.equal(mock(['a', 'b']), 'fake2');
|
|
57
|
+
assert.equal(mock(['c', 'd']), 'fake3');
|
|
58
|
+
assert.throws(() => mock(['a', 'b']), /Unexpected arguments/);
|
|
59
|
+
assert.throws(() => mock(['foo', 'bar']), /Unexpected arguments/);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
it('expecting struct', () => {
|
|
63
|
+
const mock = aMock.mock();
|
|
64
|
+
const obj = {};
|
|
65
|
+
mock.expect({ a: 1 }).return('fake1');
|
|
66
|
+
mock.expect({ a: 2 }).return('fake2');
|
|
67
|
+
mock.expect({ a: 2, b: { c: 'foo', d: ['me', 'too'] } }).return('fake3');
|
|
68
|
+
mock.expect(obj).return('fake4');
|
|
69
|
+
mock.expect({}).return('will never happen');
|
|
70
|
+
|
|
71
|
+
assert.equal(mock({ a: 1 }), 'fake1');
|
|
72
|
+
assert.equal(mock({ a: 2 }), 'fake2');
|
|
73
|
+
assert.equal(mock({ a: 2, b: { c: 'foo', d: ['me', 'too'] } }), 'fake3');
|
|
74
|
+
assert.equal(mock(obj), 'fake4');
|
|
75
|
+
assert.throws(() => mock({}), /Unexpected arguments/);
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it('repeats', () => {
|
|
79
|
+
const mock = aMock.mock();
|
|
80
|
+
mock.expect().return('fake').repeat(2);
|
|
81
|
+
|
|
82
|
+
assert.equal(mock(), 'fake');
|
|
83
|
+
assert.equal(mock(), 'fake');
|
|
84
|
+
assert.throws(() => mock(), /Unexpected arguments/);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it('repeatAny', () => {
|
|
88
|
+
const mock = aMock.mock();
|
|
89
|
+
mock.expect().return('fake').repeatAny();
|
|
90
|
+
|
|
91
|
+
assert.equal(mock(), 'fake');
|
|
92
|
+
assert.equal(mock(), 'fake');
|
|
93
|
+
assert.equal(mock(), 'fake');
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
it('ignoring a single argument', () => {
|
|
97
|
+
const mock = aMock.mock();
|
|
98
|
+
mock.ignore().expect('foo').return('fake1');
|
|
99
|
+
|
|
100
|
+
assert.equal(mock('ignore me', 'foo'), 'fake1');
|
|
101
|
+
assert.throws(() => mock(), /Unexpected arguments/);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
it('ignoring all arguments', () => {
|
|
105
|
+
const mock = aMock.mock();
|
|
106
|
+
mock.ignoreAll().return('fake1');
|
|
107
|
+
|
|
108
|
+
assert.equal(mock('someRandomValue', 'whatever'), 'fake1');
|
|
109
|
+
assert.throws(() => mock(), /Unexpected arguments/);
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
it('throwing exceptions', () => {
|
|
113
|
+
const mock = aMock.mock();
|
|
114
|
+
const error = new Error('invalid operation');
|
|
115
|
+
mock.expect().throw(error);
|
|
116
|
+
mock.expect().return('fake');
|
|
117
|
+
|
|
118
|
+
assert.throws(() => mock(), /invalid operation/);
|
|
119
|
+
assert.equal(mock(), 'fake');
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
it('intercepting whenCalled', () => {
|
|
123
|
+
const mock = aMock.mock();
|
|
124
|
+
let calledArg;
|
|
125
|
+
mock.expect('testValue').whenCalled(function (arg) {
|
|
126
|
+
calledArg = arg;
|
|
127
|
+
}).return('fake1');
|
|
128
|
+
|
|
129
|
+
assert.equal(mock('testValue'), 'fake1');
|
|
130
|
+
assert.equal(calledArg, 'testValue');
|
|
131
|
+
assert.throws(() => mock(), /Unexpected arguments/);
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
it('verify (fail)', () => {
|
|
135
|
+
const mock = aMock.mock();
|
|
136
|
+
mock.expect('testValue1').return('fake1');
|
|
137
|
+
mock.expect('testValue2').return('fake2');
|
|
138
|
+
|
|
139
|
+
assert.equal(mock('testValue1'), 'fake1');
|
|
140
|
+
assert.throws(() => mock.verify(), /mock has 1 pending functions/);
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
it('verify (success)', () => {
|
|
144
|
+
const mock = aMock.mock();
|
|
145
|
+
mock.expect('testValue1').return('fake1');
|
|
146
|
+
mock.expect('testValue2').return('fake2');
|
|
147
|
+
|
|
148
|
+
assert.equal(mock('testValue1'), 'fake1');
|
|
149
|
+
assert.equal(mock('testValue2'), 'fake2');
|
|
150
|
+
assert.equal(mock.verify(), true);
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
it('returning void (compact syntax)', () => {
|
|
154
|
+
const mock = aMock.mock();
|
|
155
|
+
mock.expect('testValue1');
|
|
156
|
+
mock.expect('testValue2').repeat(2);
|
|
157
|
+
|
|
158
|
+
assert.equal(mock('testValue1'), undefined);
|
|
159
|
+
assert.equal(mock('testValue2'), undefined);
|
|
160
|
+
assert.equal(mock('testValue2'), undefined);
|
|
161
|
+
assert.equal(mock.verify(), true);
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
it('reset mock', () => {
|
|
165
|
+
let original = function () {
|
|
166
|
+
return 'realValue';
|
|
167
|
+
};
|
|
168
|
+
|
|
169
|
+
const mock = aMock.mock(original);
|
|
170
|
+
original = mock;
|
|
171
|
+
mock.expect().return('fake');
|
|
172
|
+
mock.reset();
|
|
173
|
+
|
|
174
|
+
assert.equal(original(), 'realValue');
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
it('returning resolved promise', () => {
|
|
178
|
+
const mock = aMock.mock();
|
|
179
|
+
mock.expect('foo').resolve('fake');
|
|
180
|
+
|
|
181
|
+
return mock('foo').then(function (returned) {
|
|
182
|
+
assert.equal(returned, 'fake');
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
it('returning rejected promise', () => {
|
|
187
|
+
const mock = aMock.mock();
|
|
188
|
+
mock.expect('foo').reject('fake');
|
|
189
|
+
|
|
190
|
+
return mock('foo').then(
|
|
191
|
+
function () {
|
|
192
|
+
assert.fail('expected rejection');
|
|
193
|
+
},
|
|
194
|
+
function (returned) {
|
|
195
|
+
assert.equal(returned, 'fake');
|
|
196
|
+
}
|
|
197
|
+
);
|
|
198
|
+
});
|
|
199
|
+
});
|
package/requireMockSpec/test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var newMock = require('../partialMock/simple/newMock');
|
|
4
4
|
var expectRequire = require('../partialMock/simple/expectRequire');
|
|
5
5
|
|
|
@@ -11,7 +11,6 @@ expectRequire('./mock').return(newMockMock);
|
|
|
11
11
|
expectRequire('./expectRequire').return(expectRequireMock);
|
|
12
12
|
|
|
13
13
|
(function() {
|
|
14
|
-
console.log('newRequireMock');
|
|
15
14
|
var didExpectRequireReturnMock = false;
|
|
16
15
|
var mock = {};
|
|
17
16
|
var moduleName = {};
|
package/strictMockSpec/test.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var assert = require('assert');
|
|
2
|
-
var test = require('
|
|
2
|
+
var test = require('node:test');
|
|
3
3
|
var expectRequire = require('../partialMock/simple/expectRequire');
|
|
4
4
|
var newMockCore = require('../partialMock/simple/newPartialMock');
|
|
5
5
|
|
|
@@ -16,7 +16,6 @@ expectRequire('./partialMock').return(newPartialMock);
|
|
|
16
16
|
expectRequire('./mock/throwUnexpectedArguments').return(throwUnexpectedArguments);
|
|
17
17
|
|
|
18
18
|
(function(){
|
|
19
|
-
console.log('newMock');
|
|
20
19
|
var partialMock = {};
|
|
21
20
|
newPartialMock.expect(throwUnexpectedArguments).return(partialMock);
|
|
22
21
|
var returned = require('../strictMock')();
|
package/util.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
function isDate(x) {
|
|
2
|
-
return Object.prototype.toString.call(x) === '[object Date]';
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
module.exports = {
|
|
6
|
-
isDate: isDate
|
|
7
|
-
};
|
|
1
|
+
function isDate(x) {
|
|
2
|
+
return Object.prototype.toString.call(x) === '[object Date]';
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
module.exports = {
|
|
6
|
+
isDate: isDate
|
|
7
|
+
};
|
package/test.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
var red, green, reset;
|
|
2
|
-
red = '\u001b[31m';
|
|
3
|
-
green = '\u001b[32m';
|
|
4
|
-
reset = '\u001b[0m';
|
|
5
|
-
|
|
6
|
-
function test(message, fn) {
|
|
7
|
-
try {
|
|
8
|
-
fn();
|
|
9
|
-
console.log(green + ' OK ' + reset + message);
|
|
10
|
-
}
|
|
11
|
-
catch(err) {
|
|
12
|
-
console.log(red + ' FAIL ' + reset + message);
|
|
13
|
-
console.log(err);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
module.exports = test;
|