X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/5a4872f466ebd76ddd532bdf2798554421c53df4..fe3919e725e156d751069662d11e38f7b4791de1:/.vim/bundle/vim-lsp/test/lsp/utils/diff.vimspec?ds=sidebyside diff --git a/.vim/bundle/vim-lsp/test/lsp/utils/diff.vimspec b/.vim/bundle/vim-lsp/test/lsp/utils/diff.vimspec new file mode 100644 index 00000000..8bdfeea6 --- /dev/null +++ b/.vim/bundle/vim-lsp/test/lsp/utils/diff.vimspec @@ -0,0 +1,86 @@ +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