diff --git a/test/matchGenerator-basic.spec.tsx b/test/matchGenerator-basic.spec.tsx
index e4ff808..357677f 100644
--- a/test/matchGenerator-basic.spec.tsx
+++ b/test/matchGenerator-basic.spec.tsx
@@ -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 (
+
+
+
+ );
+ }
+ 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 (
+
+
+
+
+
+ );
+ }
+ const rootNode = mountAndGetRootNode(CRoot, container);
+
+ const nodes = matchAll(rootNode, "C1>C3");
+
+ // No matcch found
+ expect(nodes.length).toBe(0);
+ });
});
});