import * as Icons from "..";
import "@testing-library/jest-dom/extend-expect";
import { render, getByTestId } from "@testing-library/react";
const isIcon = (candidate) => "displayName" in candidate;
describe("all icons exist", () => {
    Object.entries(Icons).forEach(([name, TestIcon]) => {
        if (!isIcon(TestIcon))
            return;
        it(`${name} is truthy`, () => {
            expect(TestIcon).toBeTruthy();
        });
        it(`${name} is properly named`, () => {
            expect(name).toEqual(TestIcon.displayName);
        });
    });
});
describe("all icons render content", () => {
    Object.entries(Icons).forEach(([name, TestIcon]) => {
        if (!isIcon(TestIcon))
            return;
        it(`${name} renders`, () => {
            const result = render(<TestIcon data-testid="test"/>);
            expect(getByTestId(result.container, "test")).toBeTruthy();
        });
    });
});
describe("all icon weights render", () => {
    Object.entries(Icons).forEach(([name, TestIcon]) => {
        if (!isIcon(TestIcon))
            return;
        it(`${name} [thin] renders`, () => {
            const result = render(<TestIcon weight="thin" data-testid="test"/>);
            expect(getByTestId(result.container, "test")).toBeTruthy();
        });
        it(`${name} [light] renders`, () => {
            const result = render(<TestIcon weight="light" data-testid="test"/>);
            expect(getByTestId(result.container, "test")).toBeTruthy();
        });
        it(`${name} [regular] renders`, () => {
            const result = render(<TestIcon weight="regular" data-testid="test"/>);
            expect(getByTestId(result.container, "test")).toBeTruthy();
        });
        it(`${name} [bold] renders`, () => {
            const result = render(<TestIcon weight="bold" data-testid="test"/>);
            expect(getByTestId(result.container, "test")).toBeTruthy();
        });
        it(`${name} [fill] renders`, () => {
            const result = render(<TestIcon weight="fill" data-testid="test"/>);
            expect(getByTestId(result.container, "test")).toBeTruthy();
        });
        it(`${name} [duotone] renders`, () => {
            const result = render(<TestIcon weight="duotone" data-testid="test"/>);
            expect(getByTestId(result.container, "test")).toBeTruthy();
        });
    });
});
