Динамически загружать модуль nodejs с имитацией файловой системы в модульных тестах jest? - PullRequest
0 голосов
/ 20 июня 2020

Ну, я пытаюсь провести модульное тестирование скрипта загрузки модуля. Частично это, конечно, создание макетов для скриптов. Для этого используется библиотека mock-fs.

import mock = require("mock-fs");
describe("getFileConfig", function () {

    beforeEach(() => {
        jest.resetModules();
    });
    afterEach(() => {
        mock.restore();
    });

    it("should read and parse .js from ./config", async () => {
        const expected = {
            abc: 1,
            fun: function() {return true;}
        };
        mock({config: {"myCfg.js": "module.exports = {abc: 1, fun: function(){return true;}}"}});
        const test = require("./config/myCfg.js");
        expect(test.abc).toEqual(1);
    });
});

Я "думаю" это должно работать? - mock создает локальную копию файловой системы, верно?

Однако, когда я тестирую выше, возникает следующая ошибка:

Error: Cannot find module './config/myCfg.js' from 'test/loader.test.ts'

Это означает, что загрузчик модуля not с использованием фиктивной файловой системы? Как заставить его использовать фальшивую файловую систему?

...