У меня есть тест, который выполняет вызов API, создает массив строк, а затем перебирает их внутри блока it
, используя Jest test.each
global
describe('Something fancy', () => {
let strings;
beforeAll(async (done) => {
strings = await getStrings() // returns an array (e.g. ['foo', 'bar', 'baz']);
done(); // as per https://jestjs.io/docs/en/asynchronous#callbacks
});
test.each(strings)('string %s here', async (string) => {
console.log(string); // undefined
console.log(strings); // undefined
};
};
по какой-то причине test.each
работает синхронно и «не ждет» разрешения getStrings
, тогда как, если я превращу test.each
в обычный it('tests something', () => { console.log(strings) });
, строки будут зарегистрированы, как и ожидалось:
it('tests something', async () => {
console.log(strings); // ['foo', 'bar', 'baz']
})
Почему это происходит и есть ли способ обойти это?