0

I want to get started with Pact to enable Consumer Driven Contracts for our asynchronous message stream architecture. Having read through most of the documentation and getting started guides by pact-foundation I tried to follow the example from https://github.com/pact-foundation/pact-js/tree/master/examples/messages. For now I only need the Consumer side of the Pact creation.

When I run

npm i
npm run test:consumer

I receive the following error on debug level:

[2020-04-02T09:30:19.822Z]  INFO: pact@9.2.2/15568 on MYPC: Verifying message
[2020-04-02T09:30:19.829Z]  INFO: pact-node@10.8.0/15568 on MYPC: Creating Message
[2020-04-02T09:30:19.839Z]  INFO: pact-node@10.8.0/15568 on MYPC: Creating message pact
[2020-04-02T09:30:19.849Z] DEBUG: pact-node@10.8.0/15568 on MYPC: Starting pact binary 'standalone\win32-1.82.1\pact\bin\pact-message.bat', with arguments ...
[2020-04-02T09:30:19.922Z] DEBUG: pact-node@10.8.0/15568 on MYPC: Created 'standalone\win32-1.82.1\pact\bin\pact-message.bat' process with PID: 20196
[2020-04-02T09:30:20.000Z] DEBUG: pact-node@10.8.0/15568 on MYPC:
    The filename, directory name, or volume label syntax is incorrect.

Then I tracked it down to the call of .verify(synchronousBodyHandler(dogApiHandler)) inside message-consumer.spec.ts which ultimately leads to the class Spawn that lives in spawn.ts within the pact-node repository of the pact-foundation.

For the example to properly call the Pact Creation logic I had to change the package.json file:

"test:consumer": "nyc --check-coverage --reporter=html --reporter=text-summary mocha consumer/*.spec.ts"

to

"test:consumer": "nyc --check-coverage --reporter=html --reporter=text-summary ts-mocha consumer/*.spec.ts"

I am running out of ideas, since my javascript/node.js/typescript skills are rather limited. Would appreciate any help. Thanks and Cheers, pypapo

Pa Po
  • 113
  • 1
  • 6

1 Answers1

0

This looks like it might be a bug with the example on Windows - could you please be so kind to raise this on the Pact JS repository? It should run on our Appveyor builds, but perhaps there is something we haven't considered.

Matthew Fellows
  • 3,669
  • 1
  • 15
  • 18