Files
prowler/ui/types/providers.test.ts
Pablo Fernandez Guerra (PFE) 58fd4170b5 feat(ui): support dynamic providers (#11869)
Co-authored-by: Pablo F.G <pablo.fernandez@prowler.com>
2026-07-10 13:22:41 +02:00

69 lines
2.1 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
getProviderDisplayName,
humanizeProviderId,
isConfigurableProvider,
isKnownProviderType,
} from "./providers";
describe("humanizeProviderId", () => {
it("capitalizes a single-word id", () => {
expect(humanizeProviderId("template")).toBe("Template");
});
it("splits on hyphens and capitalizes each word", () => {
expect(humanizeProviderId("local-template")).toBe("Local Template");
});
it("splits on underscores", () => {
expect(humanizeProviderId("foo_bar")).toBe("Foo Bar");
});
it("collapses repeated separators and trims empties", () => {
expect(humanizeProviderId("a--b__c")).toBe("A B C");
});
it("returns an empty string for an empty id", () => {
expect(humanizeProviderId("")).toBe("");
});
});
describe("getProviderDisplayName", () => {
it("returns the configured label for a known provider", () => {
expect(getProviderDisplayName("aws")).toBe("AWS");
expect(getProviderDisplayName("gcp")).toBe("Google Cloud");
});
it("is case-insensitive for known providers", () => {
expect(getProviderDisplayName("AWS")).toBe("AWS");
});
it("humanizes an unknown/dynamic provider id", () => {
expect(getProviderDisplayName("template")).toBe("Template");
expect(getProviderDisplayName("local-template")).toBe("Local Template");
});
it("normalizes case for an unknown/dynamic provider id", () => {
expect(getProviderDisplayName("AWS_THING")).toBe("Aws Thing");
expect(getProviderDisplayName("Local-Template")).toBe("Local Template");
});
});
describe("isKnownProviderType / isConfigurableProvider", () => {
it("accepts a known provider", () => {
expect(isKnownProviderType("aws")).toBe(true);
expect(isConfigurableProvider("aws")).toBe(true);
});
it("rejects a dynamic/unknown provider", () => {
expect(isKnownProviderType("template")).toBe(false);
expect(isConfigurableProvider("template")).toBe(false);
});
it("rejects an empty provider value", () => {
expect(isKnownProviderType("")).toBe(false);
expect(isConfigurableProvider("")).toBe(false);
});
});