Я спрашиваю об этом после долгих исследований
У меня есть эти файлы
// connection.js
const mysql = require('mysql');
module.exports = mysql.getConnection();
// a.js
const connection = require('./connection');
function doQuery() {
const q = 'select * from table';
connection.query(q, (err, res) => {
... do some stuff
})
}
module.exports = doQuery;
Когда мне нужно выполнить тест с шуткой (удаляя ненужные вещи, чтобы лучше читать)
// test.js
const jest = require('jest');
const a = require('./a.js');
const connection = {
query: (query, cb) => cb('error', null),
};
jest.mock('./connection.js', () => connection);
test('testing something', () => {
expect(a.doQuery).to.be.true //this is just an example
});
Я получаю следующую ошибку
The module factory of `jest.mock()` is not allowed to reference any out-of-scope variables.
Invalid variable access: connection
Я пытался переместить файлы в той же папке, с относительными путями, абсолютными путями, перемещением порядка импорта, и я действительно не могу получить это.
Я действительно не знаю, как это исправить, также я перехожу с прокси-сервера на шутку, поэтому я делаю это и не могу использовать проксиквайр больше.