import { env } from "cloudflare:test";
import { beforeEach, describe, expect, it } from "vitest";
import app from "../src/app";
import { activateTestSite, authHeaders, seedLicenseAndBucket } from "./helpers";

describe("GET /v1/usage", () => {
  beforeEach(seedLicenseAndBucket);

  it("returns usage, limits and snapshot count", async () => {
    const { site_id, site_token } = await activateTestSite();
    await env.DB.prepare("UPDATE sites SET storage_bytes_used = 4321 WHERE id = ?")
      .bind(site_id)
      .run();
    await env.DB.prepare(
      "INSERT INTO snapshots (site_id, ts, manifest_sha256, stats_json, status) VALUES (?, '2026-07-23T04:00:00Z', ?, '{}', 'complete')",
    )
      .bind(site_id, "f".repeat(64))
      .run();

    const res = await app.request("/v1/usage", { headers: authHeaders(site_token) }, env);
    expect(res.status).toBe(200);
    expect(await res.json()).toEqual({
      storage_bytes_used: 4321,
      storage_bytes_limit: 1_000_000,
      snapshot_count: 1,
      retention_days: 30,
    });
  });
});
