Fix barcode scanner tests for Vitest 4

This commit is contained in:
beatz174-bit
2025-11-24 19:49:43 +10:00
parent c3f234076b
commit 3ea11bde4c
@@ -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 {