import { describe, expect, it } from 'vitest'
import type { Db } from '@zync/db/queries'
import { getPaymentAdapter, NullPaymentAdapter } from '@zync/payments'

const db = {} as Db

describe('getPaymentAdapter', () => {
  it.each([undefined, '', '   '])('uses the null adapter for an empty selector (%s)', (selector) => {
    expect(getPaymentAdapter({ ZYNC_PAYMENT_ADAPTER: selector }, db)).toBeInstanceOf(NullPaymentAdapter)
  })

  it('rejects an unknown configured adapter', () => {
    expect(() => getPaymentAdapter({ ZYNC_PAYMENT_ADAPTER: 'stripe' }, db)).toThrow(
      "Unknown payment adapter 'stripe'",
    )
  })
})
