1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 13:50:04 +08:00
SpaceVim/bundle/gina.vim/test/gina/command/compare.vimspec

155 lines
4.6 KiB
Plaintext
Vendored

Describe gina#command#compare
Before all
let Path = vital#gina#import('System.Filepath')
let slit1 = Slit(tempname(), 1)
call slit1.write('A/foo.txt', [])
call slit1.execute('add %s', slit1.path('A/foo.txt'))
call slit1.write('A/foo.txt', ['1'])
call slit1.execute('commit --quiet -am "First"')
call slit1.write('A/foo.txt', ['2'])
call slit1.execute('commit --quiet -am "Second"')
call slit1.write('A/foo.txt', ['3'])
call slit1.execute('add %s', slit1.path('A/foo.txt'))
call slit1.write('A/foo.txt', ['4'])
End
After all
%bwipeout!
End
Before
%bwipeout!
End
Describe Use cases
It might be called without arguments
execute 'edit' fnameescape(slit1.path('A/foo.txt'))
GinaSync compare :
Assert Equals(tabpagenr('$'), 2)
Assert Equals(winnr('$'), 2)
" Focused buffer
Assert Equals(bufname('%'), slit1.path('A/foo.txt'))
Assert Equals(getline(1, '$'), [
\ '4',
\])
" topleft
let bufnr = winbufnr(1)
Assert Equals(bufname(bufnr), printf('gina://%s:show/:A/foo.txt', slit1.refname))
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '3',
\])
" botright
let bufnr = winbufnr(2)
Assert Equals(bufname(bufnr), slit1.path('A/foo.txt'))
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '4',
\])
End
It might be called with -R
execute 'edit' fnameescape(slit1.path('A/foo.txt'))
GinaSync compare -R :
Assert Equals(tabpagenr('$'), 2)
Assert Equals(winnr('$'), 2)
" Focused buffer
Assert Equals(bufname('%'), printf('gina://%s:show/:A/foo.txt', slit1.refname))
Assert Equals(getline(1, '$'), [
\ '3',
\])
" topleft
let bufnr = winbufnr(1)
Assert Equals(bufname(bufnr), slit1.path('A/foo.txt'))
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '4',
\])
" botright
let bufnr = winbufnr(2)
Assert Equals(bufname(bufnr), printf('gina://%s:show/:A/foo.txt', slit1.refname))
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '3',
\])
End
It might be called with --cached
execute 'edit' fnameescape(slit1.path('A/foo.txt'))
GinaSync compare --cached :
Assert Equals(tabpagenr('$'), 2)
Assert Equals(winnr('$'), 2)
" Focused buffer
Assert Equals(bufname('%'), printf('gina://%s:show/:A/foo.txt', slit1.refname))
Assert Equals(getline(1, '$'), [
\ '3',
\])
" topleft
let bufnr = winbufnr(1)
Assert Equals(bufname(bufnr), printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname))
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '2',
\])
" botright
let bufnr = winbufnr(2)
Assert Equals(bufname(bufnr), printf('gina://%s:show/:A/foo.txt', slit1.refname))
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '3',
\])
End
It might be called with HEAD~
execute 'edit' fnameescape(slit1.path('A/foo.txt'))
GinaSync compare HEAD~:
Assert Equals(tabpagenr('$'), 2)
Assert Equals(winnr('$'), 2)
" Focused buffer
Assert Equals(bufname('%'), slit1.path('A/foo.txt'))
Assert Equals(getline(1, '$'), [
\ '4',
\])
" topleft
let bufnr = winbufnr(1)
Assert Equals(bufname(bufnr), printf('gina://%s:show/HEAD~:A/foo.txt', slit1.refname))
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '1',
\])
" botright
let bufnr = winbufnr(2)
Assert Equals(bufname(bufnr), slit1.path('A/foo.txt'))
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '4',
\])
End
It might be called with HEAD..HEAD~
execute 'edit' fnameescape(slit1.path('A/foo.txt'))
GinaSync compare HEAD..HEAD~:
Assert Equals(tabpagenr('$'), 2)
Assert Equals(winnr('$'), 2)
" Focused buffer
Assert Equals(bufname('%'), printf('gina://%s:show/HEAD~:A/foo.txt', slit1.refname))
Assert Equals(getline(1, '$'), [
\ '1',
\])
" topleft
let bufnr = winbufnr(1)
Assert Equals(bufname(bufnr), printf('gina://%s:show/HEAD:A/foo.txt', slit1.refname))
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '2',
\])
" botright
let bufnr = winbufnr(2)
Assert Equals(bufname(bufnr), printf('gina://%s:show/HEAD~:A/foo.txt', slit1.refname))
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '1',
\])
End
End
End