"it" в mocha не запускается при использовании await.
Я использую функции для асинхронного чтения файлов и, основываясь на возвращаемом значении, запускаю несколько циклов для обработки моего теста.Я также использую одни и те же функции чтения файлов несколько раз в цикле.Мне нужно использовать await, чтобы получить разрешенное значение из этой функции.Если я удаляю ожидание, тогда «оно» запускается, но моя функция остается нерешенной.
const subList1 = [
{name: 'value1', info: 'value1'},
{name: 'value2', info: 'value2'},
{name: 'value3', info: 'value3'},
]
const subList2 = [
{name: 'value1', info: 'value1'},
{name: 'value2', info: 'value2'},
{name: 'value3', info: 'value3'},
]
const subList3 = [
{name: 'value1', info: 'value1'},
{name: 'value2', info: 'value2'},
{name: 'value3', info: 'value3'},
]
const mainList = [
subList1, subList2, subList3,
]
function getList() {
return mainList;
}
describe('Test', async function () {
const list = await getList();
list.forEach(mainListItem => {
describe('Main Test', function () {
mainListItem.forEach(subListItem => {
describe(subListItem.name, function () {
let valueInCaps;
const name = subListItem.name;
console.log(`name: ${JSON.stringify(name)}`);
before(function () {
valueInCaps = subListItem.info.toUpperCase();
})
it(name, function () {
console.log(valueInCaps);
})
})
})
});
});
})
Ожидается:
name: "value1"
name: "value2"
name: "value3"
name: "value1"
name: "value2"
name: "value3"
name: "value1"
name: "value2"
name: "value3"
Test
Main Test
value1
VALUE1
√ value1
value2
VALUE2
√ value2
value3
VALUE3
√ value3
Main Test
value1
VALUE1
√ value1
value2
VALUE2
√ value2
value3
VALUE3
√ value3
Main Test
value1
VALUE1
√ value1
value2
VALUE2
√ value2
value3
VALUE3
√ value3
Фактически:
name: "value1"
name: "value2"
name: "value3"
name: "value1"
name: "value2"
name: "value3"
name: "value1"
name: "value2"
name: "value3"