@@ -2,10 +2,26 @@ const s:suite = themis#suite('scratch_buffer')
2
2
const s: expect = themis#helper (' expect' )
3
3
4
4
function ! s: suite .before () abort
5
- let g: scratch_buffer_tmp_file_pattern = ' /tmp/scratch-%d'
5
+ " Backup default values
6
+ let g: backup_scratch_buffer_default_file_ext = g: scratch_buffer_default_file_ext
7
+ let g: backup_scratch_buffer_default_open_method = g: scratch_buffer_default_open_method
8
+ let g: backup_scratch_buffer_default_buffer_size = g: scratch_buffer_default_buffer_size
9
+ let g: backup_scratch_buffer_auto_save_file_buffer = g: scratch_buffer_auto_save_file_buffer
10
+ let g: backup_scratch_buffer_use_default_keymappings = g: scratch_buffer_use_default_keymappings
11
+ let g: backup_scratch_buffer_auto_hide_buffer = g: scratch_buffer_auto_hide_buffer
6
12
endfunction
7
13
8
14
function ! s: suite .before_each () abort
15
+ " Don't waste our environment
16
+ let g: scratch_buffer_tmp_file_pattern = system (' realpath "./test/tmp/scratch-%d"' )[:-2 ]
17
+ " Restore default values
18
+ let g: scratch_buffer_default_file_ext = g: backup_scratch_buffer_default_file_ext
19
+ let g: scratch_buffer_default_open_method = g: backup_scratch_buffer_default_open_method
20
+ let g: scratch_buffer_default_buffer_size = g: backup_scratch_buffer_default_buffer_size
21
+ let g: scratch_buffer_auto_save_file_buffer = g: backup_scratch_buffer_auto_save_file_buffer
22
+ let g: scratch_buffer_use_default_keymappings= g: backup_scratch_buffer_use_default_keymappings
23
+ let g: scratch_buffer_auto_hide_buffer = g: backup_scratch_buffer_auto_hide_buffer
24
+
9
25
" Clean all created scratch files and buffers
10
26
ScratchBufferClean
11
27
endfunction
@@ -70,3 +86,57 @@ function! s:suite.wipes_opened_files_and_buffer() abort
70
86
\ new_all_buffer_names- >scratch_buffer#helper#contains (second_file),
71
87
\ ).not.to_equal (-1 )
72
88
endfunction
89
+
90
+ function ! s: suite .uses_default_values () abort
91
+ let g: scratch_buffer_default_file_ext = ' ts'
92
+ let g: scratch_buffer_default_open_method = ' vsp'
93
+ let g: scratch_buffer_default_buffer_size = 20
94
+
95
+ " Open another window to resize a scratch buffer
96
+ new
97
+ " Open buffer without arguments
98
+ ScratchBufferOpen
99
+
100
+ const file_name = expand (' %:p' )
101
+ const expected = printf (g: scratch_buffer_tmp_file_pattern , 0 ) .. ' .ts'
102
+ call s: expect (file_name).to_equal (expected)
103
+ call s: expect (winwidth (0 )).to_be_same (20 )
104
+ endfunction
105
+
106
+ function ! s: suite .auto_saves_file_buffer () abort
107
+ let g: scratch_buffer_auto_save_file_buffer = v: true
108
+
109
+ " Create a file buffer
110
+ ScratchBufferOpenFile md
111
+
112
+ " Add some content
113
+ call setline (1 , ' test content' )
114
+
115
+ " Trigger TextChanged event
116
+ doautocmd TextChanged
117
+
118
+ " Check if file was saved
119
+ const file_name = expand (' %:p' )
120
+ call s: expect (filereadable (file_name)).to_equal (1 )
121
+ call s: expect (readfile (file_name)[0 ]).to_equal (' test content' )
122
+ endfunction
123
+
124
+ function ! s: suite .auto_hide_buffer_behavior () abort
125
+ " Test temporary buffer auto-hiding
126
+ let g: scratch_buffer_auto_hide_buffer = #{
127
+ \ when_tmp_buffer: v: true ,
128
+ \ when_file_buffer: v: false ,
129
+ \ }
130
+ only
131
+ ScratchBufferOpen md
132
+ wincmd p " Trigger WinLeave
133
+ call s: expect (winnr (' $' )).to_be_same (1 )
134
+
135
+ " Test file buffer auto-hiding
136
+ let g: scratch_buffer_auto_hide_buffer .when_tmp_buffer = v: false
137
+ let g: scratch_buffer_auto_hide_buffer .when_file_buffer = v: true
138
+ only
139
+ ScratchBufferOpenFile md
140
+ wincmd p " Trigger WinLeave
141
+ call s: expect (winnr (' $' )).to_be_same (1 )
142
+ endfunction
0 commit comments