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

86 lines
2.5 KiB
Plaintext
Vendored

Describe gina#command#patch
Before all
let Path = vital#gina#import('System.Filepath')
let slit1 = Slit(tempname(), 1)
let filename1 = slit1.path('A/foo.txt')
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('add %s', slit1.path('A/foo.txt'))
call slit1.write('A/foo.txt', ['3'])
End
After all
%bwipeout!
End
Before
%bwipeout!
End
Describe Use cases
It might be called without arguments
execute 'edit' fnameescape(filename1)
GinaSync patch
Assert Equals(tabpagenr('$'), 2)
Assert Equals(winnr('$'), 3)
" Focused buffer
Assert Equals(bufname('%'), printf('gina://%s:show/:A/foo.txt', slit1.refname))
Assert Equals(getline(1, '$'), [
\ '2',
\])
" 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',
\])
" center
let bufnr = winbufnr(2)
Assert Equals(bufname('%'), printf('gina://%s:show/:A/foo.txt', slit1.refname))
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '2',
\])
" botright
let bufnr = winbufnr(3)
Assert Equals(bufname(bufnr), filename1)
Assert Equals(getbufline(bufnr, 1, '$'), [
\ '3',
\])
" Patch should fail
Assert Equals(split(execute('write'), '\r\?\n'), [
\ '[gina] No difference between index and buffer',
\])
Assert Equals(slit1.execute('status --porcelain'), [
\ 'MM A/foo.txt',
\])
" dor obtain changes from right
normal dor
Assert Equals(getline(1, '$'), [
\ '3',
\])
" Patch should be able to perform and status become clear.
Assert Equals(split(execute('write'), '\r\?\n'), [])
Assert Equals(slit1.execute('status --porcelain'), [
\ 'M A/foo.txt',
\])
" dol obtain changes from left
normal dol
Assert Equals(getline(1, '$'), [
\ '1',
\])
" Patch should be able to perform and status become clear.
Assert Equals(split(execute('write'), '\r\?\n'), [])
Assert Equals(slit1.execute('status --porcelain'), [
\ ' M A/foo.txt',
\])
End
End
End