Пересмешивая экземпляры класса контекста из app.ts - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь экспортировать экземпляр класса соединения с базой данных из app.ts. Вот мои app.ts

export default async function serverInit() {
    try {
        await cloudant.init();
        log.info("Initiated database connection");
        //if the server is already listening in the test env, do not try to reassign port
        if (process.env.NODE_ENV !== "test") {
            httpConfigure(app, config);
        }
    } catch (err) {
        log.error("There was an error initializing the sever " + err);
    }
}
serverInit();
exports.app = app;
exports.cloudant = cloudant;'''

Теперь я использую этот cloudant - это инициированный экземпляр класса моей оболочки базы данных, который я хочу использовать через приложение. Я пытаюсь смоделировать это в тестовом файле одного из моих сервисов следующим образом

jest.mock("../../../app/app", () => {
    return jest.fn().mockImplementation(() => {
        return {
            serverInit: () => {},
            app: () => {},
            cloudant: () => {
                return jest.fn().mockImplementation(() => {
                    return {
                        init: () => {},
                        close: () => {},
                        insertRecord: () => {}
                    };
                });
            }
        };
    });
});

Но он возвращает ошибку: insertRecord не определен, может кто-нибудь помочь с тем, как смоделировать экземпляр класса "cloudant" из приложения .ts.

...