У меня есть много асинхронных функций, где я импортирую json из файла и затем устанавливаю поля.У меня есть ожидание для импорта JSON.Ранее он выполнялся последовательно, ожидая JSON, а затем манипулируя данными.Раньше я использовал Mocha и недавно начал переходить на Jest, когда все мои тесты и функции перестали работать.
Я не уверен, правильно ли я понимаю асинхронные функции.Но раньше это работало нормально, а теперь уже нет.Ниже приведен пример:
async build_transaction_request({reference=util.id_generator(), type="XYZ", amount=25, currency="USD", timestamp=util.timestamp_millis()}={}){
let transactions = await config_util.get_payload("transactions")
let x_transaction = transactions.xTransaction
x_transaction.reference = reference
x_transaction.type = type
x_transaction.amount = amount
x_transaction.currency = currency
x_transaction.timestamp = timestamp
return x_transaction
}
Я получаю эту ошибку:
TypeError: Невозможно установить свойство 'reference' из неопределенного
Ниже приведеныдве другие функции:
async load_data(file_path) {
await delete require.cache[require.resolve(file_path)]
let data = await require(file_path);
return data
}
async get_payload(file_name) {
let payload = await this.load_data(this.root_dir + '/resources/payload/' + file_name + ".json")
return payload
}
Ниже приведен код из моего теста, который вызывает функцию build_transaction_request:
test('Test xyz returns 201', async() => {
//......some code.....
var[instruction, x_transaction, token] = await Promise.all([
helper.build_instruction_request({
type: "CURRENCY",
value: value,
rate: rate
}),
helper.build_transaction_request({
amount: amount
}),
helper.build_token_request(token_id)
]);
});