diff options
Diffstat (limited to 'testLib')
-rw-r--r-- | testLib/constModule.js | 13 | ||||
-rw-r--r-- | testLib/sharedTestCases.js | 24 | ||||
-rw-r--r-- | testLib/someOtherModule.js | 3 | ||||
-rw-r--r-- | testLib/throwError.js | 5 |
4 files changed, 41 insertions, 4 deletions
diff --git a/testLib/constModule.js b/testLib/constModule.js new file mode 100644 index 0000000..77396d9 --- /dev/null +++ b/testLib/constModule.js @@ -0,0 +1,13 @@ +const someOtherModule = require("./someOtherModule"); +const language = "nl"; + +exports.getLang = () => { + return language; +}; + +exports.getOtherModuleName = () => { + return someOtherModule.name; +}; + +exports.filename = __filename; +exports.dirname = __dirname; diff --git a/testLib/sharedTestCases.js b/testLib/sharedTestCases.js index 54e4218..b6caf6a 100644 --- a/testLib/sharedTestCases.js +++ b/testLib/sharedTestCases.js @@ -17,7 +17,7 @@ function checkForTypeError(err) { expect(err.constructor).to.be(TypeError); } -describe("rewire " + (typeof testEnv === "undefined"? "(node)": "(" + testEnv + ")"), function () { +module.exports = function () { it("should work like require()", function () { rewire("./moduleA.js").getFilename(); @@ -265,7 +265,7 @@ describe("rewire " + (typeof testEnv === "undefined"? "(node)": "(" + testEnv + throwError(); } catch (err) { if (err.stack) { - expect(err.stack.split("\n")[1]).to.match(/:2:11/); + expect(err.stack.split("\n")[1]).to.match(/:7:11/); } } }); @@ -372,4 +372,22 @@ describe("rewire " + (typeof testEnv === "undefined"? "(node)": "(" + testEnv + revert(); }); -}); + it("should be possible to mock a set a const variable using __set__ syntax", function() { + var constModule = rewire("./constModule"); + + constModule.__set__("language", "de"); + constModule.__set__("someOtherModule", { + name: "differentModule" + }); + expect(constModule.getLang()).to.equal("de"); + expect(constModule.getOtherModuleName()).to.equal("differentModule"); + }) + + it("should have correct __filename and __dirname when mocked using convertConst", function() { + var constModule = rewire("./constModule"); + + expect(constModule.filename).to.equal(require("./constModule").filename); + expect(constModule.dirname).to.equal(require("./constModule").dirname); + }); + +}; diff --git a/testLib/someOtherModule.js b/testLib/someOtherModule.js index da38f4c..fe6bbd7 100644 --- a/testLib/someOtherModule.js +++ b/testLib/someOtherModule.js @@ -3,4 +3,5 @@ __filename = "/test/testModules/someOtherModule.js"; exports.fs = {}; -exports.filename = __filename;
\ No newline at end of file +exports.filename = __filename; +exports.name = "somOtherModule"; diff --git a/testLib/throwError.js b/testLib/throwError.js index 9bdf68b..ffb6a71 100644 --- a/testLib/throwError.js +++ b/testLib/throwError.js @@ -1,3 +1,8 @@ +// Using const here because we know that Babel will transform that part +const test = 1; + module.exports = function () { + let test = 1; + throw new Error(); }; |