UNPKG

unwire

Version:

Dependency injection with 'require()'

39 lines 1.39 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ava_1 = __importDefault(require("ava")); const test = ava_1.default; const { mock, replace, flush } = require('./index'); const MOCK_FS = () => ({ readFileSync: () => 'some content' }); test('should fail by default', t => { flush('./testHelpers/main'); const main = require('./testHelpers/main'); // By default, main() should throw an error t.throws(main, /no such file or directory/); }); test('should mock fs in ./testHelpers/main', t => { // Mock readfile // https://www.npmjs.org/package/rewire => details on how to use rewire mock('fs', MOCK_FS); // Load main // note that it now uses the rewired version of readFile flush('./testHelpers/main'); const main = require('./testHelpers/main'); t.is(main(), 'some content'); }); test('should mock everytime', t => { const a = mock('fs', MOCK_FS); const b = mock('fs', MOCK_FS); t.not(a, b); }); test('should replace a files contents', t => { const value = { container: 'container' }; replace('./testHelpers/empty', value); t.is(require('./testHelpers/empty'), value); flush('./testHelpers/empty'); }); //# sourceMappingURL=index.spec.js.map