Договор: опубликовать договор с брокером до или после завершения

В конце моего потребительского теста мне нужно сделать 2 шага:

  1. доработать макет сервера
  2. опубликовать договор с брокером.

Сначала я публиковал перед финализацией, вот так:

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 блок когда-либо исполняется. Я не получаю никаких сообщений на консоль.

Что здесь происходит? В каком порядке я должен вызывать эти функции, и почему второй порядок не работает?

1 ответ

Решение

Публикация пактов должна быть обязательно завершена после доработки.

Я бы порекомендовал вам сделать это в отдельной задаче, а не в том же коде, что и тесты, как это следует делать только с помощью CI, а не с вашей локальной машины.

Другие вопросы по тегам