Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[V3] Provider Verification - Consumer Version Tags not working #713

Closed
5 tasks done
Lyr-7D1h opened this issue Jul 19, 2021 · 4 comments
Closed
5 tasks done

[V3] Provider Verification - Consumer Version Tags not working #713

Lyr-7D1h opened this issue Jul 19, 2021 · 4 comments
Labels
bug Indicates an unexpected problem or unintended behavior

Comments

@Lyr-7D1h
Copy link
Contributor

Software versions

Please provide at least OS and version of pact-js

  • OS: Arch Linux 5.12.15-zen1-1-zen
  • Consumer Pact library: _e.g. 10.0.0-beta.43
  • Provider Pact library: 10.0.0-beta.43
  • Node Version: v14.17.3

Issue Checklist

Please confirm the following:

  • I have upgraded to the latest
  • I have the read the FAQs in the Readme
  • I have triple checked, that there are no unhandled promises in my code and have read the section on intermittent test failures
  • I have set my log level to debug and attached a log file showing the complete request/response cycle
  • For bonus points and virtual high fives, I have created a reproduceable git repository (see below) to illustrate the problem

Expected behaviour

When consumerVersionTags or consumerVersionSelectors in VerifierV3Options is filled in with right existing tags it should only very the Pacticipants with that tag.

Actual behaviour

It verifies all Pacticipants with the latest version, ignoring tags.

Steps to reproduce

Have a Pacticipant with multiple pacts with tags. Try to verify a pact that is not that latest version.

Relevant log files

[lyr@home] dpg/recommendations-widget-gateway master* $ LOG_LEVEL=debug npm run test:single test/provider.test.ts

> recommendation-widget@1.0.0 test:single /home/lyr/p/dpg/recommendations-widget-gateway
> tap --ts --no-coverage "test/provider.test.ts"

