import { testSkipIfWindows } from "./helpers/test_helper";
import { expect } from "@playwright/test";

testSkipIfWindows("supabase branch selection works", async ({ po }) => {
  await po.setUp({ autoApprove: true });
  await po.importApp("minimal");
  await po.sendPrompt("tc=add-supabase");

  // Connect to Supabase
  await po.page.getByText("Set up supabase").click();
  await po.appManagement.clickConnectSupabaseButton();
  await po.navigation.clickBackButton();
  await po.toggleTokenBar();
  // The default branch has a small context.
  await expect(po.page.getByTestId("token-bar")).toContainText("6%");
  await expect(po.page.getByTestId("token-bar")).toContainText(
    "Context window: 128K",
  );
  // Move mouse away from the token bar to dismiss tooltip before toggling.
  await po.page.mouse.move(0, 0);
  // We hide the token bar so we re-open it later to refresh the token count.
  await po.toggleTokenBar();

  await po.appManagement.getTitleBarAppNameButton().click();
  await po.page.getByTestId("supabase-branch-select").click();
  await po.page.getByRole("option", { name: "Test Branch" }).click();

  await po.navigation.clickBackButton();
  // The test branch has a large context (200k tokens) so it'll hit the 100% limit.
  // This is to make sure we're connecting to the right supabase project for the branch.
  await po.toggleTokenBar();
  await expect(po.page.getByTestId("token-bar")).toContainText("100%");
  await expect(po.page.getByTestId("token-bar")).toContainText(
    "Context window: 128K",
  );
});
