В конце потребительского теста мне нужно сделать два шага:
- доработать макет сервера
- опубликуйте договор брокеру.
Сначала я публиковал до доработки, вот так:
var opts = {
//broker info
}
pact_node.publishPacts(opts).then(() => {
provider.finalize()
}).catch(() => {
console.error("Could not publish pact!")
provider.finalize()
})
Что я понял по этому поводу, так это то, что finalize()
- это то место, где записывается файл пакта. Поэтому, если я делаю что-то в этом порядке, при первом запуске теста ничего не публикуется, и каждый раз я публикую версию контракта из предыдущего запуска. Итак, я попытался изменить порядок, чтобы сначала доработать макет сервера, а затем опубликовать:
provider.finalize().then(() => {
console.log("Publishing pact to broker")
pact_node.publishPacts(opts)
}).catch(() => {
console.error("Could not finalize provider!")
})
Но при этом ни блок then
, ни блок catch
никогда не выполняются. Я не получаю сообщений, выводимых на консоль.
Что здесь происходит? В каком порядке я должен вызывать эти функции и почему второй порядок не работает?