test/provider.test.ts 1> [2021-07-19T12:34:29Z DEBUG pact_js_v3] Initialising Pact native library version 0.0.6
test/provider.test.ts 1> [2021-07-19T12:34:39Z DEBUG pact_js_v3::verify] pacts = [BrokerWithDynamicConfiguration { provider_name: "Recommendations Gateway", broker_url: "https://npa.pactflow.io", enable_pending: false, include_wip_pacts_since: None, provider_tags: [], selectors: [], auth: Some(Token("26VIMcZSTrojCts1q6XL2Q")), links: [] }]
test/provider.test.ts 1> [2021-07-19T12:34:39Z DEBUG pact_js_v3::verify] provider_info = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:39Z DEBUG pact_js_v3::verify] Starting background task
test/provider.test.ts 1> [2021-07-19T12:34:39Z DEBUG pact_js_v3::verify] Done
test/provider.test.ts 1> [2021-07-19T12:34:39Z DEBUG pact_js_v3::verify] Background verification task started
test/provider.test.ts 1> [2021-07-19T12:34:39Z INFO  pact_verifier::pact_broker] Fetching path '/' from pact broker
test/provider.test.ts 1> [2021-07-19T12:34:39Z DEBUG reqwest::connect] starting new connection: https://npa.pactflow.io/
test/provider.test.ts 1> [2021-07-19T12:34:39Z DEBUG rustls::client::hs] No cached session for DNSNameRef("npa.pactflow.io")
test/provider.test.ts 1> [2021-07-19T12:34:39Z DEBUG rustls::client::hs] Not resuming any session
test/provider.test.ts 1> [2021-07-19T12:34:40Z DEBUG rustls::client::hs] ALPN protocol is Some(b"h2")
test/provider.test.ts 1> [2021-07-19T12:34:40Z DEBUG rustls::client::hs] Using ciphersuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
test/provider.test.ts 1> [2021-07-19T12:34:40Z DEBUG rustls::client::hs] Server supports tickets
test/provider.test.ts 1> [2021-07-19T12:34:40Z DEBUG rustls::client::tls12] ECDHE curve is ECParameters { curve_type: NamedCurve, named_group: secp256r1 }
test/provider.test.ts 1> [2021-07-19T12:34:40Z DEBUG rustls::client::tls12] Server DNS name is DNSName("npa.pactflow.io")
test/provider.test.ts 1> [2021-07-19T12:34:40Z DEBUG rustls::client::tls12] Session saved
test/provider.test.ts 1> [2021-07-19T12:34:41Z DEBUG reqwest::async_impl::client] response '200 OK' for https://npa.pactflow.io/
test/provider.test.ts 1> [2021-07-19T12:34:41Z DEBUG pact_verifier::pact_broker] Link URL is templated
test/provider.test.ts 1> [2021-07-19T12:34:41Z DEBUG pact_verifier::pact_broker] templated URL = https://npa.pactflow.io/pacts/provider/{provider}/for-verification
test/provider.test.ts 1> [2021-07-19T12:34:41Z DEBUG pact_verifier::pact_broker] Looking up value for key 'provider'
test/provider.test.ts 1> [2021-07-19T12:34:41Z DEBUG pact_verifier::pact_broker] final URL = https://npa.pactflow.io/pacts/provider/Recommendations Gateway/for-verification
test/provider.test.ts 1> [2021-07-19T12:34:41Z INFO  pact_verifier::pact_broker] Fetching path '/pacts/provider/Recommendations%20Gateway/for-verification' from pact broker
test/provider.test.ts 1> [2021-07-19T12:34:41Z DEBUG reqwest::async_impl::client] response '200 OK' for https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/for-verification
test/provider.test.ts 1> [2021-07-19T12:34:41Z DEBUG pact_verifier::pact_broker] templated URL = https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/for-verification
test/provider.test.ts 1> [2021-07-19T12:34:41Z DEBUG pact_verifier::pact_broker] final URL = https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/for-verification
test/provider.test.ts 1> [2021-07-19T12:34:41Z DEBUG pact_verifier::pact_broker] Sending JSON to https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/for-verification using POST: {"providerVersionTags":[],"includePendingStatus":false,"consumerVersionSelectors":[]}
test/provider.test.ts 1> [2021-07-19T12:34:42Z DEBUG reqwest::async_impl::client] response '200 OK' for https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/for-verification
test/provider.test.ts 1> [2021-07-19T12:34:42Z INFO  pact_verifier::pact_broker] Fetching path '/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/pact-version/efc0322fbfd091410b485854067061c0263c5447/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05MjQ' from pact broker
test/provider.test.ts 1> [2021-07-19T12:34:42Z DEBUG reqwest::async_impl::client] response '200 OK' for https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/pact-version/efc0322fbfd091410b485854067061c0263c5447/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05MjQ
test/provider.test.ts 1> [2021-07-19T12:34:42Z INFO  pact_verifier::pact_broker] Fetching path '/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/pact-version/5e9ae2bdd54245c028a077321e5038e5370b098e/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05Njc' from pact broker
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/pact-version/5e9ae2bdd54245c028a077321e5038e5370b098e/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05Njc
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier::pact_broker] Fetching path '/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/pact-version/fb95770a1954173914f096b795f157b5367b5cc6/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05NTg' from pact broker
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/pact-version/fb95770a1954173914f096b795f157b5367b5cc6/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05NTg
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier] Got pact with links [Link { name: "curies", href: None, templated: false, title: None }, Link { name: "pb:all-pact-versions", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/versions"), templated: false, title: Some("All versions of this pact") }, Link { name: "pb:consumer", href: Some("https://npa.pactflow.io/pacticipants/Recommendation%20Widget%20Web"), templated: false, title: Some("Consumer") }, Link { name: "pb:consumer-version", href: Some("https://npa.pactflow.io/pacticipants/Recommendation%20Widget%20Web/versions/5e04db8dd9aa3b5d8b4c9817ff68b08e50315a01"), templated: false, title: Some("Consumer version") }, Link { name: "pb:consumer-webhooks", href: Some("https://npa.pactflow.io/webhooks/consumer/Recommendations%20Gateway"), templated: false, title: Some("Webhooks for all pacts with provider Recommendations Gateway") }, Link { name: "pb:diff", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/pact-version/efc0322fbfd091410b485854067061c0263c5447/diff/pact-version/{pactVersion}"), templated: true, title: Some("Diff with another specified version of this pact") }, Link { name: "pb:diff-previous-distinct", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/version/5e04db8dd9aa3b5d8b4c9817ff68b08e50315a01/diff/previous-distinct"), templated: false, title: Some("Diff with previous distinct version of this pact") }, Link { name: "pb:latest-pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/latest"), templated: false, title: Some("Latest version of this pact") }, Link { name: "pb:latest-tagged-pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/latest/{tag}"), templated: true, title: Some("Latest tagged version of this pact") }, Link { name: "pb:latest-untagged-pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/latest-untagged"), templated: false, title: Some("Latest untagged version of this pact") }, Link { name: "pb:latest-verification-results", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/pact-version/efc0322fbfd091410b485854067061c0263c5447/verification-results/latest"), templated: false, title: None }, Link { name: "pb:matrix-for-consumer-version", href: Some("https://npa.pactflow.io/matrix?q[][pacticipant]=Recommendation+Widget+Web&q[][version]=5e04db8dd9aa3b5d8b4c9817ff68b08e50315a01&latestby=cvpv"), templated: false, title: Some("View matrix rows for the consumer version to which this pact belongs") }, Link { name: "pb:pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/pact-version/efc0322fbfd091410b485854067061c0263c5447"), templated: false, title: Some("Pact content version permalink") }, Link { name: "pb:pact-webhooks", href: Some("https://npa.pactflow.io/webhooks/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web"), templated: false, title: Some("Webhooks for the pact between Recommendation Widget Web and Recommendations Gateway") }, Link { name: "pb:previous-distinct", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/version/5e04db8dd9aa3b5d8b4c9817ff68b08e50315a01/previous-distinct"), templated: false, title: Some("Previous distinct version of this pact") }, Link { name: "pb:provider", href: Some("https://npa.pactflow.io/pacticipants/Recommendations%20Gateway"), templated: false, title: Some("Provider") }, Link { name: "pb:publish-verification-results", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/pact-version/efc0322fbfd091410b485854067061c0263c5447/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05MjQ/verification-results"), templated: false, title: Some("Publish verification results") }, Link { name: "pb:tag-prod-version", href: Some("https://npa.pactflow.io/pacticipants/Recommendation%20Widget%20Web/versions/5e04db8dd9aa3b5d8b4c9817ff68b08e50315a01/tags/prod"), templated: false, title: Some("PUT to this resource to tag this consumer version as 'production'") }, Link { name: "pb:tag-version", href: Some("https://npa.pactflow.io/pacticipants/Recommendation%20Widget%20Web/versions/5e04db8dd9aa3b5d8b4c9817ff68b08e50315a01/tags/{tag}"), templated: false, title: Some("PUT to this resource to tag this consumer version") }, Link { name: "pb:triggered-webhooks", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/version/5e04db8dd9aa3b5d8b4c9817ff68b08e50315a01/triggered-webhooks"), templated: false, title: Some("Webhooks triggered by the publication of this pact") }, Link { name: "self", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/version/5e04db8dd9aa3b5d8b4c9817ff68b08e50315a01"), templated: false, title: Some("Pact") }]
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier] Got pact with links [Link { name: "curies", href: None, templated: false, title: None }, Link { name: "pb:all-pact-versions", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/versions"), templated: false, title: Some("All versions of this pact") }, Link { name: "pb:consumer", href: Some("https://npa.pactflow.io/pacticipants/Recommendations%20Widget%20Android"), templated: false, title: Some("Consumer") }, Link { name: "pb:consumer-version", href: Some("https://npa.pactflow.io/pacticipants/Recommendations%20Widget%20Android/versions/54051f3"), templated: false, title: Some("Consumer version") }, Link { name: "pb:consumer-webhooks", href: Some("https://npa.pactflow.io/webhooks/consumer/Recommendations%20Gateway"), templated: false, title: Some("Webhooks for all pacts with provider Recommendations Gateway") }, Link { name: "pb:diff", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/pact-version/5e9ae2bdd54245c028a077321e5038e5370b098e/diff/pact-version/{pactVersion}"), templated: true, title: Some("Diff with another specified version of this pact") }, Link { name: "pb:diff-previous-distinct", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/version/54051f3/diff/previous-distinct"), templated: false, title: Some("Diff with previous distinct version of this pact") }, Link { name: "pb:latest-pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/latest"), templated: false, title: Some("Latest version of this pact") }, Link { name: "pb:latest-tagged-pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/latest/{tag}"), templated: true, title: Some("Latest tagged version of this pact") }, Link { name: "pb:latest-untagged-pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/latest-untagged"), templated: false, title: Some("Latest untagged version of this pact") }, Link { name: "pb:latest-verification-results", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/pact-version/5e9ae2bdd54245c028a077321e5038e5370b098e/verification-results/latest"), templated: false, title: None }, Link { name: "pb:matrix-for-consumer-version", href: Some("https://npa.pactflow.io/matrix?q[][pacticipant]=Recommendations+Widget+Android&q[][version]=54051f3&latestby=cvpv"), templated: false, title: Some("View matrix rows for the consumer version to which this pact belongs") }, Link { name: "pb:pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/pact-version/5e9ae2bdd54245c028a077321e5038e5370b098e"), templated: false, title: Some("Pact content version permalink") }, Link { name: "pb:pact-webhooks", href: Some("https://npa.pactflow.io/webhooks/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android"), templated: false, title: Some("Webhooks for the pact between Recommendations Widget Android and Recommendations Gateway") }, Link { name: "pb:previous-distinct", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/version/54051f3/previous-distinct"), templated: false, title: Some("Previous distinct version of this pact") }, Link { name: "pb:provider", href: Some("https://npa.pactflow.io/pacticipants/Recommendations%20Gateway"), templated: false, title: Some("Provider") }, Link { name: "pb:publish-verification-results", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/pact-version/5e9ae2bdd54245c028a077321e5038e5370b098e/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05Njc/verification-results"), templated: false, title: Some("Publish verification results") }, Link { name: "pb:tag-prod-version", href: Some("https://npa.pactflow.io/pacticipants/Recommendations%20Widget%20Android/versions/54051f3/tags/prod"), templated: false, title: Some("PUT to this resource to tag this consumer version as 'production'") }, Link { name: "pb:tag-version", href: Some("https://npa.pactflow.io/pacticipants/Recommendations%20Widget%20Android/versions/54051f3/tags/{tag}"), templated: false, title: Some("PUT to this resource to tag this consumer version") }, Link { name: "pb:triggered-webhooks", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/version/54051f3/triggered-webhooks"), templated: false, title: Some("Webhooks triggered by the publication of this pact") }, Link { name: "self", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/version/54051f3"), templated: false, title: Some("Pact") }]
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier] Got pact with links [Link { name: "curies", href: None, templated: false, title: None }, Link { name: "pb:all-pact-versions", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/versions"), templated: false, title: Some("All versions of this pact") }, Link { name: "pb:consumer", href: Some("https://npa.pactflow.io/pacticipants/Recommendations%20Widget%20iOS"), templated: false, title: Some("Consumer") }, Link { name: "pb:consumer-version", href: Some("https://npa.pactflow.io/pacticipants/Recommendations%20Widget%20iOS/versions/e7272f8"), templated: false, title: Some("Consumer version") }, Link { name: "pb:consumer-webhooks", href: Some("https://npa.pactflow.io/webhooks/consumer/Recommendations%20Gateway"), templated: false, title: Some("Webhooks for all pacts with provider Recommendations Gateway") }, Link { name: "pb:diff", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/pact-version/fb95770a1954173914f096b795f157b5367b5cc6/diff/pact-version/{pactVersion}"), templated: true, title: Some("Diff with another specified version of this pact") }, Link { name: "pb:diff-previous-distinct", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/version/e7272f8/diff/previous-distinct"), templated: false, title: Some("Diff with previous distinct version of this pact") }, Link { name: "pb:latest-pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/latest"), templated: false, title: Some("Latest version of this pact") }, Link { name: "pb:latest-tagged-pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/latest/{tag}"), templated: true, title: Some("Latest tagged version of this pact") }, Link { name: "pb:latest-untagged-pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/latest-untagged"), templated: false, title: Some("Latest untagged version of this pact") }, Link { name: "pb:latest-verification-results", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/pact-version/fb95770a1954173914f096b795f157b5367b5cc6/verification-results/latest"), templated: false, title: None }, Link { name: "pb:matrix-for-consumer-version", href: Some("https://npa.pactflow.io/matrix?q[][pacticipant]=Recommendations+Widget+iOS&q[][version]=e7272f8&latestby=cvpv"), templated: false, title: Some("View matrix rows for the consumer version to which this pact belongs") }, Link { name: "pb:pact-version", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/pact-version/fb95770a1954173914f096b795f157b5367b5cc6"), templated: false, title: Some("Pact content version permalink") }, Link { name: "pb:pact-webhooks", href: Some("https://npa.pactflow.io/webhooks/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS"), templated: false, title: Some("Webhooks for the pact between Recommendations Widget iOS and Recommendations Gateway") }, Link { name: "pb:previous-distinct", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/version/e7272f8/previous-distinct"), templated: false, title: Some("Previous distinct version of this pact") }, Link { name: "pb:provider", href: Some("https://npa.pactflow.io/pacticipants/Recommendations%20Gateway"), templated: false, title: Some("Provider") }, Link { name: "pb:publish-verification-results", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/pact-version/fb95770a1954173914f096b795f157b5367b5cc6/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05NTg/verification-results"), templated: false, title: Some("Publish verification results") }, Link { name: "pb:tag-prod-version", href: Some("https://npa.pactflow.io/pacticipants/Recommendations%20Widget%20iOS/versions/e7272f8/tags/prod"), templated: false, title: Some("PUT to this resource to tag this consumer version as 'production'") }, Link { name: "pb:tag-version", href: Some("https://npa.pactflow.io/pacticipants/Recommendations%20Widget%20iOS/versions/e7272f8/tags/{tag}"), templated: false, title: Some("PUT to this resource to tag this consumer version") }, Link { name: "pb:triggered-webhooks", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/version/e7272f8/triggered-webhooks"), templated: false, title: Some("Webhooks triggered by the publication of this pact") }, Link { name: "self", href: Some("https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/version/e7272f8"), templated: false, title: Some("Pact") }]
test/provider.test.ts 1> The pact at https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/pact-version/efc0322fbfd091410b485854067061c0263c5447 is being verified because the pact content belongs to the consumer version matching the following criterion:
test/provider.test.ts 1>     * latest version of a consumer that has a pact with Recommendations Gateway (5e04db8dd9aa3b5d8b4c9817ff68b08e50315a01)
test/provider.test.ts 1> Verifying a pact between Recommendation Widget Web and Recommendations Gateway
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Running provider verification for 'a request for a list of brands'
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /brands, query: None, headers: None, body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG rustls::session] Sending warning alert CloseNotify
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/brands
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/brands", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5000", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:43 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"vary": ["accept-encoding"], "content-length": ["5000"], "content-type": ["application/json; charset=utf-8"], "connection": ["close"], "accept-ranges": ["bytes"], "date": ["Mon", "19 Jul 2021 12:34:43 GMT"], "cache-control": ["no-cache"], "x-powered-by": ["Express"]}), body: Present(5000 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"vary": ["accept-encoding"], "content-length": ["5000"], "content-type": ["application/json; charset=utf-8"], "connection": ["close"], "accept-ranges": ["bytes"], "date": ["Mon", "19 Jul 2021 12:34:43 GMT"], "cache-control": ["no-cache"], "x-powered-by": ["Express"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_matching] comparing to expected response: Response ( status: 200, headers: Some({"Content-Type": ["application/json; charset=utf-8"]}), body: Present(100 bytes) )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] expected content type = 'application/json;charset=utf-8', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] Using body matcher for content type 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching::json] compare: Comparing path $
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching::json] compare_maps: Comparing maps at $: {"brands": Array([Object({"id": String("ad"), "image": Object({"src": String("https://i.imgur.com/PeRjdQt.png")}), "text": String("Algemeen Dagblad")})])} -> {"errorMessage": String("Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\nRequire stack:\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), "errorType": String("Error"), "stackTrace": Array([String("Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'"), String("Require stack:"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), String("at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)"), String("at Function.resolve (internal/modules/cjs/helpers.js:98:19)"), String("at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)"), String("at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)"), String("at runMicrotasks (<anonymous>)"), String("at processTicksAndRejections (internal/process/task_queues.js:95:5)"), String("at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)"), String("at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)"), String("at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)"), String("at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)"), String("at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)"), String("at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)")])}
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Running provider verification for 'receiving index request'
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /home, query: None, headers: Some({"unique-id": ["aaaaa"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '404 Not Found' for http://localhost:45533/home
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/home", query: None, fragment: None }, status: 404, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "vary": "origin", "access-control-allow-credentials": "true", "access-control-expose-headers": "WWW-Authenticate,Server-Authorization", "cache-control": "no-cache", "content-length": "260", "date": "Mon, 19 Jul 2021 12:34:43 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier::provider_client] Received response: Response ( status: 404, headers: Some({"vary": ["origin"], "content-length": ["260"], "content-type": ["application/json; charset=utf-8"], "cache-control": ["no-cache"], "date": ["Mon", "19 Jul 2021 12:34:43 GMT"], "connection": ["close"], "x-powered-by": ["Express"], "access-control-allow-credentials": ["true"], "access-control-expose-headers": ["WWW-Authenticate", "Server-Authorization"]}), body: Present(260 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 404, headers: Some({"vary": ["origin"], "content-length": ["260"], "content-type": ["application/json; charset=utf-8"], "cache-control": ["no-cache"], "date": ["Mon", "19 Jul 2021 12:34:43 GMT"], "connection": ["close"], "x-powered-by": ["Express"], "access-control-allow-credentials": ["true"], "access-control-expose-headers": ["WWW-Authenticate", "Server-Authorization"]}), body: Present(b"{\"currentRoute\":\"get - /home\",\"error\":\"Serverless-offline: route not found.\",\"existingRoutes\":[\"get - /allrecommendations\",\"get - /brand/{brand}/swimlanes\",\"get - /brands\",\"get - /index/{brand}\",\"get - /stylesheet\",\"get - /teaser/{teaserId}\"],\"statusCode\":404}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_matching] comparing to expected response: Response ( status: 200, headers: Some({"Content-Type": ["application/hal+json; charset=utf-8"]}), body: Present(109 bytes) )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] expected content type = 'application/hal+json;charset=utf-8', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Running provider state change handler 'Bad Gateway' for 'a request for a list of recommendations'
test/provider.test.ts 1>   Given Bad Gateway
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(52 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:43 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier] State Change: "ProviderState { name: "Bad Gateway", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Running provider verification for 'a request for a list of recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /allrecommendations, query: None, headers: Some({"unique-id": ["aaaaa"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/allrecommendations
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/allrecommendations", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5018", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:43 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"date": ["Mon", "19 Jul 2021 12:34:43 GMT"], "content-type": ["application/json; charset=utf-8"], "accept-ranges": ["bytes"], "x-powered-by": ["Express"], "cache-control": ["no-cache"], "content-length": ["5018"], "vary": ["accept-encoding"], "connection": ["close"]}), body: Present(5018 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"date": ["Mon", "19 Jul 2021 12:34:43 GMT"], "content-type": ["application/json; charset=utf-8"], "accept-ranges": ["bytes"], "x-powered-by": ["Express"], "cache-control": ["no-cache"], "content-length": ["5018"], "vary": ["accept-encoding"], "connection": ["close"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_matching] comparing to expected response: Response ( status: 502, headers: Some({"Content-Type": ["application/json; charset=utf-8"]}), body: Present(98 bytes) )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] expected content type = 'application/json;charset=utf-8', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] Using body matcher for content type 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching::json] compare: Comparing path $
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching::json] compare_maps: Comparing maps at $: {"error": Object({"code": String("BadGateway"), "message": String("Received an invalid response from the upstream server.")})} -> {"errorMessage": String("Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\nRequire stack:\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), "errorType": String("Error"), "stackTrace": Array([String("Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'"), String("Require stack:"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), String("at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)"), String("at Function.resolve (internal/modules/cjs/helpers.js:98:19)"), String("at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)"), String("at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)"), String("at runMicrotasks (<anonymous>)"), String("at processTicksAndRejections (internal/process/task_queues.js:95:5)"), String("at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)"), String("at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)"), String("at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)"), String("at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)"), String("at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)"), String("at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)")])}
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Running provider state change handler 'Bad Gateway' for 'a request for a list of recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(55 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:43 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier] State Change: "ProviderState { name: "Bad Gateway", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Running provider state change handler 'Has Recommendations' for 'a request for a list of recommendations'
test/provider.test.ts 1>   Given Has Recommendations
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(60 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:43 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier] State Change: "ProviderState { name: "Has Recommendations", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Running provider verification for 'a request for a list of recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /allrecommendations, query: None, headers: Some({"unique-id": ["aaaaa"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/allrecommendations
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/allrecommendations", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5018", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:43 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"x-powered-by": ["Express"], "connection": ["close"], "vary": ["accept-encoding"], "content-length": ["5018"], "date": ["Mon", "19 Jul 2021 12:34:43 GMT"], "accept-ranges": ["bytes"], "content-type": ["application/json; charset=utf-8"], "cache-control": ["no-cache"]}), body: Present(5018 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"x-powered-by": ["Express"], "connection": ["close"], "vary": ["accept-encoding"], "content-length": ["5018"], "date": ["Mon", "19 Jul 2021 12:34:43 GMT"], "accept-ranges": ["bytes"], "content-type": ["application/json; charset=utf-8"], "cache-control": ["no-cache"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_matching] comparing to expected response: Response ( status: 200, headers: Some({"Content-Type": ["application/hal+json; charset=utf-8"]}), body: Present(41 bytes) )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] expected content type = 'application/hal+json;charset=utf-8', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Running provider state change handler 'Has Recommendations' for 'a request for a list of recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(63 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:43 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier] State Change: "ProviderState { name: "Has Recommendations", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Running provider state change handler 'Recommendations not found' for 'a request for a list of recommendations'
test/provider.test.ts 1>   Given Recommendations not found
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(66 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:43 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier] State Change: "ProviderState { name: "Recommendations not found", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Running provider verification for 'a request for a list of recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /allrecommendations, query: None, headers: Some({"unique-id": ["aaaaa"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/allrecommendations
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/allrecommendations", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5018", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:43 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"x-powered-by": ["Express"], "connection": ["close"], "cache-control": ["no-cache"], "content-type": ["application/json; charset=utf-8"], "vary": ["accept-encoding"], "date": ["Mon", "19 Jul 2021 12:34:43 GMT"], "content-length": ["5018"], "accept-ranges": ["bytes"]}), body: Present(5018 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"x-powered-by": ["Express"], "connection": ["close"], "cache-control": ["no-cache"], "content-type": ["application/json; charset=utf-8"], "vary": ["accept-encoding"], "date": ["Mon", "19 Jul 2021 12:34:43 GMT"], "content-length": ["5018"], "accept-ranges": ["bytes"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_matching] comparing to expected response: Response ( status: 404, headers: Some({"Content-Type": ["application/json; charset=utf-8"]}), body: Present(78 bytes) )
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] expected content type = 'application/json;charset=utf-8', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching] Using body matcher for content type 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching::json] compare: Comparing path $
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_matching::json] compare_maps: Comparing maps at $: {"error": Object({"code": String("NotFound"), "message": String("The requested resource was not found")})} -> {"errorMessage": String("Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\nRequire stack:\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), "errorType": String("Error"), "stackTrace": Array([String("Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'"), String("Require stack:"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), String("at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)"), String("at Function.resolve (internal/modules/cjs/helpers.js:98:19)"), String("at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)"), String("at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)"), String("at runMicrotasks (<anonymous>)"), String("at processTicksAndRejections (internal/process/task_queues.js:95:5)"), String("at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)"), String("at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)"), String("at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)"), String("at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)"), String("at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)"), String("at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)")])}
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Running provider state change handler 'Recommendations not found' for 'a request for a list of recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(69 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:43 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier] State Change: "ProviderState { name: "Recommendations not found", params: {} }" -> Ok({})
test/provider.test.ts 1>   a request for a list of brands
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 200 (OK)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>         "Content-Type" with value "application/json; charset=utf-8" (OK)
test/provider.test.ts 1>       has a matching body (FAILED)
test/provider.test.ts 1>   receiving index request
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 200 (FAILED)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>         "Content-Type" with value "application/hal+json; charset=utf-8" (FAILED)
test/provider.test.ts 1>       has a matching body (FAILED)
test/provider.test.ts 1>   a request for a list of recommendations
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 502 (FAILED)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>         "Content-Type" with value "application/json; charset=utf-8" (OK)
test/provider.test.ts 1>       has a matching body (FAILED)
test/provider.test.ts 1>   a request for a list of recommendations
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 200 (OK)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>         "Content-Type" with value "application/hal+json; charset=utf-8" (FAILED)
test/provider.test.ts 1>       has a matching body (FAILED)
test/provider.test.ts 1>   a request for a list of recommendations
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 404 (FAILED)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>         "Content-Type" with value "application/json; charset=utf-8" (OK)
test/provider.test.ts 1>       has a matching body (FAILED)
test/provider.test.ts 1> [2021-07-19T12:34:43Z INFO  pact_verifier] Publishing verification results back to the Pact Broker
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier] Publishing a failure result to PactBroker(https://npa.pactflow.io, provider_name='Recommendations Gateway')
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG pact_verifier::pact_broker] Sending JSON to https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/pact-version/efc0322fbfd091410b485854067061c0263c5447/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05MjQ/verification-results using POST: {"providerApplicationVersion":"2c63b615969582952fe0bfd93a24718c0d0f0ebb\n","success":false,"testResults":[{"interactionId":"cc0f17c7f7bb05806c0cbc42a1e3e5930073caa1","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: brands","identifier":"$"}],"success":false},{"interactionId":"0bf88c43a7f9339d519f797489cd4fc94ee6fc7b","mismatches":[{"attribute":"body","description":"Expected body type of 'application/hal+json;charset=utf-8' but received 'application/json;charset=utf-8'","identifier":"$"},{"attribute":"status","description":"expected 200 but was 404"},{"attribute":"header","description":"Mismatch with header 'Content-Type': Expected header 'Content-Type' to have value 'application/hal+json; charset=utf-8' but was 'application/json; charset=utf-8'","identifier":"Content-Type"}],"success":false},{"interactionId":"b96eacb5c5a46c03955f91079e2fe9976c996bd3","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: error","identifier":"$"},{"attribute":"status","description":"expected 502 but was 200"}],"success":false},{"interactionId":"ecfb6f095fa149b08e796be7c4fa6c1e208dd450","mismatches":[{"attribute":"body","description":"Expected body type of 'application/hal+json;charset=utf-8' but received 'application/json;charset=utf-8'","identifier":"$"},{"attribute":"header","description":"Mismatch with header 'Content-Type': Expected header 'Content-Type' to have value 'application/hal+json; charset=utf-8' but was 'application/json; charset=utf-8'","identifier":"Content-Type"}],"success":false},{"interactionId":"c06761fa53f91fc040b16b8a744ca4686b5feba4","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: error","identifier":"$"},{"attribute":"status","description":"expected 404 but was 200"}],"success":false}],"verifiedBy":{"implementation":"Pact-Rust","version":"0.9.4"}}
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG reqwest::connect] starting new connection: https://npa.pactflow.io/
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG rustls::client::hs] No cached session for DNSNameRef("npa.pactflow.io")
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG rustls::client::hs] Not resuming any session
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG rustls::client::hs] ALPN protocol is Some(b"h2")
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG rustls::client::hs] Using ciphersuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG rustls::client::hs] Server supports tickets
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG rustls::client::tls12] ECDHE curve is ECParameters { curve_type: NamedCurve, named_group: secp256r1 }
test/provider.test.ts 1> [2021-07-19T12:34:43Z DEBUG rustls::client::tls12] Server DNS name is DNSName("npa.pactflow.io")
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG rustls::client::tls12] Session saved
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '201 Created' for https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendation%20Widget%20Web/pact-version/efc0322fbfd091410b485854067061c0263c5447/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05MjQ/verification-results
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Results published to Pact Broker
test/provider.test.ts 1> The pact at https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/pact-version/5e9ae2bdd54245c028a077321e5038e5370b098e is being verified because the pact content belongs to the consumer version matching the following criterion:
test/provider.test.ts 1>     * latest version of a consumer that has a pact with Recommendations Gateway (54051f3)
test/provider.test.ts 1> Verifying a pact between Recommendations Widget Android and Recommendations Gateway
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider state change handler 'Bad Gateway' for 'A request to get all the recommendations'
test/provider.test.ts 1>   Given Bad Gateway
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(52 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG rustls::session] Sending warning alert CloseNotify
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier] State Change: "ProviderState { name: "Bad Gateway", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider verification for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /brand/ad/swimlanes, query: None, headers: Some({"Content-Type": ["application/json"], "Authorization": ["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1MTYyMzkwMjIsInVzZXJJZCI6IjNhZmNmN2E0ZmRiODQ0YWViODE3Y2EwYjgzOWIyMTBhIiwiZW1haWwiOiJqb2huLmRvZUBkcGdtZWRpYS5ubCJ9.kMF0ov3m6FMnXjzwnw6NrwZx0mvM-S3R1KWCRuad08U"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/brand/ad/swimlanes
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/brand/ad/swimlanes", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5006", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"cache-control": ["no-cache"], "vary": ["accept-encoding"], "content-type": ["application/json; charset=utf-8"], "accept-ranges": ["bytes"], "connection": ["close"], "date": ["Mon", "19 Jul 2021 12:34:44 GMT"], "content-length": ["5006"], "x-powered-by": ["Express"]}), body: Present(5006 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"cache-control": ["no-cache"], "vary": ["accept-encoding"], "content-type": ["application/json; charset=utf-8"], "accept-ranges": ["bytes"], "connection": ["close"], "date": ["Mon", "19 Jul 2021 12:34:44 GMT"], "content-length": ["5006"], "x-powered-by": ["Express"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/swimlanes'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/swimlanes'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_matching] comparing to expected response: Response ( status: 502, headers: None, body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_matching] expected content type = '*/*', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider state change handler 'Bad Gateway' for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(55 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier] State Change: "ProviderState { name: "Bad Gateway", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider state change handler 'Has Brands' for 'A request to get brands'
test/provider.test.ts 1>   Given Has Brands
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(51 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier] State Change: "ProviderState { name: "Has Brands", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider verification for 'A request to get brands'
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /brands, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/brands
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/brands", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5000", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"content-length": ["5000"], "date": ["Mon", "19 Jul 2021 12:34:44 GMT"], "connection": ["close"], "cache-control": ["no-cache"], "vary": ["accept-encoding"], "x-powered-by": ["Express"], "accept-ranges": ["bytes"], "content-type": ["application/json; charset=utf-8"]}), body: Present(5000 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"content-length": ["5000"], "date": ["Mon", "19 Jul 2021 12:34:44 GMT"], "connection": ["close"], "cache-control": ["no-cache"], "vary": ["accept-encoding"], "x-powered-by": ["Express"], "accept-ranges": ["bytes"], "content-type": ["application/json; charset=utf-8"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_matching] comparing to expected response: Response ( status: 200, headers: Some({"Content-Type": ["application/json"]}), body: Present(94 bytes) )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_matching] expected content type = 'application/json', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_matching] Using body matcher for content type 'application/json'
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_matching::json] compare: Comparing path $
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_matching::json] compare_maps: Comparing maps at $: {"brands": Array([Object({"id": String("ad"), "image": Object({"src": String("https://sample.image.com/")}), "text": String("Algemeen Dagblad")})])} -> {"errorMessage": String("Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\nRequire stack:\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), "errorType": String("Error"), "stackTrace": Array([String("Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'"), String("Require stack:"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), String("at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)"), String("at Function.resolve (internal/modules/cjs/helpers.js:98:19)"), String("at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)"), String("at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)"), String("at runMicrotasks (<anonymous>)"), String("at processTicksAndRejections (internal/process/task_queues.js:95:5)"), String("at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)"), String("at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)"), String("at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)"), String("at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)"), String("at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)"), String("at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)")])}
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider state change handler 'Has Brands' for 'A request to get brands'
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(54 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier] State Change: "ProviderState { name: "Has Brands", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider state change handler 'Has Recommendations' for 'A request to get all the recommendations'
test/provider.test.ts 1>   Given Has Recommendations
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(60 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier] State Change: "ProviderState { name: "Has Recommendations", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider verification for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /brand/ad/swimlanes, query: None, headers: Some({"Authorization": ["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1MTYyMzkwMjIsInVzZXJJZCI6IjNhZmNmN2E0ZmRiODQ0YWViODE3Y2EwYjgzOWIyMTBhIiwiZW1haWwiOiJqb2huLmRvZUBkcGdtZWRpYS5ubCJ9.kMF0ov3m6FMnXjzwnw6NrwZx0mvM-S3R1KWCRuad08U"], "Content-Type": ["application/json"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/brand/ad/swimlanes
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/brand/ad/swimlanes", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5006", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"cache-control": ["no-cache"], "accept-ranges": ["bytes"], "content-length": ["5006"], "date": ["Mon", "19 Jul 2021 12:34:44 GMT"], "x-powered-by": ["Express"], "vary": ["accept-encoding"], "connection": ["close"], "content-type": ["application/json; charset=utf-8"]}), body: Present(5006 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"cache-control": ["no-cache"], "accept-ranges": ["bytes"], "content-length": ["5006"], "date": ["Mon", "19 Jul 2021 12:34:44 GMT"], "x-powered-by": ["Express"], "vary": ["accept-encoding"], "connection": ["close"], "content-type": ["application/json; charset=utf-8"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/swimlanes'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/swimlanes'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_matching] comparing to expected response: Response ( status: 200, headers: Some({"Content-Type": ["application/hal+json"]}), body: Present(257 bytes) )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_matching] expected content type = 'application/hal+json', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider state change handler 'Has Recommendations' for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(63 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier] State Change: "ProviderState { name: "Has Recommendations", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider state change handler 'Recommendations not found' for 'A request to get all the recommendations'
test/provider.test.ts 1>   Given Recommendations not found
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(66 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier] State Change: "ProviderState { name: "Recommendations not found", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider verification for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /brand/ad/swimlanes, query: None, headers: Some({"Authorization": ["Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1MTYyMzkwMjIsInVzZXJJZCI6IjNhZmNmN2E0ZmRiODQ0YWViODE3Y2EwYjgzOWIyMTBhIiwiZW1haWwiOiJqb2huLmRvZUBkcGdtZWRpYS5ubCJ9.kMF0ov3m6FMnXjzwnw6NrwZx0mvM-S3R1KWCRuad08U"], "Content-Type": ["application/json"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/brand/ad/swimlanes
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/brand/ad/swimlanes", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5006", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"accept-ranges": ["bytes"], "content-type": ["application/json; charset=utf-8"], "cache-control": ["no-cache"], "date": ["Mon", "19 Jul 2021 12:34:44 GMT"], "connection": ["close"], "content-length": ["5006"], "x-powered-by": ["Express"], "vary": ["accept-encoding"]}), body: Present(5006 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"accept-ranges": ["bytes"], "content-type": ["application/json; charset=utf-8"], "cache-control": ["no-cache"], "date": ["Mon", "19 Jul 2021 12:34:44 GMT"], "connection": ["close"], "content-length": ["5006"], "x-powered-by": ["Express"], "vary": ["accept-encoding"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/swimlanes'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/swimlanes'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_matching] comparing to expected response: Response ( status: 404, headers: None, body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_matching] expected content type = '*/*', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Running provider state change handler 'Recommendations not found' for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(69 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:44 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier] State Change: "ProviderState { name: "Recommendations not found", params: {} }" -> Ok({})
test/provider.test.ts 1>   A request to get all the recommendations
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 502 (FAILED)
test/provider.test.ts 1>       has a matching body (OK)
test/provider.test.ts 1>   A request to get brands
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 200 (OK)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>         "Content-Type" with value "application/json" (OK)
test/provider.test.ts 1>       has a matching body (FAILED)
test/provider.test.ts 1>   A request to get all the recommendations
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 200 (OK)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>         "Content-Type" with value "application/hal+json" (FAILED)
test/provider.test.ts 1>       has a matching body (FAILED)
test/provider.test.ts 1>   A request to get all the recommendations
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 404 (FAILED)
test/provider.test.ts 1>       has a matching body (OK)
test/provider.test.ts 1> [2021-07-19T12:34:44Z INFO  pact_verifier] Publishing verification results back to the Pact Broker
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier] Publishing a failure result to PactBroker(https://npa.pactflow.io, provider_name='Recommendations Gateway')
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG pact_verifier::pact_broker] Sending JSON to https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/pact-version/5e9ae2bdd54245c028a077321e5038e5370b098e/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05Njc/verification-results using POST: {"providerApplicationVersion":"2c63b615969582952fe0bfd93a24718c0d0f0ebb\n","success":false,"testResults":[{"interactionId":"cc0f17c7f7bb05806c0cbc42a1e3e5930073caa1","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: brands","identifier":"$"}],"success":false},{"interactionId":"0bf88c43a7f9339d519f797489cd4fc94ee6fc7b","mismatches":[{"attribute":"body","description":"Expected body type of 'application/hal+json;charset=utf-8' but received 'application/json;charset=utf-8'","identifier":"$"},{"attribute":"status","description":"expected 200 but was 404"},{"attribute":"header","description":"Mismatch with header 'Content-Type': Expected header 'Content-Type' to have value 'application/hal+json; charset=utf-8' but was 'application/json; charset=utf-8'","identifier":"Content-Type"}],"success":false},{"interactionId":"b96eacb5c5a46c03955f91079e2fe9976c996bd3","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: error","identifier":"$"},{"attribute":"status","description":"expected 502 but was 200"}],"success":false},{"interactionId":"ecfb6f095fa149b08e796be7c4fa6c1e208dd450","mismatches":[{"attribute":"body","description":"Expected body type of 'application/hal+json;charset=utf-8' but received 'application/json;charset=utf-8'","identifier":"$"},{"attribute":"header","description":"Mismatch with header 'Content-Type': Expected header 'Content-Type' to have value 'application/hal+json; charset=utf-8' but was 'application/json; charset=utf-8'","identifier":"Content-Type"}],"success":false},{"interactionId":"c06761fa53f91fc040b16b8a744ca4686b5feba4","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: error","identifier":"$"},{"attribute":"status","description":"expected 404 but was 200"}],"success":false},{"interactionId":"96f8d0e06fb70fb43a24b31182501ed9704f8383","mismatches":[{"attribute":"status","description":"expected 502 but was 200"}],"success":false},{"interactionId":"747e20a54a4ba670bb40d84b80f407faf8367eb6","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: brands","identifier":"$"}],"success":false},{"interactionId":"f20e50ee05b52c05ddbffc483f255846f9c16483","mismatches":[{"attribute":"body","description":"Expected body type of 'application/hal+json' but received 'application/json;charset=utf-8'","identifier":"$"},{"attribute":"header","description":"Mismatch with header 'Content-Type': Expected header 'Content-Type' to have value 'application/hal+json' but was 'application/json; charset=utf-8'","identifier":"Content-Type"}],"success":false},{"interactionId":"4fe5238d0e19efc009f943d230b402bc84b4a1f7","mismatches":[{"attribute":"status","description":"expected 404 but was 200"}],"success":false}],"verifiedBy":{"implementation":"Pact-Rust","version":"0.9.4"}}
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG reqwest::connect] starting new connection: https://npa.pactflow.io/
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG rustls::client::hs] No cached session for DNSNameRef("npa.pactflow.io")
test/provider.test.ts 1> [2021-07-19T12:34:44Z DEBUG rustls::client::hs] Not resuming any session
test/provider.test.ts 1> [2021-07-19T12:34:45Z DEBUG rustls::client::hs] ALPN protocol is Some(b"h2")
test/provider.test.ts 1> [2021-07-19T12:34:45Z DEBUG rustls::client::hs] Using ciphersuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
test/provider.test.ts 1> [2021-07-19T12:34:45Z DEBUG rustls::client::hs] Server supports tickets
test/provider.test.ts 1> [2021-07-19T12:34:45Z DEBUG rustls::client::tls12] ECDHE curve is ECParameters { curve_type: NamedCurve, named_group: secp256r1 }
test/provider.test.ts 1> [2021-07-19T12:34:45Z DEBUG rustls::client::tls12] Server DNS name is DNSName("npa.pactflow.io")
test/provider.test.ts 1> [2021-07-19T12:34:45Z DEBUG rustls::client::tls12] Session saved
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '201 Created' for https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20Android/pact-version/5e9ae2bdd54245c028a077321e5038e5370b098e/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05Njc/verification-results
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Results published to Pact Broker
test/provider.test.ts 1> The pact at https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/pact-version/fb95770a1954173914f096b795f157b5367b5cc6 is being verified because the pact content belongs to the consumer version matching the following criterion:
test/provider.test.ts 1>     * latest version of a consumer that has a pact with Recommendations Gateway (e7272f8)
test/provider.test.ts 1> Verifying a pact between Recommendations Widget iOS and Recommendations Gateway
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Brands not found' for 'A request to get brands'
test/provider.test.ts 1>   Given Brands not found
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(57 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG rustls::session] Sending warning alert CloseNotify
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Brands not found", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider verification for 'A request to get brands'
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /brands, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/brands
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/brands", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5000", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"accept-ranges": ["bytes"], "connection": ["close"], "content-length": ["5000"], "x-powered-by": ["Express"], "vary": ["accept-encoding"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "content-type": ["application/json; charset=utf-8"], "cache-control": ["no-cache"]}), body: Present(5000 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"accept-ranges": ["bytes"], "connection": ["close"], "content-length": ["5000"], "x-powered-by": ["Express"], "vary": ["accept-encoding"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "content-type": ["application/json; charset=utf-8"], "cache-control": ["no-cache"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_matching] comparing to expected response: Response ( status: 404, headers: Some({}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] expected content type = '*/*', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Brands not found' for 'A request to get brands'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(60 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Brands not found", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Something went terribly wrong' for 'A request to get brands'
test/provider.test.ts 1>   Given Something went terribly wrong
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(70 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Something went terribly wrong", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider verification for 'A request to get brands'
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /brands, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/brands
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/brands", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5000", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"x-powered-by": ["Express"], "cache-control": ["no-cache"], "content-length": ["5000"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "connection": ["close"], "content-type": ["application/json; charset=utf-8"], "vary": ["accept-encoding"], "accept-ranges": ["bytes"]}), body: Present(5000 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"x-powered-by": ["Express"], "cache-control": ["no-cache"], "content-length": ["5000"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "connection": ["close"], "content-type": ["application/json; charset=utf-8"], "vary": ["accept-encoding"], "accept-ranges": ["bytes"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_matching] comparing to expected response: Response ( status: 502, headers: Some({}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] expected content type = '*/*', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Something went terribly wrong' for 'A request to get brands'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(73 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Something went terribly wrong", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Has Brands' for 'A request to get brands'
test/provider.test.ts 1>   Given Has Brands
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(51 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Has Brands", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider verification for 'A request to get brands'
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /brands, query: None, headers: None, body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/brands
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/brands", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5000", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"accept-ranges": ["bytes"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "connection": ["close"], "x-powered-by": ["Express"], "content-type": ["application/json; charset=utf-8"], "cache-control": ["no-cache"], "content-length": ["5000"], "vary": ["accept-encoding"]}), body: Present(5000 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"accept-ranges": ["bytes"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "connection": ["close"], "x-powered-by": ["Express"], "content-type": ["application/json; charset=utf-8"], "cache-control": ["no-cache"], "content-length": ["5000"], "vary": ["accept-encoding"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_matching] comparing to expected response: Response ( status: 200, headers: Some({"Content-Type": ["application/json"]}), body: Present(100 bytes) )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] expected content type = 'application/json', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] Using body matcher for content type 'application/json'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching::json] compare: Comparing path $
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching::json] compare_maps: Comparing maps at $: {"brands": Array([Object({"id": String("ad"), "image": Object({"src": String("https://i.imgur.com/PeRjdQt.png")}), "text": String("Algemeen Dagblad")})])} -> {"errorMessage": String("Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'\nRequire stack:\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), "errorType": String("Error"), "stackTrace": Array([String("Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/brands'"), String("Require stack:"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), String("at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)"), String("at Function.resolve (internal/modules/cjs/helpers.js:98:19)"), String("at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)"), String("at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)"), String("at runMicrotasks (<anonymous>)"), String("at processTicksAndRejections (internal/process/task_queues.js:95:5)"), String("at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)"), String("at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)"), String("at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)"), String("at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)"), String("at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)"), String("at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)")])}
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching::json] compare_maps: Matcher is defined for path $
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Has Brands' for 'A request to get brands'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(54 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Has Brands", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Recommendations not found' for 'A request to get all the recommendations'
test/provider.test.ts 1>   Given Recommendations not found
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(66 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Recommendations not found", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider verification for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /allrecommendations, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/allrecommendations
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/allrecommendations", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5018", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"connection": ["close"], "content-length": ["5018"], "cache-control": ["no-cache"], "x-powered-by": ["Express"], "content-type": ["application/json; charset=utf-8"], "accept-ranges": ["bytes"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "vary": ["accept-encoding"]}), body: Present(5018 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"connection": ["close"], "content-length": ["5018"], "cache-control": ["no-cache"], "x-powered-by": ["Express"], "content-type": ["application/json; charset=utf-8"], "accept-ranges": ["bytes"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "vary": ["accept-encoding"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_matching] comparing to expected response: Response ( status: 404, headers: Some({}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] expected content type = '*/*', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Recommendations not found' for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(69 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Recommendations not found", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Something went terribly wrong' for 'A request to get all the recommendations'
test/provider.test.ts 1>   Given Something went terribly wrong
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(70 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Something went terribly wrong", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider verification for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /allrecommendations, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/allrecommendations
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/allrecommendations", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5018", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"cache-control": ["no-cache"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "connection": ["close"], "vary": ["accept-encoding"], "x-powered-by": ["Express"], "content-length": ["5018"], "accept-ranges": ["bytes"], "content-type": ["application/json; charset=utf-8"]}), body: Present(5018 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"cache-control": ["no-cache"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "connection": ["close"], "vary": ["accept-encoding"], "x-powered-by": ["Express"], "content-length": ["5018"], "accept-ranges": ["bytes"], "content-type": ["application/json; charset=utf-8"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_matching] comparing to expected response: Response ( status: 502, headers: Some({}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] expected content type = '*/*', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Something went terribly wrong' for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(73 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Something went terribly wrong", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Has Recommendations' for 'A request to get all the recommendations'
test/provider.test.ts 1>   Given Has Recommendations
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(60 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Has Recommendations", params: {} }" -> Ok({})
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider verification for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Sending request to provider at http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Provider details = ProviderInfo { name: "Recommendations Gateway", protocol: "http", host: "localhost", port: Some(45533), path: "/" }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending request Request ( method: GET, path: /allrecommendations, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Missing )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/allrecommendations
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Received native response: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/allrecommendations", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "cache-control": "no-cache", "content-length": "5018", "vary": "accept-encoding", "accept-ranges": "bytes", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "close"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier::provider_client] Received response: Response ( status: 200, headers: Some({"cache-control": ["no-cache"], "accept-ranges": ["bytes"], "connection": ["close"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "content-type": ["application/json; charset=utf-8"], "content-length": ["5018"], "x-powered-by": ["Express"], "vary": ["accept-encoding"]}), body: Present(5018 bytes, application/json;charset=utf-8) )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] response from call to provider = Response { status: 200, headers: Some({"cache-control": ["no-cache"], "accept-ranges": ["bytes"], "connection": ["close"], "date": ["Mon", "19 Jul 2021 12:34:46 GMT"], "content-type": ["application/json; charset=utf-8"], "content-length": ["5018"], "x-powered-by": ["Express"], "vary": ["accept-encoding"]}), body: Present(b"{\"errorMessage\":\"Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\\nRequire stack:\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"errorType\":\"Error\",\"stackTrace\":[\"Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\",\"Require stack:\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\",\"- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js\",\"at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)\",\"at Function.resolve (internal/modules/cjs/helpers.js:98:19)\",\"at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)\",\"at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)\",\"at runMicrotasks (<anonymous>)\",\"at processTicksAndRejections (internal/process/task_queues.js:95:5)\",\"at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)\",\"at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)\",\"at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)\",\"at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)\",\"at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)\",\"at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)\"]}", Some(ContentType { main_type: "application", sub_type: "json", attributes: {"charset": "utf-8"}, suffix: None })), matching_rules: MatchingRules { rules: {} }, generators: Generators { categories: {} } }
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_matching] comparing to expected response: Response ( status: 200, headers: Some({"Content-Type": ["application/json"]}), body: Present(497 bytes) )
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] expected content type = 'application/json', actual content type = 'application/json;charset=utf-8'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] content type header matcher = 'None'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching] Using body matcher for content type 'application/json'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching::json] compare: Comparing path $
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching::json] compare_maps: Comparing maps at $: {"recommendations": Array([Object({"teasers": Array([Object({"brand": String("ad"), "context": String("eyJyZWNvbW1lbmRhdGlvbklkIjogIjRoM2poNGozMmg0ajMyaDQyM2g0amg0ajMyaGozNDJoIiwic3dpbWxhbmVSYW5rIjogMSwiYXJ0aWNsZVJhbmsiOiAxfQ=="), "hl1": String("Berghuis moet Feyenoord nu op sleeptouw nemen"), "image": Object({"src": String("https://images0.persgroep.net/rcs/B23bZjZ4VBEyQp4x5oo42VF8yWI/diocontent/158053712/_fitwidth/694/?appId=21791a8992982cd8da851550a453bd7f&quality=0.8&desiredformat=webp")}), "shortId": String("fd79e36")})]), "text": String("Omdat je <a>Willem van Hanegem</a> volgt")})])} -> {"errorMessage": String("Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'\nRequire stack:\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js\n- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), "errorType": String("Error"), "stackTrace": Array([String("Error: Cannot find module '/home/lyr/p/dpg/recommendations-widget-gateway/.webpack/service/src/handlers/recommendations'"), String("Require stack:"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunctionPool.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/Lambda.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/ServerlessOffline.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/index.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/main.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/classes/PluginManager.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/lib/Serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/scripts/serverless.js"), String("- /home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless/bin/serverless.js"), String("at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)"), String("at Function.resolve (internal/modules/cjs/helpers.js:98:19)"), String("at InProcessRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/in-process-runner/InProcessRunner.js:139:18)"), String("at HandlerRunner.run (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/handler-runner/HandlerRunner.js:177:64)"), String("at runMicrotasks (<anonymous>)"), String("at processTicksAndRejections (internal/process/task_queues.js:95:5)"), String("at async LambdaFunction.runHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/lambda/LambdaFunction.js:355:20)"), String("at async hapiHandler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/serverless-offline/dist/events/http/HttpServer.js:601:18)"), String("at async module.exports.internals.Manager.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/toolkit.js:45:28)"), String("at async Object.internals.handler (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:46:20)"), String("at async exports.execute (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/handler.js:31:20)"), String("at async Request._lifecycle (/home/lyr/p/dpg/recommendations-widget-gateway/node_modules/@hapi/hapi/lib/request.js:312:32)")])}
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_matching::json] compare_maps: Matcher is defined for path $
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Running provider state change handler 'Has Recommendations' for 'A request to get all the recommendations'
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] Sending Request ( method: POST, path: /, query: None, headers: Some({"Content-Type": ["application/json"]}), body: Present(63 bytes, application/json) ) to state change handler
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: http://localhost:45533/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::async_impl::client] response '200 OK' for http://localhost:45533/_pactSetup
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::provider_client] State change request: Response { url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(45533), path: "/_pactSetup", query: None, fragment: None }, status: 200, headers: {"x-powered-by": "Express", "content-type": "application/json; charset=utf-8", "date": "Mon, 19 Jul 2021 12:34:46 GMT", "connection": "keep-alive", "keep-alive": "timeout=5", "content-length": "0"} }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] State Change: "ProviderState { name: "Has Recommendations", params: {} }" -> Ok({})
test/provider.test.ts 1>   A request to get brands
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 404 (FAILED)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>       has a matching body (OK)
test/provider.test.ts 1>   A request to get brands
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 502 (FAILED)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>       has a matching body (OK)
test/provider.test.ts 1>   A request to get brands
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 200 (OK)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>         "Content-Type" with value "application/json" (OK)
test/provider.test.ts 1>       has a matching body (FAILED)
test/provider.test.ts 1>   A request to get all the recommendations
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 404 (FAILED)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>       has a matching body (OK)
test/provider.test.ts 1>   A request to get all the recommendations
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 502 (FAILED)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>       has a matching body (OK)
test/provider.test.ts 1>   A request to get all the recommendations
test/provider.test.ts 1>     returns a response which
test/provider.test.ts 1>       has status code 200 (OK)
test/provider.test.ts 1>       includes headers
test/provider.test.ts 1>         "Content-Type" with value "application/json" (OK)
test/provider.test.ts 1>       has a matching body (FAILED)
test/provider.test.ts 1> [2021-07-19T12:34:46Z INFO  pact_verifier] Publishing verification results back to the Pact Broker
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier] Publishing a failure result to PactBroker(https://npa.pactflow.io, provider_name='Recommendations Gateway')
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG pact_verifier::pact_broker] Sending JSON to https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/pact-version/fb95770a1954173914f096b795f157b5367b5cc6/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05NTg/verification-results using POST: {"providerApplicationVersion":"2c63b615969582952fe0bfd93a24718c0d0f0ebb\n","success":false,"testResults":[{"interactionId":"cc0f17c7f7bb05806c0cbc42a1e3e5930073caa1","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: brands","identifier":"$"}],"success":false},{"interactionId":"0bf88c43a7f9339d519f797489cd4fc94ee6fc7b","mismatches":[{"attribute":"body","description":"Expected body type of 'application/hal+json;charset=utf-8' but received 'application/json;charset=utf-8'","identifier":"$"},{"attribute":"status","description":"expected 200 but was 404"},{"attribute":"header","description":"Mismatch with header 'Content-Type': Expected header 'Content-Type' to have value 'application/hal+json; charset=utf-8' but was 'application/json; charset=utf-8'","identifier":"Content-Type"}],"success":false},{"interactionId":"b96eacb5c5a46c03955f91079e2fe9976c996bd3","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: error","identifier":"$"},{"attribute":"status","description":"expected 502 but was 200"}],"success":false},{"interactionId":"ecfb6f095fa149b08e796be7c4fa6c1e208dd450","mismatches":[{"attribute":"body","description":"Expected body type of 'application/hal+json;charset=utf-8' but received 'application/json;charset=utf-8'","identifier":"$"},{"attribute":"header","description":"Mismatch with header 'Content-Type': Expected header 'Content-Type' to have value 'application/hal+json; charset=utf-8' but was 'application/json; charset=utf-8'","identifier":"Content-Type"}],"success":false},{"interactionId":"c06761fa53f91fc040b16b8a744ca4686b5feba4","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: error","identifier":"$"},{"attribute":"status","description":"expected 404 but was 200"}],"success":false},{"interactionId":"96f8d0e06fb70fb43a24b31182501ed9704f8383","mismatches":[{"attribute":"status","description":"expected 502 but was 200"}],"success":false},{"interactionId":"747e20a54a4ba670bb40d84b80f407faf8367eb6","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: brands","identifier":"$"}],"success":false},{"interactionId":"f20e50ee05b52c05ddbffc483f255846f9c16483","mismatches":[{"attribute":"body","description":"Expected body type of 'application/hal+json' but received 'application/json;charset=utf-8'","identifier":"$"},{"attribute":"header","description":"Mismatch with header 'Content-Type': Expected header 'Content-Type' to have value 'application/hal+json' but was 'application/json; charset=utf-8'","identifier":"Content-Type"}],"success":false},{"interactionId":"4fe5238d0e19efc009f943d230b402bc84b4a1f7","mismatches":[{"attribute":"status","description":"expected 404 but was 200"}],"success":false},{"interactionId":"8b2b00600cb21af962fafe5fcf4e9e82b422555d","mismatches":[{"attribute":"status","description":"expected 404 but was 200"}],"success":false},{"interactionId":"fdb5bd88446970fb16d7de309f781f95e171c721","mismatches":[{"attribute":"status","description":"expected 502 but was 200"}],"success":false},{"interactionId":"af5bf46d5450f47bdd3025ddd6b795e82d05a3cf","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: brands","identifier":"$"}],"success":false},{"interactionId":"0562931dc56b3b1b4ee43c943f88a44fd6a6257a","mismatches":[{"attribute":"status","description":"expected 404 but was 200"}],"success":false},{"interactionId":"adb02b1441596888a9fbcd1b3f6fd2694b11a9c4","mismatches":[{"attribute":"status","description":"expected 502 but was 200"}],"success":false},{"interactionId":"f12a6407152086bda505848b88348a278838fda4","mismatches":[{"attribute":"body","description":"Actual map is missing the following keys: recommendations","identifier":"$"}],"success":false}],"verifiedBy":{"implementation":"Pact-Rust","version":"0.9.4"}}
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG reqwest::connect] starting new connection: https://npa.pactflow.io/
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG rustls::client::hs] No cached session for DNSNameRef("npa.pactflow.io")
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG rustls::client::hs] Not resuming any session
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG rustls::client::hs] ALPN protocol is Some(b"h2")
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG rustls::client::hs] Using ciphersuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG rustls::client::hs] Server supports tickets
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG rustls::client::tls12] ECDHE curve is ECParameters { curve_type: NamedCurve, named_group: secp256r1 }
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG rustls::client::tls12] Server DNS name is DNSName("npa.pactflow.io")
test/provider.test.ts 1> [2021-07-19T12:34:46Z DEBUG rustls::client::tls12] Session saved
test/provider.test.ts 1> [2021-07-19T12:34:47Z DEBUG reqwest::async_impl::client] response '201 Created' for https://npa.pactflow.io/pacts/provider/Recommendations%20Gateway/consumer/Recommendations%20Widget%20iOS/pact-version/fb95770a1954173914f096b795f157b5367b5cc6/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT05NTg/verification-results
test/provider.test.ts 1> [2021-07-19T12:34:47Z INFO  pact_verifier] Results published to Pact Broker
test/provider.test.ts 1> Failures:
test/provider.test.ts 1> 1) Verifying a pact between Recommendation Widget Web and Recommendations Gateway - a request for a list of brands
test/provider.test.ts 1>     1.1) has a matching body
test/provider.test.ts 1>            $ -> Actual map is missing the following keys: brands
test/provider.test.ts 1> 2) Verifying a pact between Recommendation Widget Web and Recommendations Gateway - receiving index request
test/provider.test.ts 1>     2.1) has a matching body
test/provider.test.ts 1>            expected 'application/hal+json;charset=utf-8' body but was 'application/json;charset=utf-8'
test/provider.test.ts 1>     2.2) has status code 200
test/provider.test.ts 1>            expected 200 but was 404
test/provider.test.ts 1>     2.3) includes header 'Content-Type' with value 'application/hal+json; charset=utf-8'
test/provider.test.ts 1>            Expected header 'Content-Type' to have value 'application/hal+json; charset=utf-8' but was 'application/json; charset=utf-8'
test/provider.test.ts 1> 3) Verifying a pact between Recommendation Widget Web and Recommendations Gateway Given Bad Gateway - a request for a list of recommendations
test/provider.test.ts 1>     3.1) has a matching body
test/provider.test.ts 1>            $ -> Actual map is missing the following keys: error
test/provider.test.ts 1>     3.2) has status code 502
test/provider.test.ts 1>            expected 502 but was 200
test/provider.test.ts 1> 4) Verifying a pact between Recommendation Widget Web and Recommendations Gateway Given Has Recommendations - a request for a list of recommendations
test/provider.test.ts 1>     4.1) has a matching body
test/provider.test.ts 1>            expected 'application/hal+json;charset=utf-8' body but was 'application/json;charset=utf-8'
test/provider.test.ts 1>     4.2) includes header 'Content-Type' with value 'application/hal+json; charset=utf-8'
test/provider.test.ts 1>            Expected header 'Content-Type' to have value 'application/hal+json; charset=utf-8' but was 'application/json; charset=utf-8'
test/provider.test.ts 1> 5) Verifying a pact between Recommendation Widget Web and Recommendations Gateway Given Recommendations not found - a request for a list of recommendations
test/provider.test.ts 1>     5.1) has a matching body
test/provider.test.ts 1>            $ -> Actual map is missing the following keys: error
test/provider.test.ts 1>     5.2) has status code 404
test/provider.test.ts 1>            expected 404 but was 200
test/provider.test.ts 1> 6) Verifying a pact between Recommendations Widget Android and Recommendations Gateway Given Bad Gateway - A request to get all the recommendations
test/provider.test.ts 1>     6.1) has status code 502
test/provider.test.ts 1>            expected 502 but was 200
test/provider.test.ts 1> 7) Verifying a pact between Recommendations Widget Android and Recommendations Gateway Given Has Brands - A request to get brands
test/provider.test.ts 1>     7.1) has a matching body
test/provider.test.ts 1>            $ -> Actual map is missing the following keys: brands
test/provider.test.ts 1> 8) Verifying a pact between Recommendations Widget Android and Recommendations Gateway Given Has Recommendations - A request to get all the recommendations
test/provider.test.ts 1>     8.1) has a matching body
test/provider.test.ts 1>            expected 'application/hal+json' body but was 'application/json;charset=utf-8'
test/provider.test.ts 1>     8.2) includes header 'Content-Type' with value 'application/hal+json'
test/provider.test.ts 1>            Expected header 'Content-Type' to have value 'application/hal+json' but was 'application/json; charset=utf-8'
test/provider.test.ts 1> 9) Verifying a pact between Recommendations Widget Android and Recommendations Gateway Given Recommendations not found - A request to get all the recommendations
test/provider.test.ts 1>     9.1) has status code 404
test/provider.test.ts 1>            expected 404 but was 200
test/provider.test.ts 1> 10) Verifying a pact between Recommendations Widget iOS and Recommendations Gateway Given Brands not found - A request to get brands
test/provider.test.ts 1>     10.1) has status code 404
test/provider.test.ts 1>            expected 404 but was 200
test/provider.test.ts 1> 11) Verifying a pact between Recommendations Widget iOS and Recommendations Gateway Given Something went terribly wrong - A request to get brands
test/provider.test.ts 1>     11.1) has status code 502
test/provider.test.ts 1>            expected 502 but was 200
test/provider.test.ts 1> 12) Verifying a pact between Recommendations Widget iOS and Recommendations Gateway Given Has Brands - A request to get brands
test/provider.test.ts 1>     12.1) has a matching body
test/provider.test.ts 1>            $ -> Actual map is missing the following keys: brands
test/provider.test.ts 1> 13) Verifying a pact between Recommendations Widget iOS and Recommendations Gateway Given Recommendations not found - A request to get all the recommendations
test/provider.test.ts 1>     13.1) has status code 404
test/provider.test.ts 1>            expected 404 but was 200
test/provider.test.ts 1> 14) Verifying a pact between Recommendations Widget iOS and Recommendations Gateway Given Something went terribly wrong - A request to get all the recommendations
test/provider.test.ts 1>     14.1) has status code 502
test/provider.test.ts 1>            expected 502 but was 200
test/provider.test.ts 1> 15) Verifying a pact between Recommendations Widget iOS and Recommendations Gateway Given Has Recommendations - A request to get all the recommendations
test/provider.test.ts 1>     15.1) has a matching body
test/provider.test.ts 1>            $ -> Actual map is missing the following keys: recommendations
test/provider.test.ts 1> There were 15 pact failures
test/provider.test.ts 1> [2021-07-19T12:34:47Z DEBUG pact_js_v3::verify] Background verification task complete: Ok(false)
 FAIL  test/provider.test.ts
 ✖ expect resolving Promise


    await t.resolves(verifier.verifyProvider())
