import { vi, type Mock } from "vitest"; import type { SalesItemRepository } from "../repository/salesItemRepository"; import type { SalesOrderRepository } from "../repository/salesOrderRepository"; export interface SalesItemRepositoryMock extends SalesItemRepository { findByItemId: Mock; findByItemIds: Mock; save: Mock; deleteByItemId: Mock; } export function mockSalesItemRepository(): SalesItemRepositoryMock { return { findByItemId: vi.fn().mockResolvedValue(null), findByItemIds: vi.fn().mockResolvedValue(new Map()), save: vi.fn(), deleteByItemId: vi.fn(), }; } export interface SalesOrderRepositoryMock extends SalesOrderRepository { findById: Mock; findByLineIds: Mock; save: Mock; } // Injected through the commands' repositoryFactory parameter. vi.mock is not // an option: vitest runs with isolate: false, which shares the module cache // across test files. export function mockSalesOrderRepository(): SalesOrderRepositoryMock { return { findById: vi.fn().mockResolvedValue(null), findByLineIds: vi.fn().mockResolvedValue([]), save: vi.fn(), }; }