import { render, screen } from "@testing-library/react"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { useProviderWizardStore } from "@/store/provider-wizard/store"; import { PROVIDER_WIZARD_MODE } from "@/types/provider-wizard"; import { CredentialsStep } from "./credentials-step"; vi.mock("../../workflow/forms", () => ({ AddViaCredentialsForm: () =>
add-via-credentials-form
, AddViaRoleForm: () =>
add-via-role-form
, UpdateViaCredentialsForm: () =>
update-via-credentials-form
, UpdateViaRoleForm: () =>
update-via-role-form
, })); vi.mock("../../workflow/forms/select-credentials-type/aws", () => ({ SelectViaAWS: () =>
select-via-aws
, })); vi.mock("../../workflow/forms/select-credentials-type/alibabacloud", () => ({ SelectViaAlibabaCloud: () =>
select-via-alibabacloud
, })); vi.mock("../../workflow/forms/select-credentials-type/cloudflare", () => ({ SelectViaCloudflare: () =>
select-via-cloudflare
, })); vi.mock("../../workflow/forms/select-credentials-type/gcp", () => ({ AddViaServiceAccountForm: () =>
add-via-service-account-form
, SelectViaGCP: () =>
select-via-gcp
, })); vi.mock("../../workflow/forms/select-credentials-type/github", () => ({ SelectViaGitHub: () =>
select-via-github
, })); vi.mock("../../workflow/forms/select-credentials-type/m365", () => ({ SelectViaM365: () =>
select-via-m365
, })); vi.mock("../../workflow/forms/update-via-service-account-key-form", () => ({ UpdateViaServiceAccountForm: () =>
update-via-service-account-form
, })); vi.mock("@/actions/providers/providers", () => ({ checkConnectionProvider: vi.fn(), })); vi.mock("@/actions/task/tasks", () => ({ getTask: vi.fn(), })); vi.mock("@/lib/helper", () => ({ checkTaskStatus: vi.fn(), getAuthHeaders: vi.fn(), })); describe("CredentialsStep", () => { beforeEach(() => { sessionStorage.clear(); localStorage.clear(); useProviderWizardStore.getState().reset(); }); it("renders update role form when secret already exists in add mode", () => { // Given useProviderWizardStore.setState({ providerId: "provider-1", providerType: "aws", providerUid: "111111111111", providerAlias: "Production", via: "role", secretId: "secret-1", mode: PROVIDER_WIZARD_MODE.ADD, }); // When render( , ); // Then expect(screen.getByText("update-via-role-form")).toBeInTheDocument(); expect(screen.queryByText("add-via-role-form")).not.toBeInTheDocument(); }); });