import { describe, expect, it, vi } from "vitest"; import { render, screen } from "../../../../../test/src/react-render.js"; import { getCountrySelector } from "./CountrySelector.js"; import { InputSelectionUI } from "./InputSelectionUI.js"; vi.mock("./CountrySelector.js", async (importOriginal) => ({ ...(await importOriginal()), getCountrySelector: vi.fn(), })); describe("InputSelectionUI", () => { it("should initialize countryCodeInfo with defaultSmsCountryCode", () => { const mockGetCountrySelector = vi.mocked(getCountrySelector); mockGetCountrySelector.mockReturnValue("CA +1"); render( , ); expect(screen.getByRole("combobox")).toHaveValue("CA +1"); }); it('should initialize countryCodeInfo with "US +1" if defaultSmsCountryCode is not provided', () => { render( , ); expect(screen.getByRole("combobox")).toHaveValue("US +1"); }); it("should filter countries based on allowedSmsCountryCodes", () => { const mockGetCountrySelector = vi.mocked(getCountrySelector); mockGetCountrySelector.mockReturnValue("IN +91"); render( , ); const options = screen.getAllByRole("option"); const optionTexts = options.map((o) => o.textContent); expect(optionTexts.some((t) => t?.includes("India"))).toBe(true); expect(optionTexts.some((t) => t?.includes("Brazil"))).toBe(true); expect(optionTexts.some((t) => t?.includes("United States"))).toBe(false); }); });