Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions src/components/Carousel.issue-862.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import React from "react";
import { Text } from "react-native";
import renderer, { act } from "react-test-renderer";

import Carousel from "./Carousel";

{
const cfg = (global as any).__reanimatedLoggerConfig as
| { logFunction: (data: { level: number; message: string }) => void }
| undefined;
if (cfg) {
const originalLog = cfg.logFunction;
cfg.logFunction = (data) => {
if (data.message.includes("measure() cannot be used with Jest")) return;
originalLog(data);
};
}
}

describe("issue #862 carousel items render in tests", () => {
it("renders carousel items and text nodes, not only the wrapper", async () => {
const data = ["A", "B", "C"];
let tree!: renderer.ReactTestRenderer;

await act(async () => {
tree = renderer.create(
<Carousel
testID="issue-862-carousel"
style={{ width: 320, height: 180 }}
data={data}
renderItem={({ item, index }) => (
<Text testID={`issue-862-item-${item}`}>{`Slide ${index}: ${item}`}</Text>
)}
/>
);
await Promise.resolve();
});

expect(tree.root.findAllByProps({ testID: "issue-862-carousel" }).length).toBeGreaterThan(0);

for (const [index, item] of data.entries()) {
expect(tree.root.findAllByProps({ testID: `issue-862-item-${item}` }).length).toBeGreaterThan(
0
);
expect(
tree.root
.findAllByType(Text)
.some((node) => node.props.children === `Slide ${index}: ${item}`)
).toBe(true);
}

await act(async () => {
tree.unmount();
await Promise.resolve();
});
});
});
Loading