UNPKG

@tevm/test-matchers

Version:

Vite test matchers for Tevm or EVM-related testing in TypeScript.

1 lines 145 kB
{"version":3,"sources":["../src/chainable/chainable.ts","../src/common/handleTransaction.ts","../src/matchers/balance/getBalanceChange.ts","../src/matchers/balance/getTokenBalanceChange.ts","../src/matchers/balance/getDiffMethodsFromPrestateTrace.ts","../src/matchers/balance/toChangeBalance.ts","../src/matchers/balance/toChangeBalances.ts","../src/matchers/balance/toChangeTokenBalance.ts","../src/matchers/balance/toChangeTokenBalances.ts","../src/matchers/contract/getSelectorToCalldataMap.ts","../src/matchers/contract/toCallContractFunction.ts","../src/matchers/contract/withFunctionArgs.ts","../src/matchers/contract/withFunctionNamedArgs.ts","../src/matchers/contract/index.ts","../src/matchers/errors/handleTransaction.ts","../src/matchers/errors/toBeReverted.ts","../src/matchers/errors/toBeRevertedWithError.ts","../src/matchers/errors/toBeRevertedWithString.ts","../src/matchers/errors/withErrorArgs.ts","../src/matchers/errors/withErrorNamedArgs.ts","../src/matchers/errors/index.ts","../src/matchers/events/toEmit.ts","../src/matchers/events/withEventArgs.ts","../src/matchers/events/withEventNamedArgs.ts","../src/matchers/events/index.ts","../src/matchers/state/toBeInitializedAccount.ts","../src/matchers/state/toHaveState.ts","../src/matchers/state/toHaveStorageAt.ts","../src/matchers/utils/toBeAddress.ts","../src/matchers/utils/toBeHex.ts","../src/matchers/utils/toEqualAddress.ts","../src/matchers/utils/toEqualHex.ts","../src/index.ts"],"names":["assert","expect","chaiUtils","chai","node","createTevmNode","isHex","waitForTransactionReceipt","contractHandler","ERC20","isEqual","numberToHex","anvilSetStorageAtJsonRpcProcedure","hexToBigInt","debugTraceTransactionJsonRpcProcedure","isAddress","getBalanceChange","getTokenBalanceChange","getAddress","AbiItem","pass","AbiFunction","calldata","decodeAbiParameters","handleTransaction","getTransactionReceipt","BaseError","ViemBaseError","getTransaction","estimateGas","decodeErrorResult","matchedLogs","encodeEventTopics","decodeEventLog","getAccountHandler","isAddressEqual","trim","hexToBytes","equalsBytes"],"mappings":"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","file":"index.cjs","sourcesContent":["import { type Assertion, assert, chai, expect } from 'vitest'\nimport type {\n\tChaiContext,\n\tChainableAssertion,\n\tChainState,\n\tChaiStatic,\n\tChaiUtils,\n\tExtractVitestArgs,\n\tInferredVitestChainableResult,\n\tIsAsync,\n\tMatcherResult,\n\tVitestMatcherConfig,\n\tVitestMatcherFunction,\n} from './types.js'\n\nlet chaiUtils: ChaiUtils | undefined\nexport const getChaiUtils = () => chaiUtils\n\n// Promise setup helper (waffle-chai pattern)\nconst setupPromise = (assertion: Assertion, utils: ChaiUtils): void => {\n\tconst existingPromise = utils.flag(assertion, 'callPromise')\n\tif (existingPromise) return\n\n\tconst obj = utils.flag(assertion, 'object')\n\tif (obj && typeof obj.then === 'function') {\n\t\tutils.flag(assertion, 'callPromise', obj)\n\t} else {\n\t\tutils.flag(assertion, 'callPromise', Promise.resolve())\n\t}\n}\n\nconst isAsyncMatcher = <TReceived, TState>(\n\tmatcher: VitestMatcherFunction<TReceived, boolean, TState>,\n): matcher is VitestMatcherFunction<TReceived, true, TState> => {\n\treturn matcher.constructor.name === 'AsyncFunction'\n}\n\n// Build chain state from flags - automatically detect any previous matcher\nconst buildChainState = (assertion: Assertion, utils: ChaiUtils): ChainState => {\n\t// Get the chain history from a dedicated flag\n\tconst chainHistory: string[] = utils.flag(assertion, 'chainHistory') || []\n\n\tif (chainHistory.length === 0) {\n\t\treturn {\n\t\t\tchainedFrom: undefined,\n\t\t\tpreviousPassed: undefined,\n\t\t\tpreviousValue: undefined,\n\t\t\tpreviousState: undefined,\n\t\t\tpreviousArgs: undefined,\n\t\t}\n\t}\n\n\t// Use the most recent chained matcher\n\tconst matcherName = chainHistory[chainHistory.length - 1]\n\n\t// For async matchers, use the current object (which gets updated)\n\t// rather than the stored value (which might be a Promise)\n\tlet previousValue = utils.flag(assertion, `${matcherName}.value`)\n\tconst currentObj = utils.flag(assertion, 'object')\n\t// If the stored value is a Promise but current object is resolved, use current object\n\tif (previousValue && typeof previousValue.then === 'function' && currentObj !== previousValue)\n\t\tpreviousValue = currentObj\n\n\tconst state = {\n\t\tchainedFrom: matcherName,\n\t\tpreviousPassed: utils.flag(assertion, `${matcherName}.passed`),\n\t\tpreviousValue,\n\t\tpreviousState: utils.flag(assertion, `${matcherName}.state`),\n\t\tpreviousArgs: utils.flag(assertion, `${matcherName}.args`),\n\t}\n\n\treturn state\n}\n\n// Used to fail an assertion in chai with vitest highlighting and trace\nconst createInternalResultHandler = () => {\n\treturn {\n\t\t__expectResult: function (this: any, result: MatcherResult, isNegated: boolean) {\n\t\t\tassert(chaiUtils !== undefined, 'ChaiUtils not initialized')\n\t\t\tconst shouldFail = isNegated ? result.pass : !result.pass\n\n\t\t\tif (shouldFail) {\n\t\t\t\treturn {\n\t\t\t\t\tpass: false,\n\t\t\t\t\tmessage: () => result.message(),\n\t\t\t\t\tactual: result.actual,\n\t\t\t\t\texpected: result.expected,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn { pass: true, message: () => result.message() }\n\t\t},\n\t}\n}\n\nconst expectResult = (result: MatcherResult, isNegated: boolean) => {\n\t;(\n\t\texpect(result) as unknown as {\n\t\t\t__expectResult: (isNegated: boolean) => MatcherResult\n\t\t}\n\t).__expectResult(isNegated)\n}\n\n// Only extract truly common parts\nconst storeChainState = <TName extends string, TAsync extends boolean = false>(\n\tassertion: ChaiContext<TAsync>,\n\tutils: ChaiUtils,\n\tname: TName,\n\tobj: unknown,\n\targs: readonly unknown[],\n\tresult: MatcherResult,\n) => {\n\tutils.flag(assertion, `${name}.passed`, result.pass)\n\tutils.flag(assertion, `${name}.value`, obj)\n\tutils.flag(assertion, `${name}.state`, result.state)\n\tutils.flag(assertion, `${name}.args`, args)\n\n\t// Track chain history\n\tconst chainHistory: string[] = utils.flag(assertion, 'chainHistory') ?? []\n\tchainHistory.push(name)\n\tutils.flag(assertion, 'chainHistory', chainHistory)\n}\n\nexport const parseChainArgs = <TData = unknown, TState = unknown>(args: readonly unknown[]) => {\n\tconst argsWithoutChainState = args.slice(0, -1)\n\tconst chainState = args[args.length - 1]\n\tassert(\n\t\tchainState && typeof chainState === 'object' && 'chainedFrom' in chainState,\n\t\t'Internal error: no chain state found',\n\t)\n\treturn { args: argsWithoutChainState, chainState: chainState as ChainState<TData, TState> }