Fix failing test case
Our iterator would include text outside the scope’s range but within
its commonAncestorContainer.
Same mistake is also present in describe.ts; asks for a better approach.
diff --git a/packages/dom/src/text-quote/match.ts b/packages/dom/src/text-quote/match.ts
index d5ded88..cc1de71 100644
--- a/packages/dom/src/text-quote/match.ts
+++ b/packages/dom/src/text-quote/match.ts
@@ -36,7 +36,16 @@
const suffix = selector.suffix || '';
const pattern = prefix + exact + suffix;
- const iter = document.createNodeIterator(root, NodeFilter.SHOW_TEXT);
+ const iter = document.createNodeIterator(
+ root,
+ NodeFilter.SHOW_TEXT,
+ {
+ acceptNode: node =>
+ range.intersectsNode(node)
+ ? NodeFilter.FILTER_ACCEPT
+ : NodeFilter.FILTER_REJECT
+ },
+ );
let fromIndex = 0;
let referenceNodeIndex = 0;