@crossed/primitive
Version:
A universal & performant styling library for React Native, Next.js & React
73 lines (72 loc) • 5.02 kB
JavaScript
;
var import_jsx_runtime = require("react/jsx-runtime");
var import_jest_dom = require("@testing-library/jest-dom");
var import__ = require("../index");
var import_test = require("@crossed/test");
var import_react_native = require("react-native");
describe("Accordion", () => {
test("createAccordion", async () => {
const components = (0, import__.createAccordion)();
expect(Object.keys(components)).toEqual([
"Accordion",
"AccordionItem",
"AccordionTrigger",
"AccordionPanel",
"rootContext",
"itemContext"
]);
});
test("Show component, single", async () => {
(0, import_test.render)(
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.Accordion, { defaultValues: ["1"], children: [
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.AccordionItem, { value: "1", testID: "item-1", children: [
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.AccordionTrigger, { testID: "trigger-1", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Text, { children: "title 1" }) }),
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.AccordionPanel, { testID: "panel-1", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Text, { children: "content 1" }) })
] }),
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.AccordionItem, { value: "2", testID: "item-2", children: [
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.AccordionTrigger, { testID: "trigger-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Text, { children: "title 1" }) }),
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.AccordionPanel, { testID: "panel-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Text, { children: "content 2" }) })
] })
] })
);
expect(import_test.screen.getByTestId("item-1")).toBeVisible();
expect(import_test.screen.getByTestId("item-2")).toBeVisible();
expect(import_test.screen.getByTestId("trigger-1")).toBeVisible();
expect(import_test.screen.getByTestId("trigger-2")).toBeVisible();
expect(import_test.screen.getByTestId("panel-1")).toBeVisible();
expect(() => import_test.screen.getByTestId("panel-2")).toThrow();
await import_test.userEvent.click(import_test.screen.getByTestId("trigger-2"));
expect(import_test.screen.getByTestId("panel-2")).toBeVisible();
expect(() => import_test.screen.getByTestId("panel-1")).toThrow();
await import_test.userEvent.click(import_test.screen.getByTestId("trigger-2"));
expect(import_test.screen.getByTestId("panel-2")).toBeVisible();
expect(() => import_test.screen.getByTestId("panel-1")).toThrow();
});
test("Show component, multiple", async () => {
(0, import_test.render)(
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.Accordion, { defaultValues: ["1"], allowMultiple: true, children: [
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.AccordionItem, { value: "1", testID: "item-1", children: [
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.AccordionTrigger, { testID: "trigger-1", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Text, { children: "title 1" }) }),
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.AccordionPanel, { testID: "panel-1", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Text, { children: "content 1" }) })
] }),
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import__.AccordionItem, { value: "2", testID: "item-2", children: [
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.AccordionTrigger, { testID: "trigger-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Text, { children: "title 1" }) }),
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import__.AccordionPanel, { testID: "panel-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_native.Text, { children: "content 2" }) })
] })
] })
);
expect(import_test.screen.getByTestId("item-1")).toBeVisible();
expect(import_test.screen.getByTestId("item-2")).toBeVisible();
expect(import_test.screen.getByTestId("trigger-1")).toBeVisible();
expect(import_test.screen.getByTestId("trigger-2")).toBeVisible();
expect(import_test.screen.getByTestId("panel-1")).toBeVisible();
expect(() => import_test.screen.getByTestId("panel-2")).toThrow();
await import_test.userEvent.click(import_test.screen.getByTestId("trigger-2"));
expect(import_test.screen.getByTestId("panel-1")).toBeVisible();
expect(import_test.screen.getByTestId("panel-2")).toBeVisible();
await import_test.userEvent.click(import_test.screen.getByTestId("trigger-1"));
expect(import_test.screen.getByTestId("panel-2")).toBeVisible();
expect(() => import_test.screen.getByTestId("panel-1")).toThrow();
});
});
//# sourceMappingURL=Accordion.spec.js.map