/** @jsxImportSource test */
import { TextInput } from "react-native";
import {
fireEvent,
registerCSS,
render,
screen,
setupAllComponents,
} from "test";
const testID = "react-native-css-interop";
setupAllComponents();
test("hover", () => {
registerCSS(`.my-class:hover { width: 10px; }`);
render();
const component = screen.getByTestId(testID);
expect(component).toHaveStyle(undefined);
fireEvent(component, "hoverIn");
expect(component).toHaveStyle({ width: 10 });
fireEvent(component, "hoverOut");
expect(component).toHaveStyle(undefined);
});
test("active", () => {
registerCSS(`.my-class:active { width: 10px; }`);
render();
const component = screen.getByTestId(testID);
expect(component).toHaveStyle(undefined);
fireEvent(component, "pressIn");
expect(component).toHaveStyle({ width: 10 });
fireEvent(component, "pressOut");
expect(component).toHaveStyle(undefined);
});
test("focus", () => {
registerCSS(`.my-class:focus { width: 10px; }`);
render();
const component = screen.getByTestId(testID);
expect(component).toHaveStyle(undefined);
fireEvent(component, "focus");
expect(component).toHaveStyle({ width: 10 });
fireEvent(component, "blur");
expect(component).toHaveStyle(undefined);
});
test(":hover:active:focus", () => {
registerCSS(`.my-class:hover:active:focus { width: 10px; }`);
render();
const component = screen.getByTestId(testID);
expect(component).toHaveStyle(undefined);
fireEvent(component, "hoverIn", {});
expect(component).toHaveStyle(undefined);
fireEvent(component, "pressIn", {});
expect(component).toHaveStyle(undefined);
fireEvent(component, "focus", {});
expect(component).toHaveStyle({ width: 10 });
fireEvent(component, "hoverOut", {});
expect(component).toHaveStyle(undefined);
});