@@ -3,180 +3,11 @@ package git_commands
33import (
44 "testing"
55
6- "github.com/go-errors/errors"
76 "github.com/jesseduffield/lazygit/pkg/commands/git_config"
8- "github.com/jesseduffield/lazygit/pkg/commands/oscommands"
97 "github.com/jesseduffield/lazygit/pkg/config"
108 "github.com/stretchr/testify/assert"
119)
1210
13- func TestEditFileCmdStrLegacy (t * testing.T ) {
14- type scenario struct {
15- filename string
16- configEditCommand string
17- configEditCommandTemplate string
18- runner * oscommands.FakeCmdObjRunner
19- getenv func (string ) string
20- gitConfigMockResponses map [string ]string
21- test func (string , error )
22- }
23-
24- scenarios := []scenario {
25- {
26- filename : "test" ,
27- configEditCommand : "" ,
28- configEditCommandTemplate : "{{editor}} {{filename}}" ,
29- runner : oscommands .NewFakeRunner (t ).
30- ExpectArgs ([]string {"which" , "vi" }, "" , errors .New ("error" )),
31- getenv : func (env string ) string {
32- return ""
33- },
34- gitConfigMockResponses : nil ,
35- test : func (cmdStr string , err error ) {
36- assert .EqualError (t , err , "No editor defined in config file, $GIT_EDITOR, $VISUAL, $EDITOR, or git config" )
37- },
38- },
39- {
40- filename : "test" ,
41- configEditCommand : "nano" ,
42- configEditCommandTemplate : "{{editor}} {{filename}}" ,
43- runner : oscommands .NewFakeRunner (t ),
44- getenv : func (env string ) string {
45- return ""
46- },
47- gitConfigMockResponses : nil ,
48- test : func (cmdStr string , err error ) {
49- assert .NoError (t , err )
50- assert .Equal (t , `nano "test"` , cmdStr )
51- },
52- },
53- {
54- filename : "test" ,
55- configEditCommand : "" ,
56- configEditCommandTemplate : "{{editor}} {{filename}}" ,
57- runner : oscommands .NewFakeRunner (t ),
58- getenv : func (env string ) string {
59- return ""
60- },
61- gitConfigMockResponses : map [string ]string {"core.editor" : "nano" },
62- test : func (cmdStr string , err error ) {
63- assert .NoError (t , err )
64- assert .Equal (t , `nano "test"` , cmdStr )
65- },
66- },
67- {
68- filename : "test" ,
69- configEditCommand : "" ,
70- configEditCommandTemplate : "{{editor}} {{filename}}" ,
71- runner : oscommands .NewFakeRunner (t ),
72- getenv : func (env string ) string {
73- if env == "VISUAL" {
74- return "nano"
75- }
76-
77- return ""
78- },
79- gitConfigMockResponses : nil ,
80- test : func (cmdStr string , err error ) {
81- assert .NoError (t , err )
82- assert .Equal (t , `nano "test"` , cmdStr )
83- },
84- },
85- {
86- filename : "test" ,
87- configEditCommand : "" ,
88- configEditCommandTemplate : "{{editor}} {{filename}}" ,
89- runner : oscommands .NewFakeRunner (t ),
90- getenv : func (env string ) string {
91- if env == "EDITOR" {
92- return "emacs"
93- }
94-
95- return ""
96- },
97- gitConfigMockResponses : nil ,
98- test : func (cmdStr string , err error ) {
99- assert .NoError (t , err )
100- assert .Equal (t , `emacs "test"` , cmdStr )
101- },
102- },
103- {
104- filename : "test" ,
105- configEditCommand : "" ,
106- configEditCommandTemplate : "{{editor}} {{filename}}" ,
107- runner : oscommands .NewFakeRunner (t ).
108- ExpectArgs ([]string {"which" , "vi" }, "/usr/bin/vi" , nil ),
109- getenv : func (env string ) string {
110- return ""
111- },
112- gitConfigMockResponses : nil ,
113- test : func (cmdStr string , err error ) {
114- assert .NoError (t , err )
115- assert .Equal (t , `vi "test"` , cmdStr )
116- },
117- },
118- {
119- filename : "file/with space" ,
120- configEditCommand : "" ,
121- configEditCommandTemplate : "{{editor}} {{filename}}" ,
122- runner : oscommands .NewFakeRunner (t ).
123- ExpectArgs ([]string {"which" , "vi" }, "/usr/bin/vi" , nil ),
124- getenv : func (env string ) string {
125- return ""
126- },
127- gitConfigMockResponses : nil ,
128- test : func (cmdStr string , err error ) {
129- assert .NoError (t , err )
130- assert .Equal (t , `vi "file/with space"` , cmdStr )
131- },
132- },
133- {
134- filename : "open file/at line" ,
135- configEditCommand : "vim" ,
136- configEditCommandTemplate : "{{editor}} +{{line}} {{filename}}" ,
137- runner : oscommands .NewFakeRunner (t ),
138- getenv : func (env string ) string {
139- return ""
140- },
141- gitConfigMockResponses : nil ,
142- test : func (cmdStr string , err error ) {
143- assert .NoError (t , err )
144- assert .Equal (t , `vim +1 "open file/at line"` , cmdStr )
145- },
146- },
147- {
148- filename : "default edit command template" ,
149- configEditCommand : "vim" ,
150- configEditCommandTemplate : "" ,
151- runner : oscommands .NewFakeRunner (t ),
152- getenv : func (env string ) string {
153- return ""
154- },
155- gitConfigMockResponses : nil ,
156- test : func (cmdStr string , err error ) {
157- assert .NoError (t , err )
158- assert .Equal (t , `vim +1 -- "default edit command template"` , cmdStr )
159- },
160- },
161- }
162-
163- for _ , s := range scenarios {
164- userConfig := config .GetDefaultConfig ()
165- userConfig .OS .EditCommand = s .configEditCommand
166- userConfig .OS .EditCommandTemplate = s .configEditCommandTemplate
167-
168- instance := buildFileCommands (commonDeps {
169- runner : s .runner ,
170- userConfig : userConfig ,
171- gitConfig : git_config .NewFakeGitConfig (s .gitConfigMockResponses ),
172- getenv : s .getenv ,
173- })
174-
175- s .test (instance .GetEditCmdStrLegacy (s .filename , 1 ))
176- s .runner .CheckForMissingCalls ()
177- }
178- }
179-
18011func TestEditFilesCmd (t * testing.T ) {
18112 type scenario struct {
18213 filenames []string
0 commit comments