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(); }); });