import { expect } from "@playwright/test";

import { test } from "./lib/fixtures";

test.describe.configure({ mode: "parallel" });

test.afterEach(({ users }) => users.deleteAll());

test.describe("App Store - Authed", () => {
  test("Browse apple-calendar and try to install", async ({ page, users }) => {
    const pro = await users.create();
    await pro.login();
    await page.goto("/apps/categories/calendar");
    await page.click('[data-testid="app-store-app-card-apple-calendar"]');
    await page.click('[data-testid="install-app-button"]');
    await expect(page.locator(`text=Connect to Apple Server`)).toBeVisible();
  });

  test("Installed Apps - Navigation", async ({ page, users }) => {
    const user = await users.create();
    await user.login();
    await page.goto("/apps/installed");
    await page.waitForSelector('[data-testid="connect-calendar-apps"]');
    await page.click('[data-testid="vertical-tab-payment"]');
    await page.waitForSelector('[data-testid="connect-payment-apps"]');
    await page.click('[data-testid="vertical-tab-automation"]');
    await page.waitForSelector('[data-testid="connect-automation-apps"]');
  });
});

test.describe("App Store - Unauthed", () => {
  test("Browse apple-calendar and try to install", async ({ page }) => {
    await page.goto("/apps/categories/calendar");
    await page.click('[data-testid="app-store-app-card-apple-calendar"]');
    await page.click('[data-testid="install-app-button"]');
    await expect(page.locator(`[data-testid="login-form"]`)).toBeVisible();
  });
});
