MCPcopy
hub / github.com/yorukot/superfile / testPanelOperations

Function testPanelOperations

src/internal/model_prompt_test.go:129–251  ·  view source on GitHub ↗

testPanelOperations tests split, cd, and open panel operations

(t *testing.T, dir1, dir2, curTestDir string)

Source from the content-addressed store, hash-verified

127
128// testPanelOperations tests split, cd, and open panel operations
129func testPanelOperations(t *testing.T, dir1, dir2, curTestDir string) {
130 t.Run("Split Panel", func(t *testing.T) {
131 m := defaultTestModel(dir1)
132 TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.OpenSPFPrompt[0]))
133 require.True(t, m.promptModal.IsOpen())
134 for len(m.fileModel.FilePanels) < m.fileModel.MaxFilePanel {
135 prevCnt := len(m.fileModel.FilePanels)
136 TeaUpdate(m, utils.TeaRuneKeyMsg(prompt.SplitCommand))
137 TeaUpdate(m, tea.KeyPressMsg{Code: tea.KeyEnter})
138 require.Len(t, m.fileModel.FilePanels, prevCnt+1)
139 assert.Equal(t, dir1, m.fileModel.FilePanels[prevCnt].Location)
140 assert.True(t, m.promptModal.LastActionSucceeded())
141 }
142
143 // Now doing a split should fail
144 prevCnt := len(m.fileModel.FilePanels)
145 TeaUpdate(m, utils.TeaRuneKeyMsg(prompt.SplitCommand))
146 TeaUpdate(m, tea.KeyPressMsg{Code: tea.KeyEnter})
147 assert.False(t, m.promptModal.LastActionSucceeded())
148 assert.Len(t, m.fileModel.FilePanels, prevCnt)
149 })
150
151 t.Run("cd Panel", func(t *testing.T) {
152 m := defaultTestModel(dir1)
153
154 TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.OpenSPFPrompt[0]))
155 TeaUpdate(m, utils.TeaRuneKeyMsg(prompt.CdCommand+" "+dir2))
156 TeaUpdate(m, tea.KeyPressMsg{Code: tea.KeyEnter})
157 assert.True(t, m.promptModal.LastActionSucceeded(), "cd using absolute path should work")
158 assert.Equal(t, dir2, m.getFocusedFilePanel().Location)
159
160 TeaUpdate(m, utils.TeaRuneKeyMsg(prompt.CdCommand+" .."))
161 TeaUpdate(m, tea.KeyPressMsg{Code: tea.KeyEnter})
162 assert.True(t, m.promptModal.LastActionSucceeded(), "cd using relative path should work")
163 assert.Equal(t, curTestDir, m.getFocusedFilePanel().Location)
164
165 TeaUpdate(m, utils.TeaRuneKeyMsg(prompt.CdCommand+" "+filepath.Base(dir2)))
166 TeaUpdate(m, tea.KeyPressMsg{Code: tea.KeyEnter})
167 assert.True(t, m.promptModal.LastActionSucceeded(), "cd using relative path should work")
168 assert.Equal(t, dir2, m.getFocusedFilePanel().Location)
169
170 TeaUpdate(m, utils.TeaRuneKeyMsg(prompt.CdCommand+" "+filepath.Join(dir2, "non_existing_dir")))
171 TeaUpdate(m, tea.KeyPressMsg{Code: tea.KeyEnter})
172 assert.False(t, m.promptModal.LastActionSucceeded(), "cd invalid abs path should not work")
173 assert.Equal(t, dir2, m.getFocusedFilePanel().Location)
174
175 TeaUpdate(m, utils.TeaRuneKeyMsg(prompt.CdCommand+" non_existing_dir"))
176 TeaUpdate(m, tea.KeyPressMsg{Code: tea.KeyEnter})
177 assert.False(t, m.promptModal.LastActionSucceeded(), "cd invalid relative path should not work")
178 assert.Equal(t, dir2, m.getFocusedFilePanel().Location)
179
180 TeaUpdate(m, utils.TeaRuneKeyMsg(prompt.CdCommand+" ~"))
181 TeaUpdate(m, tea.KeyPressMsg{Code: tea.KeyEnter})
182 assert.True(t, m.promptModal.LastActionSucceeded(), "cd using tilde should work")
183 assert.Equal(t, xdg.Home, m.getFocusedFilePanel().Location)
184 })
185
186 t.Run("open Panel", func(t *testing.T) {

Callers 1

TestModel_Update_PromptFunction · 0.85

Calls 8

TeaRuneKeyMsgFunction · 0.92
TeaUpdateFunction · 0.85
LenMethod · 0.80
LastActionSucceededMethod · 0.80
getFocusedFilePanelMethod · 0.80
CloseFilePanelMethod · 0.80
defaultTestModelFunction · 0.70
IsOpenMethod · 0.45

Tested by

no test coverage detected