https://pact.io logo
Join SlackCommunities
Powered by
# pact-js
  • h

    Heera Singh

    08/18/2022, 11:33 AM
    Hi Team, Today when I am trying to do
    Provider verification
    (fetching contracts from pact broker) I gets error message: ERROR ThreadId(11) pact_verifier: Failed to load pact - Could not load pacts from the pact broker 'https://rain.pactflow.io' - ContentError("Request to pact broker URL 'https://rain.pactflow.io/pacts/provider/ATP_Provider/for-verification' failed - HTTP status client error (400 Bad Request) for url (https://rain.pactflow.io/pacts/provider/ATP_Provider/for-verification)") To publish the contract I use command
    "publish:pact": "pact-broker publish ./pacts --consumer-app-version 1.0.1 --auto-detect-version-properties --broker-base-url=https://**.<http://pactflow.io|pactflow.io> --broker-token=**"
    I provide these options to Verifier
    const opts = {
    provider: "MY_Provider",
    logLevel: process.env.LOG_LEVEL,
    providerBaseUrl: process.env.BASE_URL,
    stateHandlers: {
    "when no auth passed": () => {
    return Promise.resolve("no token needed");
    },
    },
    pactBrokerUrl: process.env.PACT_BROKER_URL,
    pactBrokerToken: process.env.PACT_BROKER_TOKEN,
    publishVerificationResult: true,
    consumerVersionSelectors: [
    {
    consumer: "10.0.1",
    },
    ],
    providerVersion: "1.0.0",
    };
    Any clue what I am doing wrong here.
    y
    m
    t
    • 4
    • 17
  • a

    Abdurahman Hijazi

    08/19/2022, 11:36 AM
    In our JS consumer we add a timeout in our http request, is there a way to include this in a pact test? If I leave the timeout the pact test fails because of an "After each hook" error. And if it is commented out the test passes
    y
    s
    t
    • 4
    • 28
  • b

    Brendan Donegan

    08/22/2022, 8:10 AM
    does anyone know should
    async
    state handler functions be supported in theory? a team has recently upgraded their node version and broken the verification. when i make the state handler function that was async not async (hardcode the needed response) then it works ok
    m
    • 2
    • 14
  • a

    Abdurahman Hijazi

    08/22/2022, 10:21 AM
    Is there a way to cover a range of expected status code responses? Or can you only expect an exact status code. This would be really useful for all status codes >=400
    m
    • 2
    • 1
  • h

    Harold Robson

    08/23/2022, 9:01 AM
    Hello does anyone know of an existing docker image that already has node and python to run the PACT tests?
    m
    • 2
    • 7
  • r

    Ravi Shankar

    08/24/2022, 6:05 AM
    Hello team, I am looking for some help to add contract testing on our application. Our microservices communicates using internal API. If I call /api/v1/CreateSession it internally calls another private API /api/private_v1/user/<id>. How to design consumer and provider tests for the same. Any Examples please. Thanks
    m
    • 2
    • 3
  • a

    Abdurahman Hijazi

    08/24/2022, 1:56 PM
    In one of my interactions, I stated that the Mock API doesn't return any headers in its response. See below:
    Copy code
    mockProvider.addInteraction({
            state: "",
            uponReceiving: `An invalid POST request to ${Config.config.SSO_TOKEN_PATH}. Returns 400 status and "invalid_grant_type" message`,
            withRequest: {
              method: "POST",
              path: "/v1/api/token",
              headers: {
                "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
              },
              body: createFormBody(request),
            },
            willRespondWith: {
              status: 400,
              body: {
                error: "unsupported_grant_type",
                error_description:
                  "Invalid grant type INCORRECT_GRANT_TYPE, expected authorization_code",
                error_uri: null,
              },
            },
          });
    But for some reason, when the pact is generated, a header is added in the interaction in the API response
    Copy code
    {
      "description": "An invalid POST request to /v1/api/token. Returns 400 status and \"invalid_grant_type\" message",
      "request": {
        "body": "grant_type=INCORRECT_GRANT_TYPE&client_id=34343433434&redirect_uri=REDIRECT_URL&code=AUTH_CODE&code_verifier=VERIFIER",
        "headers": {
          "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
        },
        "method": "POST",
        "path": "/v1/api/token"
      },
      "response": {
        "body": {
          "error": "unsupported_grant_type",
          "error_description": "Invalid grant type INCORRECT_GRANT_TYPE, expected authorization_code",
          "error_uri": null
        },
        "headers": {
          "Content-Type": "application/json"
        },
        "status": 400
      }
    }
    Any ideas on how to stop this from happening
    t
    • 2
    • 4
  • é

    Édouard Lopez

    08/26/2022, 3:16 PM
    Hello, in Publish contracts from consumer of the JS workshop, you use
    npx @pact-foundation/absolute-version
    , e.g.:
    Copy code
    "pact:publish": "pact-broker publish ./pacts --consumer-app-version=\"$(npx @pact-foundation/absolute-version)\" --auto-detect-version-properties --broker-base-url=<http://localhost:8000> --broker-username pact_workshop --broker-password pact_workshop"
    But the NPM package is deprecated in favour of absolute-version. Should the docs be updated?
  • é

    Édouard Lopez

    08/26/2022, 3:22 PM
    I made a PR for ⬆️ https://github.com/pact-foundation/pact-workshop-js/pull/86
    🙌 1
  • d

    Dmitry Munda

    08/30/2022, 8:14 AM
    hi! i’ve bumped from
    9.17.3
    to
    10.1.2
    and having
    Copy code
    TypeError: includeWipPactsSince
    looks like it cant be
    undefined
    anymore line triggering error
    Copy code
    includeWipPactsSince: isCI ? new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toISOString().split("T")[0] : undefined,
    m
    t
    • 3
    • 21
  • l

    Lennart Querter

    08/30/2022, 9:39 AM
    Hello, I am new to contract testing / pact, and am trying to implement a consumer test. I'm having problems with creating a pact with V3, any help would be appreciated. Setup:
    Copy code
    Mac M1 pro
    "@pact-foundation/pact": "^10.1.2"
    "jest": "^29.0.1",
    "ts-jest": "^28.0.8",
    Error:
    Copy code
    Error in native callback
    
          at Object.mockServerMismatches (node_modules/@pact-foundation/pact-core/src/consumer/index.ts:94:13)
          at PactV3.<anonymous> (node_modules/@pact-foundation/src/v3/pact.ts:207:39)
          at step (node_modules/@pact-foundation/pact/src/v3/pact.js:33:23)
          at Object.throw (node_modules/@pact-foundation/pact/src/v3/pact.js:14:53)
          at rejected (node_modules/@pact-foundation/pact/src/v3/pact.js:6:65)
    Github repo for reproduction: https://github.com/lennartquerter/pact-v3-test Commands:
    yarn install && yarn test:pactv3
    t
    m
    y
    • 4
    • 24
  • s

    Semih Ural

    09/01/2022, 10:43 AM
    Hi, Can we use pact for integration tests with mocking rather using mock-server ?
    t
    • 2
    • 3
  • d

    Dave Gordon

    09/01/2022, 9:31 PM
    Hi! I'm new to contract testing and was following through the js workshop. Great work! The content and format is really nice. I did notice a few things along the way which caused me confusion. One thing I wanted to clarify. On which branches should the user run
    npm install
    ? What caused me problems was the react version on step1 was older than the master branch and resulted in
    Attempted import error: 'Routes' is not exported from 'react-router-dom'.
    If I had installed from master, it would have been fine. I added this pull request to update those react versions in step1 I was thinking it might make the tutorial easier if the same package.json dependancies were present on each of the step branches? So no matter what step a user opts to run
    npm install
    on they will be able to run prior or subsequent steps without having to run the install again? Any thoughts on that?
    👋 1
    m
    • 2
    • 2
  • a

    Alan

    09/02/2022, 4:36 PM
    Hi there My organisation is still using pact-node (v10.9.4) as well as pact js (v9.11.0) as part of a contract testing library for our microservices and I'm thinking since https://www.npmjs.com/package/@pact-foundation/pact-node#which-librarypackage-should-i-use states that pact-js includes pact-nodes ability to publish to the pact broker I should be able to remove the pact-node dependency without any issue yes? I'm looking to upgrade our pacts from v2 to v3. I'm assuming I'll also need to be weary of the fact the microservices are being ran on alpine and also that some of the consumer contract testing code will need to be updated to the new stuff?
    t
    m
    • 3
    • 7
  • з

    Злата Кутузова

    09/06/2022, 10:38 AM
    Hi all, I am trying to reproduce the example from the courses https://testautomationu.applitools.com/pact-contract-tests I have written tests for the Consumer, but they are failed with errors Could you please help me how to fix it? I do not understand, how to debug them
    b
    r
    • 3
    • 3
  • m

    Maxim Filimonov

    09/06/2022, 10:39 AM
    It looks like something was changed in the last version our
    pact_verify
    setup broke. In prev. version
    pact-js
    used to publish based on env variable
    PACT_BROKER_PUBLISH_VERIFICATION_RESULTS
    . In the latest version(pact-core: 13.7.8, pact: 10.1.2) option needs to be specified manually in pact config
    publishVerificationResult: process.env.PACT_BROKER_PUBLISH_VERIFICATION_RESULTS === 'true'
    However, now it leads to errors as even after specifying
    PACT_BROKER_URL
    pact cannot publish results. See logs in thread
    👍 1
    m
    • 2
    • 16
  • s

    Sneha Singh

    09/07/2022, 1:30 PM
    Getting the below error while running pact test in the consumer side... i might be doing something really stupid but just can't figure out what...
    Copy code
    'use strict'
    
    process.env.REACT_APP_ENGINE_SERVICE_URL = '<http://localhost:8992>'
    
    import { expect } from 'chai'
    import path from 'path'
    import { Pact } from '@pact-foundation/pact'
    import { fetchACEFields } from '../api/index'
    
    describe('fetch ACE fields', () => {
      const port = 8992
      const objectType = 'dummy'
      const provider = new Pact({
        port: port,
        log: path.resolve(process.cwd(), 'logs', 'mockserver-integration.log'),
        dir: path.resolve(process.cwd(), 'pacts'),
        spec: 2,
        consumer: 'webapp',
        provider: 'engine-service',
        pactfileWriteMode: 'merge',
      })
    
      const expectedBody = { status: true, data: [{ fullName: 'dummy' }] }
    
      before(() => provider.setup())
    
      after(() => provider.finalize())
    
      afterEach(() => provider.verify())
    
      describe('request to fetch fields', () => {
        before(done => {
          const interaction = {
            state: 'fetch ace fields',
            uponReceiving: 'a request to get all ace fields',
            withRequest: {
              method: 'GET' as const,
              path: `/ace-fields?object_type=${objectType}`,
              headers: {
                Accept: 'application/json',
              },
            },
            willRespondWith: {
              status: 200,
              headers: {
                'Content-Type': 'application/json',
              },
              body: expectedBody,
            },
          }
          provider.addInteraction(interaction).then(() => {
            done()
          })
        })
    
        it('verify it returns the correct response', async () => {
          const res = await fetchACEFields(objectType)
          expect(res).equal(expectedBody)
        })
      })
    })
    
    Error: 
    
    ReferenceError: navigator is not defined
        at Object.<anonymous> (/Users/snehasingh/Documents/webapp/node_modules/flags/node_modules/supports-color/browser.js:3:58)
        at Module._compile (internal/modules/cjs/loader.js:1068:30)
        at Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
        at Object.require.extensions.<computed> [as .js] (/Users/snehasingh/Documents/webapp/node_modules/ts-node/src/index.ts:1445:43)
    t
    • 2
    • 1
  • x

    Xiaofeng Xie

    09/08/2022, 4:22 AM
    Has anyone run into
    pino
    is not a function error? TypeError: pino is not a function
    Copy code
    at Object.createLogger(../../node_modules/@pact-foundation/pact-core/src/logger/pino.ts
    at Object.createLogger(../../node_modules/@pact-foundation/pact-core/src/logger/index.ts
    at Object.createLogger(../../node_modules/@pact-foundation/pact-core/src/service.ts
    I got this error when I tried to do
    Copy code
    const provider = new PactV3({consumer:"foo",provider:"bar"});
    t
    m
    • 3
    • 51
  • s

    Sneha Singh

    09/08/2022, 1:41 PM
    Even though my test is passing but the contract is not getting created... pact creates a contract in json file after the test has executed??
    Copy code
    'use strict'
    
    import { setupServer } from 'msw/node'
    import { rest } from 'msw'
    import { fetchFields } from '../api/index'
    import provider from './provider'
    import interactions from './interactions/interactions'
    
    
    
    describe('fetch fields', () => {
      const expectedBody = { status: true, data: [{ fullName: 'dummy' }] }
    
      const server = setupServer(
        rest.get(
          `<http://localhost:8992/fields?object_type=dummy>`,
          (req, res, ctx) =>
            res(
              ctx.status(200),
              ctx.json(expectedBody)
            )
        )
      )
      beforeAll(() => server.listen())
      afterEach(() => server.resetHandlers())
      afterAll(() => server.close())
    
      describe('request to fetch ACE fields', () => {
    
        beforeAll(async () => {
          await provider.setup();
          await provider.addInteraction(interactions.fetchAceFields);
        });
        test('verify it returns the correct response', async () => {
          const res = await fetchFields("dummy")
          expect(res.data).toEqual(expectedBody)
        })
      })
    })
    y
    s
    • 3
    • 15
  • m

    Maxim Filimonov

    09/09/2022, 5:35 AM
    Does jest expect suppose to work in
    executeTest
    ? We are getting weird pact errors:
    m
    • 2
    • 10
  • h

    Harry

    09/12/2022, 6:24 AM
    Hi team a general query, lets say there are different environments for a consumer and a provider. So, are there any guidelines in PACT, if we need to verify a QA version of the consumer with the Prod version of the provider, or can we only verify the QA Consumer with QA Provider only?
    t
    • 2
    • 5
  • a

    Abdel Aziz Akkoub

    09/14/2022, 2:10 AM
    Hello, We are running our consumer contract tests using @User/pact version 10.1.13. The consumer app is Vue where the UI makes GQL calls to the backend GQL providers. We currently run the tests using Jest framework. We are seeing an issue recently after upgrading the Node engine on our local machines from 16.17.0 to 18.9.0. When run with Node 16.17.0, the consumer tests run successfully and a new contract is generated. However, when run under 18.9.0, the consumer test fails, where the ApolloClient that is being referenced in the consumer test is failing with a "request to http://localhost:8992/graphql failed, reason: connect ECONNREFUSED :18992" error. Here is a simplified snipped of the consumer test: Here is the debug output when run with Node 16.17.0:
    Copy code
    ```
    
    Here is the debug output when run with Node 18.9.0:
    ``` The major difference in the logs is the lack of reference to the tokio-runtime-worker. I have spent the entire day attempting to debug this issue with no luck being able to generate the tests. I also attempted to run Node 18.9.0 with different versions of the @User/pact (8.2.6 and 9.17.2) with no luck! Any advice is hight appreciated!
  • a

    Abdel Aziz Akkoub

    09/14/2022, 2:45 AM
    Hello, We are running our consumer contract tests using @ pact-foundation/pact version 10.1.3. The consumer app is Vue where the UI makes GQL calls to the backend GQL providers. We currently run the tests using Jest framework. We are seeing an issue recently after upgrading the Node engine on our local machines from 16.17.0 to 18.9.0. When run with Node 16.17.0, the consumer tests run successfully and a new contract is generated. However, when run under 18.9.0, the consumer test fails, where the ApolloClient that is being referenced in the consumer test is failing with a "request to http://localhost:8992/graphql failed, reason: connect ECONNREFUSED :18992" error. Here is a simplified snipped of the consumer test:
    Copy code
    /* eslint-env jest */
    
    import { Pact, GraphQLInteraction, Matchers } from '@pact-foundation/pact';
    
    import * as path from 'path'
    import fetch from 'node-fetch'
    import { createApolloClient } from '../../src/plugins/apollo-vue-setup'
    import BusinessNeedService from '../../src/services/businessNeedService'
    import { print } from 'graphql'
    import { gql } from '@apollo/client/core'
    const pactTestTimeout = 30000
    
    describe('GraphQL example', () => {
      const port = 8992
      const baseUri = `<https://localhost>:${port}`
      const provider = new Pact({
        port: port,
        log: path.resolve(process.cwd(), 'logs', 'mockserver-integration.log'),
        logLevel: 'debug',
        dir: path.resolve(process.cwd(), 'pacts'),
        consumer: 'UI',
        provider: 'BusinessNeedApollo',
      });
    
      const accessToken = 'authToken'
      const environmentLevel = 'qa'
      const siteName = 'qa026'
      const clientSiteId = 'siteId'
      const language = 'en-US'
    
      const getAccessTokenAsync = () => accessToken
      const getBeelineHeaderValues = () => ({
        environmentLevel,
        siteName,
        clientSiteId,
        language
      })
      const defaultHeaders = {
        'x-beeline-environment-level': environmentLevel,
        'x-beeline-site-name': siteName,
        'x-beeline-client-site-id': clientSiteId,
        'Content-Type': 'application/json',
        'accept-language': language,
        Authorization: `bearer ${accessToken}`
      }
      const defaultRequest = {
        method: 'POST',
        path: '/graphql',
        headers: defaultHeaders
      }
      const defaultApolloClient = createApolloClient({
        baseUri,
        fetch,
        getAccessTokenAsync,
        getBeelineHeaderValues
      })
      beforeAll(() => provider.setup());
      afterAll(() => provider.finalize());
    
      describe('query hello on /graphql', () => {
        beforeAll(() => {
          const graphqlQuery = new GraphQLInteraction()
          .uponReceiving('A request to get requests')
          .given('user has business need requests and is authenticated')
          .withQuery(print(gql`query{
            quickRequests(skip: $skip, top: $top, search: $search, orderBy: $orderBy) {
              items {
                clientName
                cost {
                  billRate
                  estimatedCost
                  __typename
                }
                createDate
                industryId
                jobDescription
                jobTitle
                requestId
                requestType
                workLocation
                __typename
              }
              totalCount
              __typename
              }
          }`))
            .withVariables()
            .withOperation()
            .withRequest(defaultRequest)
    
    
            .willRespondWith({
              status: 200,
              headers: {
                'Content-Type': 'application/json; charset=utf-8',
              },
              body: Matchers.like({
                data: {
                  quickRequests: {
                    items: [
                      {
                        clientName: 'QA027',
                        cost: {
                          billRate: '$488.75',
                          estimatedCost: '$320,317.50',
                          __typename: 'Cost'
                        },
                        createDate: '2020-04-21T19:32:31.000Z',
                        industryId: '12345',
                        jobDescription: 'This is a description',
                        jobTitle: 'Accountant (General)',
                        requestType: 'Staff Aug - Approved Budget With Position ID',
                        requestId: 'e234e7aa-54b7-4735-a170-a08ce280c411',
                        workLocation: 'Plantation, FL',
                        __typename: 'QuickRequest'
                      }
                    ],
                    totalCount: 100,
                    __typename: 'QuickRequestPage'
                  }
                }
              })
            }
            )
            return provider.addInteraction(graphqlQuery);
        });
    
    
        it('returns the correct response', async ()  => {
          const businessNeedService = new BusinessNeedService(defaultApolloClient)
          const requests = await businessNeedService.getQuickRequests();
          expect(requests.items).toHaveLength(1)
        });
    
        //verify with Pact, and reset expectations
        afterEach(() => provider.verify());
      });
    });
    I can't post the two output messages in the entire threads, so I saved each output to a text file and attached them to the thread. The major difference in the logs is the lack of reference to the tokio-runtime-worker I am seeing when the tests fails. I have spent the entire day attempting to debug this issue with no luck being able to generate the tests. I also attempted to run Node 18.9.0 with different versions of the @ pact-foundation/pact (8.2.6 and 9.17.2) with no luck! Any advice is highly appreciated!
    output_node_16_17_0.txtoutput_node_18_9_0.txt
    t
    m
    • 3
    • 7
  • m

    Maxim Filimonov

    09/14/2022, 10:55 AM
    Okay lets try to ask here. Is there an example of how to use Pact with
    useQuery
    Apollo hook? Cannot seem to find any on github or in the docs.
    t
    • 2
    • 21
  • a

    Adam Witko

    09/14/2022, 12:59 PM
    Hey hey, does pact-js-core not support linux x64 env builds yet?
    t
    m
    • 3
    • 11
  • a

    Alessandro Catania

    09/16/2022, 10:35 AM
    👋 Hello, team! Nice to meet you all! I’ve stumble upon the nestjs pact examples (https://github.com/pact-foundation/pact-js/tree/master/examples/nestjs-consumer) and I’ve noticed that the official package for nestjs and pact tests (https://www.npmjs.com/package/nestjs-pact) is installed but not used at all in those examples Also, from the official nest-pact readme, when we follow the example link (https://www.npmjs.com/package/nestjs-pact#example) we don’t find what we’re looking for, which is examples of the nestjs-pact library been used. I’ve created the examples locally for how to use correctly the nestjs-pact library and I’m ready to open a PR/MR, can somebody allow me to push a branch so I can raise it? Many thanks!
    🙌 1
    👋 1
    m
    t
    • 3
    • 5
  • m

    Maksym Liannoi

    09/19/2022, 5:06 AM
    Hello! We are using jest-pact adapter library for writing our contract tests and want to rewrite one of them to pact-js. But, after updating package
    pact-foundation/pact
    to version
    "^10.1.3"
    , - all our tests (that are written on jest-pact library) failed with Axios Network Error and following stack trace. So, even if I want to rewrite one of them on pact-js library, errors never go away. So, tell me please, what is going wrong?
    Copy code
    Network Error
    
          at createError (node_modules/axios/lib/core/createError.js:16:15)
          at XMLHttpRequest.handleError (node_modules/axios/lib/adapters/xhr.js:117:14)
          at XMLHttpRequest.invokeTheCallbackFunction (node_modules/jsdom/lib/jsdom/living/generated/EventHandlerNonNull.js:18:28)
          at XMLHttpRequest.<anonymous> (node_modules/jsdom/lib/jsdom/living/helpers/create-event-accessor.js:35:32)
          at innerInvokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:338:25)
          at invokeEventListeners (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:274:3)
          at XMLHttpRequestImpl._dispatch (node_modules/jsdom/lib/jsdom/living/events/EventTarget-impl.js:221:9)
          at fireAnEvent (node_modules/jsdom/lib/jsdom/living/helpers/events.js:18:36)
          at requestErrorSteps (node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js:131:3)
          at dispatchError (node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js:60:3)
          at validCORSHeaders (node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js:75:5)
          at validCORSPreflightHeaders (node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js:89:8)
          at Request.<anonymous> (node_modules/jsdom/lib/jsdom/living/xhr/xhr-utils.js:374:12)
          at Request._processResponse (node_modules/jsdom/lib/jsdom/living/helpers/http-request.js:228:12)
          at ClientRequest.<anonymous> (node_modules/jsdom/lib/jsdom/living/helpers/http-request.js:101:12)
    t
    m
    • 3
    • 6
  • z

    Zebi

    09/20/2022, 11:07 AM
    Hi, I have a question regarding use of
    eachKeyLike
    . Is it possible to use
    eachKeyLike
    for nested (up-to 3 levels) dynamic keys? It seems that it only works on one level but in my use case, we can have nested dynamic keys and I just want to ensure the shape of the request/response payload. Any help would be appreciated. An example payload is as follows:
    Copy code
    {
      "john-doe1": {
        "brown-fox": {
          "jumps": "over",
          "the": "lazy dog"
        }
      },
      "john-doe2": {
        "brown-fox2": {
          "jumps": "over",
          "the": "lazy dog"
        }
      }
    }
    And the matcher which I am trying to use is as follows (roughly). It skips checking the first level of the keys (as expected) but then it compares the other keys literally:
    Copy code
    Matchers.eachKeyLike("some string", Matchers.eachKeyLike("some-string", Matchers.eachKeyLike("some-string", Matchers.string())))
    u
    t
    m
    • 4
    • 31
  • m

    Matt (pactflow.io / pact-js / pact-go)

    09/21/2022, 1:50 PM
    ☝️ thanks Tim!
  • é

    Édouard Lopez

    09/21/2022, 2:12 PM
    When working a team to implement a provider verification, just installing
    @pact-foundation/pact
    trigger this message:
    Copy code
    [ERROR] 15:54:14 TypeError: destination.on is not a function
    We are using our
    yarn dev
    to start the app instead of what you do in the workshop that do as follow:
    Copy code
    "dev": "NODE_ENV='development' yarn generate-routes && yarn just-build && tsnd --inspect -r dotenv/config --respawn --files src/index.js",
    m
    • 2
    • 4
1...678...14Latest