| 33 | } |
| 34 | |
| 35 | function makeDestination( |
| 36 | opts: { deliver?: ReturnType<typeof vi.fn>; close?: ReturnType<typeof vi.fn> } = {} |
| 37 | ) { |
| 38 | const deliver = |
| 39 | opts.deliver ?? |
| 40 | vi.fn(async ({ metadata }: { metadata: { sequence: number } }) => ({ |
| 41 | locator: `loc-${metadata.sequence}`, |
| 42 | })) |
| 43 | const close = opts.close ?? vi.fn(async () => {}) |
| 44 | return { |
| 45 | type: 's3' as const, |
| 46 | displayName: 'Test', |
| 47 | configSchema: { parse: (v: unknown) => v }, |
| 48 | credentialsSchema: { parse: (v: unknown) => v }, |
| 49 | openSession: vi.fn(() => ({ deliver, close })), |
| 50 | _deliver: deliver, |
| 51 | _close: close, |
| 52 | } |
| 53 | } |
| 54 | |
| 55 | const baseDrain = { |
| 56 | id: 'drain-1', |