diff --git a/src/hooks/__tests__/useBarcodeScanner.test.tsx b/src/hooks/__tests__/useBarcodeScanner.test.tsx index 681357d..3c50b8b 100644 --- a/src/hooks/__tests__/useBarcodeScanner.test.tsx +++ b/src/hooks/__tests__/useBarcodeScanner.test.tsx @@ -2,12 +2,16 @@ import { renderHook, waitFor } from '@testing-library/react'; import { describe, it, beforeEach, afterEach, expect, vi, type MockInstance } from 'vitest'; import { useBarcodeScanner } from '../useBarcodeScanner'; -const decodeFromVideoDevice = vi.fn(); +const { decodeFromVideoDevice, MockBrowserMultiFormatReader } = vi.hoisted(() => { + const decodeSpy = vi.fn(); + const Reader = vi.fn(function MockBrowserMultiFormatReader(this: { decodeFromVideoDevice: typeof decodeSpy }) { + this.decodeFromVideoDevice = decodeSpy; + }); + return { decodeFromVideoDevice: decodeSpy, MockBrowserMultiFormatReader: Reader }; +}); vi.mock('@zxing/browser', () => ({ - BrowserMultiFormatReader: vi.fn().mockImplementation(() => ({ - decodeFromVideoDevice, - })), + BrowserMultiFormatReader: MockBrowserMultiFormatReader, })); declare global {