import { describe, expect, it } from "vitest";
import { telemetryBatchSchema } from "./events.js";

const event = {
	type: "start" as const,
	tourId: "aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee",
	tourVersion: 1,
	sessionId: "sess_1",
};

describe("telemetryBatchSchema", () => {
	it("accepte un lot valide", () => {
		const result = telemetryBatchSchema.parse({
			key: "pk_test",
			events: [event],
		});
		expect(result.events).toHaveLength(1);
	});

	it("refuse un lot sans cle publique", () => {
		const result = telemetryBatchSchema.safeParse({ events: [event] });
		expect(result.success).toBe(false);
	});

	it("refuse un lot de plus de 50 evenements", () => {
		const result = telemetryBatchSchema.safeParse({
			key: "pk_test",
			events: Array.from({ length: 51 }, () => event),
		});
		expect(result.success).toBe(false);
	});
});
