{
  "version": 3,
  "sources": ["../src/matchers.ts"],
  "sourcesContent": ["/**\n * External dependencies\n */\nimport { matcherHint, printExpected, printReceived } from 'jest-matcher-utils';\n\n/**\n * Internal dependencies\n */\nimport supportedMatchers from './supported-matchers';\nimport type { Mock } from 'jest-mock';\nimport type {\n\tExtendedMock,\n\tMatcherFunction,\n\tMatcherResult,\n\tMatcherWithArgsFunction,\n} from './types';\n\ninterface SpyInfo {\n\tspy: Mock;\n\tpass: boolean;\n\tcalls: unknown[][];\n\tmatcherName: string;\n\tmethodName: string;\n\texpected?: unknown[];\n}\n\nconst createErrorMessage = ( spyInfo: SpyInfo ) => {\n\tconst { spy, pass, calls, matcherName, methodName, expected } = spyInfo;\n\tconst hint = pass ? `.not${ matcherName }` : matcherName;\n\tconst message = pass\n\t\t? `Expected mock function not to be called but it was called with:\\n${ calls.map(\n\t\t\t\tprintReceived\n\t\t  ) }`\n\t\t: `Expected mock function to be called${\n\t\t\t\texpected ? ` with:\\n${ printExpected( expected ) }\\n` : '.'\n\t\t  }\\nbut it was called with:\\n${ calls.map( printReceived ) }`;\n\n\treturn () =>\n\t\t`${ matcherHint( hint, spy.getMockName() ) }` +\n\t\t'\\n\\n' +\n\t\tmessage +\n\t\t'\\n\\n' +\n\t\t`console.${ methodName }() should not be used unless explicitly expected\\n` +\n\t\t'See https://www.npmjs.com/package/@wordpress/jest-console for details.';\n};\n\nconst createSpyInfo = (\n\tspy: Mock,\n\tmatcherName: string,\n\tmethodName: string,\n\texpected?: unknown[]\n) => {\n\tconst calls = spy.mock.calls;\n\n\tconst pass = expected\n\t\t? JSON.stringify( calls ).includes( JSON.stringify( expected ) )\n\t\t: calls.length > 0;\n\n\tconst message = createErrorMessage( {\n\t\tspy,\n\t\tpass,\n\t\tcalls,\n\t\tmatcherName,\n\t\tmethodName,\n\t\texpected,\n\t} );\n\n\treturn {\n\t\tpass,\n\t\tmessage,\n\t};\n};\n\nconst createToHaveBeenCalledMatcher =\n\t( matcherName: string, methodName: string ) =>\n\t( received: Record< string, Mock > ): MatcherResult => {\n\t\tconst spy = received[ methodName ] as ExtendedMock;\n\t\tconst spyInfo = createSpyInfo( spy, matcherName, methodName );\n\t\tspy.assertionsNumber += 1;\n\t\treturn spyInfo;\n\t};\n\nconst createToHaveBeenCalledWith = (\n\tmatcherName: string,\n\tmethodName: string\n) =>\n\tfunction (\n\t\treceived: Record< string, Mock >,\n\t\t...expected: unknown[]\n\t): MatcherResult {\n\t\tconst spy = received[ methodName ] as ExtendedMock;\n\t\tconst spyInfo = createSpyInfo( spy, matcherName, methodName, expected );\n\t\tspy.assertionsNumber += 1;\n\t\treturn spyInfo;\n\t};\n\ntype MatchersObject = Record<\n\tstring,\n\tMatcherFunction | MatcherWithArgsFunction\n>;\n\nexpect.extend(\n\tObject.entries( supportedMatchers ).reduce< MatchersObject >(\n\t\t( result, [ methodName, matcherName ] ) => {\n\t\t\tconst matcherNameWith = `${ matcherName }With`;\n\n\t\t\treturn {\n\t\t\t\t...result,\n\t\t\t\t[ matcherName ]: createToHaveBeenCalledMatcher(\n\t\t\t\t\t`.${ matcherName }`,\n\t\t\t\t\tmethodName\n\t\t\t\t),\n\t\t\t\t[ matcherNameWith ]: createToHaveBeenCalledWith(\n\t\t\t\t\t`.${ matcherNameWith }`,\n\t\t\t\t\tmethodName\n\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t{}\n\t)\n);\n"],
  "mappings": ";AAGA,SAAS,aAAa,eAAe,qBAAqB;AAK1D,OAAO,uBAAuB;AAkB9B,IAAM,qBAAqB,CAAE,YAAsB;AAClD,QAAM,EAAE,KAAK,MAAM,OAAO,aAAa,YAAY,SAAS,IAAI;AAChE,QAAM,OAAO,OAAO,OAAQ,WAAY,KAAK;AAC7C,QAAM,UAAU,OACb;AAAA,EAAqE,MAAM;AAAA,IAC3E;AAAA,EACA,CAAE,KACF,sCACA,WAAW;AAAA,EAAY,cAAe,QAAS,CAAE;AAAA,IAAO,GACxD;AAAA;AAAA,EAA+B,MAAM,IAAK,aAAc,CAAE;AAE7D,SAAO,MACN,GAAI,YAAa,MAAM,IAAI,YAAY,CAAE,CAAE;AAAA;AAAA,IAE3C,UACA;AAAA;AAAA,UACY,UAAW;AAAA;AAEzB;AAEA,IAAM,gBAAgB,CACrB,KACA,aACA,YACA,aACI;AACJ,QAAM,QAAQ,IAAI,KAAK;AAEvB,QAAM,OAAO,WACV,KAAK,UAAW,KAAM,EAAE,SAAU,KAAK,UAAW,QAAS,CAAE,IAC7D,MAAM,SAAS;AAElB,QAAM,UAAU,mBAAoB;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAE;AAEF,SAAO;AAAA,IACN;AAAA,IACA;AAAA,EACD;AACD;AAEA,IAAM,gCACL,CAAE,aAAqB,eACvB,CAAE,aAAqD;AACtD,QAAM,MAAM,SAAU,UAAW;AACjC,QAAM,UAAU,cAAe,KAAK,aAAa,UAAW;AAC5D,MAAI,oBAAoB;AACxB,SAAO;AACR;AAED,IAAM,6BAA6B,CAClC,aACA,eAEA,SACC,aACG,UACa;AAChB,QAAM,MAAM,SAAU,UAAW;AACjC,QAAM,UAAU,cAAe,KAAK,aAAa,YAAY,QAAS;AACtE,MAAI,oBAAoB;AACxB,SAAO;AACR;AAOD,OAAO;AAAA,EACN,OAAO,QAAS,iBAAkB,EAAE;AAAA,IACnC,CAAE,QAAQ,CAAE,YAAY,WAAY,MAAO;AAC1C,YAAM,kBAAkB,GAAI,WAAY;AAExC,aAAO;AAAA,QACN,GAAG;AAAA,QACH,CAAE,WAAY,GAAG;AAAA,UAChB,IAAK,WAAY;AAAA,UACjB;AAAA,QACD;AAAA,QACA,CAAE,eAAgB,GAAG;AAAA,UACpB,IAAK,eAAgB;AAAA,UACrB;AAAA,QACD;AAAA,MACD;AAAA,IACD;AAAA,IACA,CAAC;AAAA,EACF;AACD;",
  "names": []
}
