import React from "react";
import { render, screen } from "@testing-library/react-native";
import { Option, Select } from ".";
import { PortalHostWrapper } from "../utils/test";
describe("Select composable statics + coexistence", () => {
it("exposes the composable parts as statics on Select", () => {
expect(Object.keys(Select)).toEqual(
expect.arrayContaining([
"Root",
"Trigger",
"Value",
"Label",
"Content",
"Item",
"Group",
"GroupLabel",
"Separator",
]),
);
});
it("renders through the public statics with no react-hook-form context", () => {
render(
City
,
{ wrapper: PortalHostWrapper },
);
expect(
screen.getByText("City", { includeHiddenElements: true }),
).toBeDefined();
expect(screen.getByTestId("ATL-Select-Trigger")).toBeDefined();
});
it("keeps the legacy props-driven Select callable and renders Option", () => {
render(
,
);
// Legacy trigger testID is preserved and does not collide with the
// composable trigger's ATL-Select-Trigger.
expect(screen.getByTestId("ATL-Select")).toBeDefined();
expect(screen.queryByTestId("ATL-Select-Trigger")).toBeNull();
});
});