Fixing tests

This commit is contained in:
yuneng-jiang 2026-01-05 18:22:54 -08:00
parent 2d464032c5
commit 4566255181
3 changed files with 56 additions and 6 deletions

View file

@ -1,20 +1,60 @@
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { render, screen } from "@testing-library/react";
import { describe, expect, it, vi } from "vitest";
import DeleteSSOSettingsModal from "./DeleteSSOSettingsModal";
vi.mock("@/app/(dashboard)/hooks/sso/useSSOSettings", () => ({
useSSOSettings: vi.fn(() => ({
data: {
values: {
google_client_id: "test-client-id",
},
},
})),
}));
vi.mock("@/app/(dashboard)/hooks/sso/useEditSSOSettings", () => ({
useEditSSOSettings: vi.fn(() => ({
mutateAsync: vi.fn(),
isPending: false,
})),
}));
vi.mock("@/app/(dashboard)/hooks/useAuthorized", () => ({
default: vi.fn(() => ({
accessToken: "test-token",
userId: "test-user-id",
userRole: "proxy_admin",
})),
}));
const createQueryClient = () =>
new QueryClient({
defaultOptions: {
queries: {
retry: false,
gcTime: 0,
},
},
});
describe("DeleteSSOSettingsModal", () => {
it("should render", () => {
const onCancel = vi.fn();
const onSuccess = vi.fn();
const queryClient = createQueryClient();
render(
<DeleteSSOSettingsModal isVisible={true} onCancel={onCancel} onSuccess={onSuccess} accessToken="test-token" />,
<QueryClientProvider client={queryClient}>
<DeleteSSOSettingsModal isVisible={true} onCancel={onCancel} onSuccess={onSuccess} />
</QueryClientProvider>,
);
expect(screen.getByText("Confirm Clear SSO Settings")).toBeInTheDocument();
expect(
screen.getByText("Are you sure you want to clear all SSO settings? This action cannot be undone."),
screen.getByText(
"Are you sure you want to clear all SSO settings? Users will no longer be able to login using SSO after this change.",
),
).toBeInTheDocument();
expect(screen.getByText("Users will no longer be able to login using SSO after this change.")).toBeInTheDocument();
});
});

View file

@ -55,6 +55,7 @@ describe("processSSOSettingsPayload", () => {
default_role: "proxy_admin",
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
other_field: "value",
};
@ -83,6 +84,7 @@ describe("processSSOSettingsPayload", () => {
default_role: "internal_user",
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
};
const result = processSSOSettingsPayload(formValues);
@ -100,6 +102,7 @@ describe("processSSOSettingsPayload", () => {
default_role: "internal_user_viewer",
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
};
const result = processSSOSettingsPayload(formValues);
@ -121,6 +124,7 @@ describe("processSSOSettingsPayload", () => {
default_role: "proxy_admin_viewer",
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
};
const result = processSSOSettingsPayload(formValues);
@ -142,6 +146,7 @@ describe("processSSOSettingsPayload", () => {
default_role: "internal_user",
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
};
const result = processSSOSettingsPayload(formValues);
@ -160,6 +165,7 @@ describe("processSSOSettingsPayload", () => {
default_role: "internal_user",
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
};
const result = processSSOSettingsPayload(formValues);
@ -174,6 +180,7 @@ describe("processSSOSettingsPayload", () => {
default_role: "internal_user_viewer",
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
};
const result = processSSOSettingsPayload(formValues);
@ -186,6 +193,7 @@ describe("processSSOSettingsPayload", () => {
default_role: "internal_user",
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
};
const result = processSSOSettingsPayload(formValues);
@ -198,6 +206,7 @@ describe("processSSOSettingsPayload", () => {
default_role: "proxy_admin_viewer",
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
};
const result = processSSOSettingsPayload(formValues);
@ -210,6 +219,7 @@ describe("processSSOSettingsPayload", () => {
default_role: "proxy_admin",
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
};
const result = processSSOSettingsPayload(formValues);
@ -222,6 +232,7 @@ describe("processSSOSettingsPayload", () => {
default_role: "unknown_role",
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
};
const result = processSSOSettingsPayload(formValues);
@ -233,6 +244,7 @@ describe("processSSOSettingsPayload", () => {
const formValues = {
group_claim: "groups",
use_role_mappings: true,
sso_provider: "generic",
};
const result = processSSOSettingsPayload(formValues);

View file

@ -13,7 +13,6 @@ export const processSSOSettingsPayload = (formValues: Record<string, any>): Reco
default_role,
group_claim,
use_role_mappings,
sso_provider,
...rest
} = formValues;
@ -22,8 +21,7 @@ export const processSSOSettingsPayload = (formValues: Record<string, any>): Reco
};
// Add role mappings only if use_role_mappings is checked AND provider supports role mappings
const supportsRoleMappings = sso_provider === "okta" || sso_provider === "generic";
if (use_role_mappings && supportsRoleMappings) {
if (use_role_mappings) {
// Helper function to split comma-separated string into array
const splitTeams = (teams: string | undefined): string[] => {
if (!teams || teams.trim() === "") return [];