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

Function testBasicPromptFunctionality

src/internal/model_prompt_test.go:78–126  ·  view source on GitHub ↗

testBasicPromptFunctionality tests opening, closing and basic command execution

(t *testing.T, dir1 string)

Source from the content-addressed store, hash-verified

76
77// testBasicPromptFunctionality tests opening, closing and basic command execution
78func testBasicPromptFunctionality(t *testing.T, dir1 string) {
79 t.Run("Basic Prompt Opening", func(t *testing.T) {
80 m := defaultTestModel(dir1)
81 assert.False(t, m.promptModal.IsOpen())
82 TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.OpenCommandLine[0]))
83 assert.True(t, m.promptModal.IsOpen())
84 assert.True(t, m.promptModal.IsShellMode())
85
86 // Switching between modes
87 TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.OpenSPFPrompt[0]))
88 assert.False(t, m.promptModal.IsShellMode(), "Pressing prompt key should switch to prompt mode")
89 TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.OpenCommandLine[0]))
90 assert.True(t, m.promptModal.IsShellMode(), "Pressing shell key should switch to shell mode")
91
92 // Closing and opening in prompt mode
93 TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.CancelTyping[0]))
94 assert.False(t, m.promptModal.IsOpen())
95 TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.OpenSPFPrompt[0]))
96 assert.True(t, m.promptModal.IsOpen())
97 assert.False(t, m.promptModal.IsShellMode())
98 })
99
100 t.Run("Shell command execution", func(t *testing.T) {
101 m := defaultTestModel(dir1)
102
103 TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.OpenCommandLine[0]))
104 // Prefer cross platform command
105 TeaUpdate(m, utils.TeaRuneKeyMsg("mkdir test_dir"))
106 TeaUpdate(m, tea.KeyPressMsg{Code: tea.KeyEnter})
107 assert.True(t, m.promptModal.LastActionSucceeded())
108 assert.DirExists(t, filepath.Join(dir1, "test_dir"))
109
110 // Invalid command shouldn't cause issues.
111 TeaUpdate(m, utils.TeaRuneKeyMsg("xyz_non_exisiting_command"))
112 TeaUpdate(m, tea.KeyPressMsg{Code: tea.KeyEnter})
113 assert.False(t, m.promptModal.LastActionSucceeded())
114 assert.True(t, m.promptModal.IsOpen())
115 })
116
117 t.Run("Model closing", func(t *testing.T) {
118 m := defaultTestModel(dir1)
119 for _, key := range common.Hotkeys.CancelTyping {
120 TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.OpenSPFPrompt[0]))
121 assert.True(t, m.promptModal.IsOpen())
122 TeaUpdate(m, utils.TeaRuneKeyMsg(key))
123 assert.False(t, m.promptModal.IsOpen(), "Prompt should get closed")
124 }
125 })
126}
127
128// testPanelOperations tests split, cd, and open panel operations
129func testPanelOperations(t *testing.T, dir1, dir2, curTestDir string) {

Callers 1

TestModel_Update_PromptFunction · 0.85

Calls 6

TeaRuneKeyMsgFunction · 0.92
TeaUpdateFunction · 0.85
IsShellModeMethod · 0.80
LastActionSucceededMethod · 0.80
defaultTestModelFunction · 0.70
IsOpenMethod · 0.45

Tested by

no test coverage detected