Skip to content
This repository was archived by the owner on Nov 25, 2021. It is now read-only.

Commit 80838ce

Browse files
committed
test: add test for getElementsInRange()
1 parent f6a8d93 commit 80838ce

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

src/token_position.test.ts

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,14 @@
1+
import * as assert from 'assert'
12
import { Position } from 'vscode-languageserver-types'
2-
33
import { CodeViewProps, DOM } from './testutils/dom'
4-
import { convertNode, findElementWithOffset, getTokenAtPosition, HoveredToken, locateTarget } from './token_position'
4+
import {
5+
convertNode,
6+
findElementWithOffset,
7+
getCodeElementsInRange,
8+
getTokenAtPosition,
9+
HoveredToken,
10+
locateTarget,
11+
} from './token_position'
512

613
const { expect } = chai
714

@@ -203,4 +210,29 @@ describe('token_positions', () => {
203210
}
204211
})
205212
})
213+
214+
describe('getCodeElementsInRange()', () => {
215+
it('returns all code elements within a given range on a non-diff code view', () => {
216+
const codeView = document.createElement('div')
217+
codeView.innerHTML = `
218+
<div>Line 1</div>
219+
<div>Line 2</div>
220+
<div>Line 3</div>
221+
<div>Line 4</div>
222+
<div>Line 5</div>
223+
`
224+
const codeElements = getCodeElementsInRange({
225+
codeView,
226+
position: { line: 2, endLine: 4 },
227+
getCodeElementFromLineNumber: (codeView, line) => codeView.children[line - 1] as HTMLElement,
228+
})
229+
assert.deepStrictEqual(codeElements.map(({ line, element }) => ({ line, content: element.textContent })), [
230+
{ line: 2, content: 'Line 2' },
231+
{ line: 3, content: 'Line 3' },
232+
{ line: 4, content: 'Line 4' },
233+
])
234+
})
235+
236+
it('returns all code elements within a given range on a diff code view')
237+
})
206238
})

0 commit comments

Comments
 (0)