<#1133 (TypeScript) Cannot use V3 matchers within ...
# pact-js-development
g
#1133 (TypeScript) Cannot use V3 matchers within MessagePact. Types are incompatible. Issue created by murbanowicz Software versions TypeScript: 5.2.2 "@pact-foundation/pact": "12.1.0" 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 Expected behaviour I should be able to use v3 matchers Actual behaviour Types are incompatible Steps to reproduce
Copy code
import * as path from 'path';
import { MessageConsumerPact, MatchersV3 } from '@pact-foundation/pact';

const messagePact = new MessageConsumerPact({
  consumer: 'example-shipment-service',
  dir: path.resolve(process.cwd(), 'pacts'),
  pactfileWriteMode: 'update',
  provider: 'example-orders-service',
});

describe('Consumer: example-shipment-service, Provider: example-orders-service', () => {
  it('order-confirmed event', () => {
    return messagePact.expectsToReceive('order-confirmed').withContent({
      type: MatchersV3.equal('order-confirmed'),
    });
  });
});
gives the following error:
Copy code
TS2345: Argument of type { type: MatchersV3.Matcher<string>; } is not assignable to parameter of type AnyTemplate
Types of property type are incompatible.
Type Matcher<string> is not assignable to type
string | number | boolean | JsonArray | JsonMap | Matcher<AnyTemplate> | ArrayMatcher<AnyTemplate> | TemplateMap | ArrayTemplate
Type Matcher<string> is not assignable to type TemplateMap
Index signature for type string is missing in type Matcher<string>
It will only work without error when using
Matchers
which I believe are V2 matches and are missing quite a lot of stuff. Relevant log files Please ensure you set logging to
DEBUG
and attach any relevant log files here (or link to a gist).
pact-foundation/pact-js