import { describe, expect, it } from 'vitest'
import { getVendorOrders } from './orders.js'
import {
  BUYER,
  USER_A,
  USER_B,
  freshDb,
  seedApprovedVendor,
  seedVendorOrder,
} from './test-helpers.js'

describe('getVendorOrders', () => {
  it('get-vendor-orders-rederived', async () => {
    const db = await freshDb()
    const vendorA = await seedApprovedVendor(db, USER_A, 'Shop A')
    const vendorB = await seedApprovedVendor(db, USER_B, 'Shop B')

    const orderA = await seedVendorOrder(db, BUYER, vendorA.id)
    await seedVendorOrder(db, BUYER, vendorB.id)

    const page = await getVendorOrders(db, {
      userId: USER_A,
      vendorId: vendorB.id,
    })

    expect(page.items).toHaveLength(1)
    expect(page.items[0]?.id).toBe(orderA.id)
    expect(page.items.every((o) =>
      o.lines.some((line) => line.vendorId === vendorA.id),
    )).toBe(true)
    expect(page.items.some((o) =>
      o.lines.some((line) => line.vendorId === vendorB.id),
    )).toBe(false)
  })
})
