import {
  makeInMemoryRecordStore,
  type RecordStore,
} from '@platform-modules/record-store'
import { makeCaptureAdapter, type CapturedMail } from './capture.js'
import type { MailAdapter } from './index.js'

export function makeFakeMailAdapter(opts?: {
  now?: () => string
}): MailAdapter & { store: RecordStore<CapturedMail> } {
  const store = makeInMemoryRecordStore<CapturedMail>(
    opts?.now ? { now: opts.now } : undefined,
  )
  const adapter = makeCaptureAdapter({ store })
  return Object.assign(adapter, { store })
}
