Files
vim-lsp-mirror/test/lsp/utils/diff.vimspec
Yasuhiro Matsumoto 46fd937a73 Add test
2019-02-11 03:38:33 +09:00

87 lines
2.3 KiB
Plaintext

Describe lsp#utils#diff
Describe lsp#utils#diff#compute
It should return diff of one letter
let lines1 = [
\ 'foo',
\ 'bar',
\ 'baz',
\]
let lines2 = [
\ 'foo',
\ 'baR',
\ 'baz',
\]
let want = {
\ 'range': {
\ 'start': { 'line': 1, 'character': 2 },
\ 'end': { 'line': 1, 'character': 3 },
\ },
\ 'text': 'R',
\ 'rangeLength': 1
\}
let got = lsp#utils#diff#compute(lines1, lines2)
Assert Equals(got, want)
End
It should return diff of multi-lines
let lines1 = [
\ 'foo',
\ 'bar',
\ 'baz',
\]
let lines2 = [
\ 'Foo',
\ 'baR',
\ 'baz',
\]
let want = {
\ 'range': {
\ 'start': { 'line': 0, 'character': 0 },
\ 'end': { 'line': 1, 'character': 3, }
\ },
\ 'text': "Foo\nbaR",
\ "rangeLength": 7
\}
let got = lsp#utils#diff#compute(lines1, lines2)
Assert Equals(got, want)
End
It should return diff for empty list
let lines1 = []
let lines2 = [
\ 'foo',
\ 'bar',
\ 'baz',
\]
let want = {
\ 'range': {
\ 'start': { 'line': 0, 'character': 0 },
\ 'end': { 'line': 0, 'character': 0, }
\ },
\ 'text': "foo\nbar\nbaz\n",
\ "rangeLength": 0
\}
let got = lsp#utils#diff#compute(lines1, lines2)
Assert Equals(got, want)
let lines1 = [
\ 'foo',
\ 'bar',
\ 'baz',
\]
let lines2 = []
let want = {
\ 'range': {
\ 'start': { 'line': 0, 'character': 0 },
\ 'end': { 'line': 3, 'character': 0, }
\ },
\ 'text': '',
\ "rangeLength": 12
\}
let got = lsp#utils#diff#compute(lines1, lines2)
Assert Equals(got, want)
End
End
End