mirror of
https://github.com/bendtherules/react-fiber-traverse.git
synced 2026-08-18 13:52:36 +00:00
match - Add testcase - negative check for difference between child and descendant
This commit is contained in:
@@ -94,5 +94,46 @@ describe("matchGenerator", () => {
|
||||
expect((nodes[0] as FiberNodeForComponentClass).type).toBe(C2);
|
||||
expect((nodes[0] as FiberNodeForComponentClass).type).not.toBe(C1);
|
||||
});
|
||||
|
||||
it("should work for depth=2 class with child selector", () => {
|
||||
const [C1, C2] = createClassComponents(["C1", "C2"]);
|
||||
function CRoot() {
|
||||
return (
|
||||
<C1>
|
||||
<C2 />
|
||||
</C1>
|
||||
);
|
||||
}
|
||||
const rootNode = mountAndGetRootNode(CRoot, container);
|
||||
|
||||
const nodes = matchAll(rootNode, "C1>C2");
|
||||
|
||||
// Can't be zero, in any case
|
||||
expect(nodes.length).not.toBe(0);
|
||||
// Check that only one node is yielded
|
||||
expect(nodes.length).toBe(1);
|
||||
// Check that type is correct
|
||||
expect((nodes[0] as FiberNodeForComponentClass).type).toBe(C2);
|
||||
expect((nodes[0] as FiberNodeForComponentClass).type).not.toBe(C1);
|
||||
});
|
||||
|
||||
it("should not work with child selector for nth-level descendant", () => {
|
||||
const [C1, C2, C3] = createClassComponents(["C1", "C2", "C3"]);
|
||||
function CRoot() {
|
||||
return (
|
||||
<C1>
|
||||
<C2>
|
||||
<C3 />
|
||||
</C2>
|
||||
</C1>
|
||||
);
|
||||
}
|
||||
const rootNode = mountAndGetRootNode(CRoot, container);
|
||||
|
||||
const nodes = matchAll(rootNode, "C1>C3");
|
||||
|
||||
// No matcch found
|
||||
expect(nodes.length).toBe(0);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user