как обращаться к функции при модульном тестировании с помощью NodeJS / Mocha - PullRequest
0 голосов
/ 19 июня 2020
• 1000
ReferenceError: main is not defined

У меня один индекс. js с:

async function main() {
    function comparer(otherArray) {
        return function (current) {
            return otherArray.filter(function (other) {
                return other.prm === current.prm && other.conso_prod === current.conso_prod
            }).length === 0;
        }
    }
}

module.exports = main();

и в моем тестовом. js файле, у меня есть:

const {expect} = require('chai');

describe('Sum numbers', () => {
    it('Compare 2 existing array', () => {
        const meters = []
        const perimeter = []
        const onlyInMeters = meters.filter(main.comparer(perimeter));
        expect(onlyInMeters).to.equal([]);
    });
});

Но когда Ссылаюсь на main.comparer, не могу найти:

ReferenceError: main is not defined

Что я забыл? Извини, я NodeJS нуб!

1 Ответ

2 голосов
/ 19 июня 2020

Похоже, вы не импортировали файл index.js в файл test.js. Вы также возвращаете заметку из основной функции.

Кроме того, почему вы экспортируете это как module.exports = main(); Вместо этого вы можете сделать это:

// index.js
module.exports = {
  comparer: (otherArray) => { ... }
}

// test.js
cosnt main = require('PATH_OF_index.js');
main.comparer();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...