This is an automated email from the ASF dual-hosted git repository. gerben pushed a commit to branch simpler-matcher-creation in repository https://gitbox.apache.org/repos/asf/incubator-annotator.git
commit cc999477f12eadd802f30b94bab861a6e6e6a820 Author: Gerben <[email protected]> AuthorDate: Sun Jun 20 15:29:04 2021 +0200 Simplify tests Possible since a Node is now accepted as the scope --- packages/dom/test/text-position/describe.test.ts | 4 +--- packages/dom/test/text-position/match.test.ts | 19 ++++--------------- packages/dom/test/text-quote/describe.test.ts | 8 ++------ packages/dom/test/text-quote/match.test.ts | 20 ++++---------------- 4 files changed, 11 insertions(+), 40 deletions(-) diff --git a/packages/dom/test/text-position/describe.test.ts b/packages/dom/test/text-position/describe.test.ts index 3c4f2c9..34a58c8 100644 --- a/packages/dom/test/text-position/describe.test.ts +++ b/packages/dom/test/text-position/describe.test.ts @@ -33,11 +33,9 @@ describe('createTextPositionSelectorMatcher', () => { const range = expected[0]; it(`case: '${name}'`, async () => { const doc = domParser.parseFromString(html, 'text/html'); - const scope = doc.createRange(); - scope.selectNodeContents(doc); const result = await describeTextPosition( hydrateRange(range, doc), - scope, + doc, ); assert.deepEqual(result, selector); }); diff --git a/packages/dom/test/text-position/match.test.ts b/packages/dom/test/text-position/match.test.ts index 6d51c95..f59f490 100644 --- a/packages/dom/test/text-position/match.test.ts +++ b/packages/dom/test/text-position/match.test.ts @@ -33,28 +33,20 @@ describe('createTextPositionSelectorMatcher', () => { )) { it(`works for case: '${name}'`, async () => { const doc = domParser.parseFromString(html, 'text/html'); - - const scope = doc.createRange(); - scope.selectNodeContents(doc); - - await testMatcher(doc, scope, selector, expected); + await testMatcher(doc, doc, selector, expected); }); } it('handles adjacent text nodes', async () => { const { html, selector } = testCases['simple']; const doc = domParser.parseFromString(html, 'text/html'); - - const scope = doc.createRange(); - scope.selectNodeContents(doc); - const textNode = evaluateXPath(doc, '//b/text()') as Text; textNode.splitText(16); // console.log([...textNode.parentNode.childNodes].map(node => node.textContent)) // โ [ 'l๐rem ipsum dol', 'or amet yada yada' ] - await testMatcher(doc, scope, selector, [ + await testMatcher(doc, doc, selector, [ { startContainerXPath: '//b/text()[1]', startOffset: 13, @@ -68,9 +60,6 @@ describe('createTextPositionSelectorMatcher', () => { const { html, selector } = testCases['simple']; const doc = domParser.parseFromString(html, 'text/html'); - const scope = doc.createRange(); - scope.selectNodeContents(doc); - const textNode = evaluateXPath(doc, '//b/text()') as Text; textNode.splitText(textNode.length); textNode.splitText(21); @@ -83,7 +72,7 @@ describe('createTextPositionSelectorMatcher', () => { // console.log([...textNode.parentNode.childNodes].map(node => node.textContent)) // โ [ '', 'l๐rem ipsum ', '', 'dolor', '', ' am', '', 'et yada yada', '' ] - await testMatcher(doc, scope, selector, [ + await testMatcher(doc, doc, selector, [ { startContainerXPath: '//b/text()[4]', // "dolor" startOffset: 0, @@ -178,7 +167,7 @@ describe('createTextPositionSelectorMatcher', () => { async function testMatcher( doc: Document, - scope: Range, + scope: Node | Range, selector: TextPositionSelector, expected: RangeInfo[], ) { diff --git a/packages/dom/test/text-quote/describe.test.ts b/packages/dom/test/text-quote/describe.test.ts index ceed528..ac48ed2 100644 --- a/packages/dom/test/text-quote/describe.test.ts +++ b/packages/dom/test/text-quote/describe.test.ts @@ -38,11 +38,9 @@ function runTestCases(testCases: DescribeTextQuoteTestCases) { )) { it(`works for case: ${name}`, async () => { const doc = domParser.parseFromString(html, 'text/html'); - const scope = doc.createRange(); - scope.selectNodeContents(doc); const result = await describeTextQuote( hydrateRange(range, doc), - scope, + doc, options, ); assert.deepEqual(result, expected); @@ -142,11 +140,9 @@ describe('describeTextQuote', () => { for (const [name, { html, selector, expected }] of applicableTestCases) { it(`case: '${name}'`, async () => { const doc = domParser.parseFromString(html, 'text/html'); - const scope = doc.createRange(); - scope.selectNodeContents(doc); for (const rangeInfo of expected) { const range = hydrateRange(rangeInfo, doc); - const result = await describeTextQuote(range, scope); + const result = await describeTextQuote(range, doc); assert.equal(result.exact, selector.exact); // Our result may have a different combination of prefix/suffix; only check for obvious inconsistency. if (selector.prefix && result.prefix) diff --git a/packages/dom/test/text-quote/match.test.ts b/packages/dom/test/text-quote/match.test.ts index d2aefdb..f023215 100644 --- a/packages/dom/test/text-quote/match.test.ts +++ b/packages/dom/test/text-quote/match.test.ts @@ -33,21 +33,13 @@ describe('createTextQuoteSelectorMatcher', () => { )) { it(`works for case: '${name}'`, async () => { const doc = domParser.parseFromString(html, 'text/html'); - - const scope = doc.createRange(); - scope.selectNodeContents(doc); - - await testMatcher(doc, scope, selector, expected); + await testMatcher(doc, doc, selector, expected); }); } it('handles adjacent text nodes', async () => { const { html, selector } = testCases['simple']; const doc = domParser.parseFromString(html, 'text/html'); - - const scope = doc.createRange(); - scope.selectNodeContents(doc); - const textNode = evaluateXPath(doc, '//b/text()') as Text; for (let index = textNode.length - 1; index > 0; index--) @@ -55,7 +47,7 @@ describe('createTextQuoteSelectorMatcher', () => { // console.log([...textNode.parentNode.childNodes].map(node => node.textContent)) // โ 'l', 'o', 'r', 'e', 'm', โฆ - await testMatcher(doc, scope, selector, [ + await testMatcher(doc, doc, selector, [ { startContainerXPath: '//b/text()[13]', startOffset: 0, @@ -68,10 +60,6 @@ describe('createTextQuoteSelectorMatcher', () => { it('handles empty text nodes', async () => { const { html, selector } = testCases['simple']; const doc = domParser.parseFromString(html, 'text/html'); - - const scope = doc.createRange(); - scope.selectNodeContents(doc); - const textNode = evaluateXPath(doc, '//b/text()') as Text; textNode.splitText(textNode.length); textNode.splitText(20); @@ -84,7 +72,7 @@ describe('createTextQuoteSelectorMatcher', () => { // console.log([...textNode.parentNode.childNodes].map(node => node.textContent)) // โ '', 'lorem ipsum ', '', 'dolor', '', ' am', '', 'et yada yada', '' - await testMatcher(doc, scope, selector, [ + await testMatcher(doc, doc, selector, [ { startContainerXPath: '//b/text()[4]', // "dolor" startOffset: 0, @@ -187,7 +175,7 @@ describe('createTextQuoteSelectorMatcher', () => { async function testMatcher( doc: Document, - scope: Range, + scope: Node | Range, selector: TextQuoteSelector, expected: RangeInfo[], ) {
