import { describe, expect, it } from "vitest";
import { tickets } from "../drizzle/schema";
import { listAttendeeTickets, setDbForTests } from "./db";

describe("attendee wallet ownership", () => {
  it("returns account-owned tickets even when checkout used another email", async () => {
    const ticket = { id: 60008, orderId: 60001, attendeeEmail: "couragesewor76@gmail.com", qrToken: "gng_wallet_test", status: "valid", issuedAt: new Date() };
    const db = {
      select() {
        return {
          from(table: unknown) {
            expect(table).toBe(tickets);
            return { leftJoin() { return { where() { return { orderBy: async () => [{ ticket }] }; } }; } };
          },
        };
      },
    };
    setDbForTests(db as never);
    await expect(listAttendeeTickets("dzidsew@gmail.com", 1)).resolves.toEqual([ticket]);
  });
});