------------^
  })
}

  test: test/provider.test.ts Verified actions with provider
  at:
    line: 89
    column: 13
    file: test/provider.test.ts
    type: Test
  found: null

 FAIL  test/provider.test.ts
 ✖ timeout!

  test: TAP
  signal: SIGTERM
  handles:
    - type: Server
      events:
        - request
        - connection
      connectionKey: 6::::6431
    - type: Server
      events:
        - request
        - connection
      connectionKey: 6::::1346
    - type: Server
      events:
        - request
        - connection
      connectionKey: 6::::4546
  expired: TAP
  stack: |
    emit (node_modules/signal-exit/index.js:78:11)
    process.listener (node_modules/signal-exit/index.js:92:7)
    process.emit (node_modules/source-map-support/source-map-support.js:495:21)
    process.domainProcessEmit (node_modules/async-hook-domain/index.js:133:26)

 FAIL  test/provider.test.ts 2 failed of 2 18s
 ✖ expect resolving Promise
 ✖ timeout!



  🌈 SUMMARY RESULTS 🌈


 FAIL  test/provider.test.ts 2 failed of 2 18s
 ✖ expect resolving Promise
 ✖ timeout!

Suites:   1 failed, 1 of 1 completed
Asserts:  2 failed, of 2
Time:     30s
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! recommendation-widget@1.0.0 test:single: `tap --ts --no-coverage "test/provider.test.ts"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the recommendation-widget@1.0.0 test:single script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/lyr/.npm/_logs/2021-07-19T12_34_57_906Z-debug.log
[lyr@home] dpg/recommendations-widget-gateway master* $
@Lyr-7D1h Lyr-7D1h added the bug Indicates an unexpected problem or unintended behavior label Jul 19, 2021
@TimothyJones
Copy link
Contributor

Thanks for the PR! This is fixed in #714.

@lviana-menlosecurity
Copy link

I'm using version 10.0.0-beta.44, which supposedly has the fix for this, and yet the issue still seems to be happening for me. I'm using the following:
consumerVersionSelectors: [ { tag: 'dev_lviana_pact', latest: true } ]
However, the consumer tag seems to be getting ignored. If you look at the debug output below, you'll see that consumerVersionSelectors is empty (I passed the same tag value to providerVersionTags, and that part works, but consumerVersionSelectors is just empty):

16:43:07  [2021-10-01T23:43:07Z DEBUG pact_js_v3::verify] pacts = [BrokerWithDynamicConfiguration { provider_name: "pnr-policy", broker_url: "https://menloinfra.pactflow.io", enable_pending: false, include_wip_pacts_since: None, provider_tags: ["dev_lviana_pact"], selectors: [], auth: Some(Token("WfGJXZBvKBSQOgEkWjT9ug")), links: [] }]
16:43:07  [2021-10-01T23:43:07Z DEBUG pact_js_v3::verify] provider_info = ProviderInfo { name: "pnr-policy", protocol: "http", host: "localhost", port: Some(36349), path: "/" }
16:43:07  [2021-10-01T23:43:07Z DEBUG pact_js_v3::verify] Starting background task
16:43:07  [2021-10-01T23:43:07Z DEBUG pact_js_v3::verify] Background verification task started
16:43:07  [2021-10-01T23:43:07Z INFO  pact_verifier::pact_broker] Fetching path '/' from pact broker
16:43:07  [2021-10-01T23:43:07Z DEBUG reqwest::connect] starting new connection: https://menloinfra.pactflow.io/
16:43:07  [2021-10-01T23:43:07Z DEBUG pact_js_v3::verify] Done
16:43:07  [2021-10-01T23:43:07Z DEBUG rustls::client::hs] No cached session for DNSNameRef("menloinfra.pactflow.io")
16:43:07  [2021-10-01T23:43:07Z DEBUG rustls::client::hs] Not resuming any session
16:43:07  [2021-10-01T23:43:07Z DEBUG rustls::client::hs] ALPN protocol is Some(b"h2")
16:43:07  [2021-10-01T23:43:07Z DEBUG rustls::client::hs] Using ciphersuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
16:43:07  [2021-10-01T23:43:07Z DEBUG rustls::client::hs] Server supports tickets
16:43:07  [2021-10-01T23:43:07Z DEBUG rustls::client::tls12] ECDHE curve is ECParameters { curve_type: NamedCurve, named_group: secp256r1 }
16:43:07  [2021-10-01T23:43:07Z DEBUG rustls::client::tls12] Server DNS name is DNSName("menloinfra.pactflow.io")
16:43:07  [2021-10-01T23:43:07Z DEBUG rustls::client::tls12] Session saved
16:43:08  [2021-10-01T23:43:08Z DEBUG reqwest::async_impl::client] response '200 OK' for https://menloinfra.pactflow.io/
16:43:08  [2021-10-01T23:43:08Z DEBUG pact_verifier::pact_broker] Link URL is templated
16:43:08  [2021-10-01T23:43:08Z DEBUG pact_verifier::pact_broker] templated URL = https://menloinfra.pactflow.io/pacts/provider/{provider}/for-verification
16:43:08  [2021-10-01T23:43:08Z DEBUG pact_verifier::pact_broker] Looking up value for key 'provider'
16:43:08  [2021-10-01T23:43:08Z DEBUG pact_verifier::pact_broker] final URL = https://menloinfra.pactflow.io/pacts/provider/pnr-policy/for-verification
16:43:08  [2021-10-01T23:43:08Z INFO  pact_verifier::pact_broker] Fetching path '/pacts/provider/pnr-policy/for-verification' from pact broker
16:43:08  [2021-10-01T23:43:08Z DEBUG reqwest::async_impl::client] response '200 OK' for https://menloinfra.pactflow.io/pacts/provider/pnr-policy/for-verification
16:43:08  [2021-10-01T23:43:08Z DEBUG pact_verifier::pact_broker] templated URL = https://menloinfra.pactflow.io/pacts/provider/pnr-policy/for-verification
16:43:08  [2021-10-01T23:43:08Z DEBUG pact_verifier::pact_broker] final URL = https://menloinfra.pactflow.io/pacts/provider/pnr-policy/for-verification
16:43:08  [2021-10-01T23:43:08Z DEBUG pact_verifier::pact_broker] Sending JSON to https://menloinfra.pactflow.io/pacts/provider/pnr-policy/for-verification using POST: {"providerVersionTags":["dev_lviana_pact"],"includePendingStatus":false,"consumerVersionSelectors":[]}
16:43:09  [2021-10-01T23:43:08Z DEBUG reqwest::async_impl::client] response '200 OK' for https://menloinfra.pactflow.io/pacts/provider/pnr-policy/for-verification
16:43:09  [2021-10-01T23:43:08Z INFO  pact_verifier::pact_broker] Fetching path '/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/pact-version/c3e484fb28acdba797b9674f88f9c9fc3dbfed24/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT0xNjY' from pact broker
16:43:09  [2021-10-01T23:43:09Z DEBUG reqwest::async_impl::client] response '200 OK' for https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/pact-version/c3e484fb28acdba797b9674f88f9c9fc3dbfed24/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT0xNjY
16:43:09  [2021-10-01T23:43:09Z INFO  pact_verifier::pact_broker] Fetching path '/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/pact-version/5afd0514389955129094a9f3f9f16e4e5bea84ac/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT0xNjc' from pact broker
16:43:09  [2021-10-01T23:43:09Z DEBUG reqwest::async_impl::client] response '200 OK' for https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/pact-version/5afd0514389955129094a9f3f9f16e4e5bea84ac/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT0xNjc
16:43:09  [2021-10-01T23:43:09Z DEBUG pact_verifier] Got pact with links [Link { name: "curies", href: None, templated: false, title: None }, Link { name: "pb:all-pact-versions", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/versions"), templated: false, title: Some("All versions of this pact") }, Link { name: "pb:consumer", href: Some("https://menloinfra.pactflow.io/pacticipants/menlo-frontend-policy"), templated: false, title: Some("Consumer") }, Link { name: "pb:consumer-version", href: Some("https://menloinfra.pactflow.io/pacticipants/menlo-frontend-policy/versions/2.81.0-3-12-gd6d0eb7e2"), templated: false, title: Some("Consumer version") }, Link { name: "pb:consumer-webhooks", href: Some("https://menloinfra.pactflow.io/webhooks/consumer/pnr-policy"), templated: false, title: Some("Webhooks for all pacts with provider pnr-policy") }, Link { name: "pb:diff", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/pact-version/c3e484fb28acdba797b9674f88f9c9fc3dbfed24/diff/pact-version/{pactVersion}"), templated: true, title: Some("Diff with another specified version of this pact") }, Link { name: "pb:diff-previous-distinct", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/version/2.81.0-3-12-gd6d0eb7e2/diff/previous-distinct"), templated: false, title: Some("Diff with previous distinct version of this pact") }, Link { name: "pb:latest-pact-version", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/latest"), templated: false, title: Some("Latest version of this pact") }, Link { name: "pb:latest-tagged-pact-version", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/latest/{tag}"), templated: true, title: Some("Latest tagged version of this pact") }, Link { name: "pb:latest-untagged-pact-version", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/latest-untagged"), templated: false, title: Some("Latest untagged version of this pact") }, Link { name: "pb:latest-verification-results", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/pact-version/c3e484fb28acdba797b9674f88f9c9fc3dbfed24/verification-results/latest"), templated: false, title: None }, Link { name: "pb:matrix-for-consumer-version", href: Some("https://menloinfra.pactflow.io/matrix?q[][pacticipant]=menlo-frontend-policy&q[][version]=2.81.0-3-12-gd6d0eb7e2&latestby=cvpv"), templated: false, title: Some("View matrix rows for the consumer version to which this pact belongs") }, Link { name: "pb:pact-version", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/pact-version/c3e484fb28acdba797b9674f88f9c9fc3dbfed24"), templated: false, title: Some("Pact content version permalink") }, Link { name: "pb:pact-webhooks", href: Some("https://menloinfra.pactflow.io/webhooks/provider/pnr-policy/consumer/menlo-frontend-policy"), templated: false, title: Some("Webhooks for the pact between menlo-frontend-policy and pnr-policy") }, Link { name: "pb:previous-distinct", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/version/2.81.0-3-12-gd6d0eb7e2/previous-distinct"), templated: false, title: Some("Previous distinct version of this pact") }, Link { name: "pb:provider", href: Some("https://menloinfra.pactflow.io/pacticipants/pnr-policy"), templated: false, title: Some("Provider") }, Link { name: "pb:publish-verification-results", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/pact-version/c3e484fb28acdba797b9674f88f9c9fc3dbfed24/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT0xNjY/verification-results"), templated: false, title: Some("Publish verification results") }, Link { name: "pb:tag-prod-version", href: Some("https://menloinfra.pactflow.io/pacticipants/menlo-frontend-policy/versions/2.81.0-3-12-gd6d0eb7e2/tags/prod"), templated: false, title: Some("PUT to this resource to tag this consumer version as 'production'") }, Link { name: "pb:tag-version", href: Some("https://menloinfra.pactflow.io/pacticipants/menlo-frontend-policy/versions/2.81.0-3-12-gd6d0eb7e2/tags/{tag}"), templated: false, title: Some("PUT to this resource to tag this consumer version") }, Link { name: "pb:triggered-webhooks", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/version/2.81.0-3-12-gd6d0eb7e2/triggered-webhooks"), templated: false, title: Some("Webhooks triggered by the publication of this pact") }, Link { name: "self", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/version/2.81.0-3-12-gd6d0eb7e2"), templated: false, title: Some("Pact") }]
16:43:09  [2021-10-01T23:43:09Z DEBUG pact_verifier] Got pact with links [Link { name: "curies", href: None, templated: false, title: None }, Link { name: "pb:all-pact-versions", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/versions"), templated: false, title: Some("All versions of this pact") }, Link { name: "pb:consumer", href: Some("https://menloinfra.pactflow.io/pacticipants/menlo-frontend-settings"), templated: false, title: Some("Consumer") }, Link { name: "pb:consumer-version", href: Some("https://menloinfra.pactflow.io/pacticipants/menlo-frontend-settings/versions/2.81.0-3-12-gd6d0eb7e2"), templated: false, title: Some("Consumer version") }, Link { name: "pb:consumer-webhooks", href: Some("https://menloinfra.pactflow.io/webhooks/consumer/pnr-policy"), templated: false, title: Some("Webhooks for all pacts with provider pnr-policy") }, Link { name: "pb:diff", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/pact-version/5afd0514389955129094a9f3f9f16e4e5bea84ac/diff/pact-version/{pactVersion}"), templated: true, title: Some("Diff with another specified version of this pact") }, Link { name: "pb:diff-previous-distinct", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/version/2.81.0-3-12-gd6d0eb7e2/diff/previous-distinct"), templated: false, title: Some("Diff with previous distinct version of this pact") }, Link { name: "pb:latest-pact-version", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/latest"), templated: false, title: Some("Latest version of this pact") }, Link { name: "pb:latest-tagged-pact-version", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/latest/{tag}"), templated: true, title: Some("Latest tagged version of this pact") }, Link { name: "pb:latest-untagged-pact-version", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/latest-untagged"), templated: false, title: Some("Latest untagged version of this pact") }, Link { name: "pb:latest-verification-results", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/pact-version/5afd0514389955129094a9f3f9f16e4e5bea84ac/verification-results/latest"), templated: false, title: None }, Link { name: "pb:matrix-for-consumer-version", href: Some("https://menloinfra.pactflow.io/matrix?q[][pacticipant]=menlo-frontend-settings&q[][version]=2.81.0-3-12-gd6d0eb7e2&latestby=cvpv"), templated: false, title: Some("View matrix rows for the consumer version to which this pact belongs") }, Link { name: "pb:pact-version", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/pact-version/5afd0514389955129094a9f3f9f16e4e5bea84ac"), templated: false, title: Some("Pact content version permalink") }, Link { name: "pb:pact-webhooks", href: Some("https://menloinfra.pactflow.io/webhooks/provider/pnr-policy/consumer/menlo-frontend-settings"), templated: false, title: Some("Webhooks for the pact between menlo-frontend-settings and pnr-policy") }, Link { name: "pb:previous-distinct", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/version/2.81.0-3-12-gd6d0eb7e2/previous-distinct"), templated: false, title: Some("Previous distinct version of this pact") }, Link { name: "pb:provider", href: Some("https://menloinfra.pactflow.io/pacticipants/pnr-policy"), templated: false, title: Some("Provider") }, Link { name: "pb:publish-verification-results", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/pact-version/5afd0514389955129094a9f3f9f16e4e5bea84ac/metadata/c1tdW2xdPXRydWUmc1tdW2N2XT0xNjc/verification-results"), templated: false, title: Some("Publish verification results") }, Link { name: "pb:tag-prod-version", href: Some("https://menloinfra.pactflow.io/pacticipants/menlo-frontend-settings/versions/2.81.0-3-12-gd6d0eb7e2/tags/prod"), templated: false, title: Some("PUT to this resource to tag this consumer version as 'production'") }, Link { name: "pb:tag-version", href: Some("https://menloinfra.pactflow.io/pacticipants/menlo-frontend-settings/versions/2.81.0-3-12-gd6d0eb7e2/tags/{tag}"), templated: false, title: Some("PUT to this resource to tag this consumer version") }, Link { name: "pb:triggered-webhooks", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/version/2.81.0-3-12-gd6d0eb7e2/triggered-webhooks"), templated: false, title: Some("Webhooks triggered by the publication of this pact") }, Link { name: "self", href: Some("https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-settings/version/2.81.0-3-12-gd6d0eb7e2"), templated: false, title: Some("Pact") }]
16:43:09  The pact at https://menloinfra.pactflow.io/pacts/provider/pnr-policy/consumer/menlo-frontend-policy/pact-version/c3e484fb28acdba797b9674f88f9c9fc3dbfed24 is being verified because the pact content belongs to the consumer version matching the following criterion:
16:43:09      * latest version of menlo-frontend-policy that has a pact with pnr-policy (2.81.0-3-12-gd6d0eb7e2)```

@TimothyJones
Copy link
Contributor

Can you try with 10.0.0-beta.45 or later (ideally the latest)? We've made substantial changes to the verifier from 45 onwards.

@lviana-menlosecurity
Copy link

I noticed that consumerVersionTags seems to work on beta.44. Also, consumerVersionSelectors does indeed seem to work on beta.51, so it looks like we are good.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Indicates an unexpected problem or unintended behavior
Projects
None yet
Development

No branches or pull requests

3 participants