UNPKG

2.1 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('ext', { mocked: true });
58
59 var ext = require('ext');
60 assert.equal(ext.mocked, true);
61})();
62
63(function shouldRequireMockedLib() {
64 mock('fs', 'path');
65
66 assert.equal(require('fs'), require('path'));
67 mock.stop('fs');
68
69 mock('./exported-fn', './exported-obj');
70 assert.equal(require('./exported-fn'), require('./exported-obj'));
71 mock.stop('./exported-fn');
72})();
73
74(function mocksShouldCascade() {
75 mock('path', { mocked: true });
76 mock('fs', 'path');
77
78 var fs = require('fs');
79 assert.equal(fs.mocked, true);
80 mock.stop('fs');
81 mock.stop('path');
82})();
83
84(function mocksShouldNeverRequireTheOriginal() {
85 mock('./throw-exception', {});
86 require('./throw-exception');
87 mock.stop('./throw-exception');
88})();
89
90(function mocksShouldWorkWhenRequiredFromOtherFile() {
91 mock('./throw-exception', {});
92 require('./throw-exception-runner');
93 mock.stop('./throw-exception');
94})();
95
96console.log('All tests pass!');