| import type { Mock } from "vitest"; | |
| import { vi } from "vitest"; | |
| type MatrixBotSdkMockParams = { | |
| matrixClient?: unknown; | |
| simpleFsStorageProvider?: unknown; | |
| rustSdkCryptoStorageProvider?: unknown; | |
| includeVerboseLogService?: boolean; | |
| }; | |
| type MatrixBotSdkMock = { | |
| ConsoleLogger: new () => { | |
| trace: Mock<() => void>; | |
| debug: Mock<() => void>; | |
| info: Mock<() => void>; | |
| warn: Mock<() => void>; | |
| error: Mock<() => void>; | |
| }; | |
| MatrixClient: unknown; | |
| LogService: { | |
| setLogger: Mock<() => void>; | |
| warn?: Mock<() => void>; | |
| info?: Mock<() => void>; | |
| debug?: Mock<() => void>; | |
| }; | |
| SimpleFsStorageProvider: unknown; | |
| RustSdkCryptoStorageProvider: unknown; | |
| }; | |
| export function createMatrixBotSdkMock(params: MatrixBotSdkMockParams = {}): MatrixBotSdkMock { | |
| return { | |
| ConsoleLogger: class { | |
| trace = vi.fn(); | |
| debug = vi.fn(); | |
| info = vi.fn(); | |
| warn = vi.fn(); | |
| error = vi.fn(); | |
| }, | |
| MatrixClient: params.matrixClient ?? class {}, | |
| LogService: { | |
| setLogger: vi.fn(), | |
| ...(params.includeVerboseLogService | |
| ? { | |
| warn: vi.fn(), | |
| info: vi.fn(), | |
| debug: vi.fn(), | |
| } | |
| : {}), | |
| }, | |
| SimpleFsStorageProvider: params.simpleFsStorageProvider ?? class {}, | |
| RustSdkCryptoStorageProvider: params.rustSdkCryptoStorageProvider ?? class {}, | |
| }; | |
| } | |