{"version":3,"file":"spyMatchers.cjs","sources":["../../../src/matchers/spyMatchers.js"],"sourcesContent":["import { getSpyMatcherResult } from './spyErrorReporting.js';\nimport { isSpy, isMockFunction } from './spy.js';\nimport { validateSpyOrMock } from './spyValidation.js';\nimport deepEqualCheck from 'deep-equal-check';\n\n// Helper function to get call count (works with both spy and mock functions)\nfunction getCallCount(fn) {\n  if (isSpy(fn)) {\n    return fn.callCount;\n  } else if (isMockFunction(fn)) {\n    return fn.mock.calls.length;\n  }\n  return 0;\n}\n\n// Helper function to get calls (works with both spy and mock functions)\nfunction getCalls(fn) {\n  if (isMockFunction(fn)) {\n    return Array.isArray(fn.mock.calls) ? fn.mock.calls : [];\n  } else if (isSpy(fn)) {\n    return Array.isArray(fn.calls) ? fn.calls : [];\n  }\n  return [];\n}\n\n// Helper function to get instances (for mock functions)\nfunction getInstances(fn) {\n  if (isMockFunction(fn)) {\n    return fn.mock.instances;\n  }\n  return [];\n}\n\n// Helper function to get results (works with both spy and mock functions)\nfunction getResults(fn) {\n  if (isMockFunction(fn)) {\n    return fn.mock.results;\n  } else if (isSpy(fn)) {\n    return fn.results;\n  }\n  return [];\n}\n\n/**\n * Core logic for checking if a function has been called\n * @param {Function} fn - The function to check\n * @returns {boolean} - True if the function has been called\n */\nexport function _hasBeenCalled(fn) {\n  try {\n    validateSpyOrMock(fn, 'toHaveBeenCalled');\n    return getCallCount(fn) > 0;\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Core logic for checking if a function has been called with specific arguments\n * @param {Function} fn - The function to check\n * @param {Array} args - The arguments to check for\n * @returns {boolean} - True if the function was called with the arguments\n */\nexport function _hasBeenCalledWith(fn, args) {\n  try {\n    validateSpyOrMock(fn, 'toHaveBeenCalledWith');\n    const calls = getCalls(fn);\n    return calls.some((call) => Array.isArray(call) && deepEqualCheck(call, args));\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Core logic for checking if a function has been called a specific number of times\n * @param {Function} fn - The function to check\n * @param {number} times - The expected number of calls\n * @returns {boolean} - True if the function was called the expected number of times\n */\nexport function _hasBeenCalledTimes(fn, times) {\n  try {\n    validateSpyOrMock(fn, 'toHaveBeenCalledTimes');\n    return getCallCount(fn) === times;\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Core logic for checking if a function was last called with specific arguments\n * @param {Function} fn - The function to check\n * @param {Array} args - The arguments to check for\n * @returns {boolean} - True if the function was last called with the arguments\n */\nexport function _hasBeenLastCalledWith(fn, args) {\n  try {\n    validateSpyOrMock(fn, 'toHaveBeenLastCalledWith');\n    const calls = getCalls(fn);\n    const lastCall = calls[calls.length - 1];\n    return Array.isArray(lastCall) && deepEqualCheck(lastCall, args);\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Core logic for checking if a function was called with specific arguments at a specific call\n * @param {Function} fn - The function to check\n * @param {number} nthCall - The call number to check (1-based)\n * @param {Array} args - The arguments to check for\n * @returns {boolean} - True if the function was called with the arguments at the specified call\n */\nexport function _hasBeenNthCalledWith(fn, nthCall, args) {\n  try {\n    validateSpyOrMock(fn, 'toHaveBeenNthCalledWith');\n    const calls = getCalls(fn);\n    const nthCallIndex = nthCall - 1;\n    const call = calls[nthCallIndex];\n    return Array.isArray(call) && deepEqualCheck(call, args);\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Core logic for checking if a function has returned a value\n * @param {Function} fn - The function to check\n * @returns {boolean} - True if the function has returned a value\n */\nexport function _hasReturned(fn) {\n  try {\n    validateSpyOrMock(fn, 'toHaveReturned');\n    const results = getResults(fn);\n    return results.some(result => result.type === 'return');\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Core logic for checking if a function has returned a specific value\n * @param {Function} fn - The function to check\n * @param {*} expectedValue - The expected return value\n * @returns {boolean} - True if the function has returned the expected value\n */\nexport function _hasReturnedWith(fn, expectedValue) {\n  try {\n    validateSpyOrMock(fn, 'toHaveReturnedWith');\n    const results = getResults(fn);\n    return results.some(result => result.type === 'return' && deepEqualCheck(result.value, expectedValue));\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Core logic for checking if a function last returned a specific value\n * @param {Function} fn - The function to check\n * @param {*} expectedValue - The expected return value\n * @returns {boolean} - True if the function last returned the expected value\n */\nexport function _hasLastReturnedWith(fn, expectedValue) {\n  try {\n    validateSpyOrMock(fn, 'toHaveLastReturnedWith');\n    const results = getResults(fn);\n    const lastResult = results[results.length - 1];\n    return lastResult && lastResult.type === 'return' && deepEqualCheck(lastResult.value, expectedValue);\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Core logic for checking if a function returned a specific value at a specific call\n * @param {Function} fn - The function to check\n * @param {number} nthCall - The call number to check (1-based)\n * @param {*} expectedValue - The expected return value\n * @returns {boolean} - True if the function returned the expected value at the specified call\n */\nexport function _hasNthReturnedWith(fn, nthCall, expectedValue) {\n  try {\n    validateSpyOrMock(fn, 'toHaveNthReturnedWith');\n    const results = getResults(fn);\n    const nthResultIndex = nthCall - 1;\n    const result = results[nthResultIndex];\n    return result && result.type === 'return' && deepEqualCheck(result.value, expectedValue);\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Core logic for checking if a function has thrown an error\n * @param {Function} fn - The function to check\n * @returns {boolean} - True if the function has thrown an error\n */\nexport function _hasThrown(fn) {\n  try {\n    validateSpyOrMock(fn, 'toHaveThrown');\n    const results = getResults(fn);\n    return results.some(result => result.type === 'throw');\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Core logic for checking if a function has thrown a specific error\n * @param {Function} fn - The function to check\n * @param {Error} expectedError - The expected error\n * @returns {boolean} - True if the function has thrown the expected error\n */\nexport function _hasThrownWith(fn, expectedError) {\n  try {\n    validateSpyOrMock(fn, 'toHaveThrownWith');\n    const results = getResults(fn);\n    return results.some(result => {\n      if (result.type !== 'throw') return false;\n      \n      const thrownError = result.value;\n      \n      // If expectedError is a string, check if error message contains it\n      if (typeof expectedError === 'string') {\n        return thrownError && thrownError.message && thrownError.message.includes(expectedError);\n      }\n      \n      // If expectedError is a RegExp, test against error message\n      if (expectedError instanceof RegExp) {\n        return thrownError && thrownError.message && expectedError.test(thrownError.message);\n      }\n      \n      // If expectedError is a constructor, check if error is instance of it\n      if (typeof expectedError === 'function') {\n        return thrownError instanceof expectedError;\n      }\n      \n      // Otherwise, do deep equality check\n      return deepEqualCheck(thrownError, expectedError);\n    });\n  } catch {\n    return false;\n  }\n}\n\n/**\n * Core logic for checking if a function was called with exactly the provided arguments (strict equality)\n * @param {Function} fn - The function to check\n * @param {Array} args - The arguments to check for\n * @returns {boolean} - True if the function was called with exactly the arguments\n */\nexport function _hasBeenCalledWithExactly(fn, args) {\n  try {\n    validateSpyOrMock(fn, 'toHaveBeenCalledWithExactly');\n    const calls = getCalls(fn);\n    \n    return calls.some((call) => {\n      if (!Array.isArray(call) || call.length !== args.length) {\n        return false;\n      }\n      return call.every((arg, i) => arg === args[i]);\n    });\n  } catch {\n    return false;\n  }\n}\n\nexport function toHaveBeenCalled(received) {\n  const result = _hasBeenCalled(received);\n  return getSpyMatcherResult(result, 'toHaveBeenCalled', received);\n}\n\nexport function toHaveBeenCalledWith(received, ...args) {\n  const result = _hasBeenCalledWith(received, args);\n  return getSpyMatcherResult(result, 'toHaveBeenCalledWith', received, args);\n}\n\nexport function toHaveBeenCalledTimes(received, times) {\n  const result = _hasBeenCalledTimes(received, times);\n  return getSpyMatcherResult(result, 'toHaveBeenCalledTimes', received, times);\n}\n\nexport function toHaveBeenLastCalledWith(received, ...args) {\n  const result = _hasBeenLastCalledWith(received, args);\n  return getSpyMatcherResult(result, 'toHaveBeenLastCalledWith', received, args);\n}\n\nexport function toHaveBeenNthCalledWith(received, nthCall, ...args) {\n  const result = _hasBeenNthCalledWith(received, nthCall, args);\n  return getSpyMatcherResult(result, 'toHaveBeenNthCalledWith', received, args);\n}\n\nexport function toHaveReturned(received) {\n  const result = _hasReturned(received);\n  return getSpyMatcherResult(result, 'toHaveReturned', received);\n}\n\nexport function toHaveReturnedWith(received, expectedValue) {\n  const result = _hasReturnedWith(received, expectedValue);\n  return getSpyMatcherResult(result, 'toHaveReturnedWith', received, expectedValue);\n}\n\nexport function toHaveLastReturnedWith(received, expectedValue) {\n  const result = _hasLastReturnedWith(received, expectedValue);\n  return getSpyMatcherResult(result, 'toHaveLastReturnedWith', received, expectedValue);\n}\n\nexport function toHaveNthReturnedWith(received, nthCall, expectedValue) {\n  const result = _hasNthReturnedWith(received, nthCall, expectedValue);\n  return getSpyMatcherResult(result, 'toHaveNthReturnedWith', received, expectedValue);\n}\n\nexport function toHaveThrown(received) {\n  const result = _hasThrown(received);\n  return getSpyMatcherResult(result, 'toHaveThrown', received);\n}\n\nexport function toHaveThrownWith(received, expectedError) {\n  const result = _hasThrownWith(received, expectedError);\n  return getSpyMatcherResult(result, 'toHaveThrownWith', received, expectedError);\n}\n\nexport function toHaveBeenCalledWithExactly(received, ...args) {\n  const result = _hasBeenCalledWithExactly(received, args);\n  return getSpyMatcherResult(result, 'toHaveBeenCalledWithExactly', received, args);\n}\n"],"names":["isSpy","isMockFunction","validateSpyOrMock","getSpyMatcherResult"],"mappings":"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"}