import { describe, expect, it } from "vitest";

import { shouldKeepPwaInstallEntryVisible } from "../use-pwa-install-entry";

describe("shouldKeepPwaInstallEntryVisible", () => {
  it("hides the install entry after accepted installs", () => {
    expect(
      shouldKeepPwaInstallEntryVisible({
        result: "accepted",
        isInstalled: true,
        canShowInstallEntry: true,
      }),
    ).toBe(false);
  });

  it("keeps the install entry after dismissed prompts when still available", () => {
    expect(
      shouldKeepPwaInstallEntryVisible({
        result: "dismissed",
        isInstalled: false,
        canShowInstallEntry: true,
      }),
    ).toBe(true);
  });

  it("keeps the install entry after unavailable prompts when still available", () => {
    expect(
      shouldKeepPwaInstallEntryVisible({
        result: "unavailable",
        isInstalled: false,
        canShowInstallEntry: true,
      }),
    ).toBe(true);
  });

  it("hides the install entry when the platform can no longer show it", () => {
    expect(
      shouldKeepPwaInstallEntryVisible({
        result: "dismissed",
        isInstalled: false,
        canShowInstallEntry: false,
      }),
    ).toBe(false);
  });
});
