UNPKG

2.14 kBJavaScriptView Raw
1var assert = require('assert')
2 , mock = require('../index')
3 ;
4
5(function shouldMockAndUnmock() {
6 mock('./exported-fn', function() {
7 return 'mocked fn';
8 });
9
10 mock.stop('./exported-fn');
11
12 var fn = require('./exported-fn');
13 assert.equal(fn(), 'exported function');
14})();
15
16(function shouldMockRequiredFn() {
17 mock('./exported-fn', function() {
18 return 'mocked fn';
19 });
20
21 var fn = require('./exported-fn');
22 assert.equal(fn(), 'mocked fn');
23
24 mock.stop('./exported-fn');
25
26 fn = require('./exported-fn');
27 assert.equal(fn(), 'exported function');
28})();
29
30(function shouldMockRequiredObj() {
31 mock('./exported-obj', {
32 mocked: true,
33 fn: function() {
34 return 'mocked obj';
35 }
36 });
37
38 var obj = require('./exported-obj');
39 assert.equal(obj.fn(), 'mocked obj');
40 assert.equal(obj.mocked, true);
41
42 mock.stop('./exported-obj');
43
44 obj = require('./exported-obj');
45 assert.equal(obj.fn(), 'exported object');
46 assert.equal(obj.mocked, false);
47})();
48
49(function shouldMockStandardLibs() {
50 mock('fs', { mocked: true });
51
52 var fs = require('fs');
53 assert.equal(fs.mocked, true);
54})();
55
56(function shouldMockExternalLibs() {
57 mock('caller-id', { mocked: true });
58
59 var callerId = require('caller-id');
60 assert.equal(callerId.mocked, true);
61 mock.stop('caller-id');
62})();
63
64(function shouldRequireMockedLib() {
65 mock('fs', 'path');
66
67 assert.equal(require('fs'), require('path'));
68 mock.stop('fs');
69
70 mock('./exported-fn', './exported-obj');
71 assert.equal(require('./exported-fn'), require('./exported-obj'));
72 mock.stop('./exported-fn');
73})();
74
75(function mocksShouldCascade() {
76 mock('path', { mocked: true });
77 mock('fs', 'path');
78
79 var fs = require('fs');
80 assert.equal(fs.mocked, true);
81 mock.stop('fs');
82 mock.stop('path');
83})();
84
85(function mocksShouldNeverRequireTheOriginal() {
86 mock('./throw-exception', {});
87 require('./throw-exception');
88 mock.stop('./throw-exception');
89})();
90
91(function mocksShouldWorkWhenRequiredFromOtherFile() {
92 mock('./throw-exception', {});
93 require('./throw-exception-runner');
94 mock.stop('./throw-exception');
95})();
96
97console.log('All tests pass!');