import { describe, expect, it } from "vitest";
import { calculateRate, csvSafe, sessionsOverlap } from "./index";

describe("conference utilities", () => {
  it("detects schedule overlaps with the required interval rule", () => {
    expect(sessionsOverlap(new Date("2026-10-21T01:00:00Z"), new Date("2026-10-21T02:00:00Z"), new Date("2026-10-21T01:30:00Z"), new Date("2026-10-21T03:00:00Z"))).toBe(true);
    expect(sessionsOverlap(new Date("2026-10-21T01:00:00Z"), new Date("2026-10-21T02:00:00Z"), new Date("2026-10-21T02:00:00Z"), new Date("2026-10-21T03:00:00Z"))).toBe(false);
  });

  it("calculates VAT-safe registration totals", () => {
    expect(calculateRate({ baseAmount: 1000, discount: 100, vatRate: 0.12, vatInclusive: false }).totalAmount).toBe("1008.00");
  });

  it("guards CSV exports from spreadsheet formula injection", () => {
    expect(csvSafe("=IMPORTXML()")).toBe("'=IMPORTXML()");
  });
});
