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

Function TestQuit

src/internal/model_test.go:144–209  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

142}
143
144func TestQuit(t *testing.T) {
145 // Test
146 // 1 - Normal quit
147 // 2 - Normal quit with running process causing a warn modal
148 // 2a - Cancelling quit
149 // 2b - Proceeding with the quit
150 // 3 - Cd on quit test that LastDir is written on
151
152 t.Run("Normal Quit", func(t *testing.T) {
153 m := defaultTestModel(testDir)
154 assert.Equal(t, notQuitting, m.modelQuitState)
155 cmd := TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.Quit[0]))
156 assert.Equal(t, quitDone, m.modelQuitState)
157 assert.True(t, IsTeaQuit(cmd))
158 })
159 t.Run("Quit with running process", func(t *testing.T) {
160 m := defaultTestModel(testDir)
161 m.processBarModel.AddOrUpdateProcess(processbar.Process{
162 State: processbar.InOperation,
163 Done: 0,
164 Total: 100,
165 ID: "1",
166 })
167
168 assert.Equal(t, notQuitting, m.modelQuitState)
169 cmd := TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.Quit[0]))
170 assert.Equal(t, quitConfirmationInitiated, m.modelQuitState)
171 assert.False(t, IsTeaQuit(cmd))
172
173 // Now we would be asked for confirmation.
174 // Cancel the quit
175 cmd = TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.CancelTyping[0]))
176 assert.Equal(t, notQuitting, m.modelQuitState)
177 assert.False(t, IsTeaQuit(cmd))
178
179 // Again trigger quit
180 cmd = TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.Quit[0]))
181 assert.Equal(t, quitConfirmationInitiated, m.modelQuitState)
182 assert.False(t, IsTeaQuit(cmd))
183
184 // Confirm this time
185 cmd = TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.Confirm[0]))
186 assert.Equal(t, quitDone, m.modelQuitState)
187 assert.True(t, IsTeaQuit(cmd))
188 })
189
190 t.Run("Cd on quit test that LastDir is written on", func(t *testing.T) {
191 lastDirFile := filepath.Join(variable.SuperFileStateDir, "lastdir")
192 require.NoError(t, os.MkdirAll(filepath.Dir(lastDirFile), 0o755))
193 m := defaultTestModel(testDir)
194
195 assert.Equal(t, notQuitting, m.modelQuitState)
196
197 cmd := TeaUpdate(m, utils.TeaRuneKeyMsg(common.Hotkeys.CdQuit[0]))
198
199 assert.Equal(t, quitDone, m.modelQuitState)
200 assert.True(t, IsTeaQuit(cmd))
201

Callers

nothing calls this directly

Calls 6

TeaRuneKeyMsgFunction · 0.92
TeaUpdateFunction · 0.85
IsTeaQuitFunction · 0.85
AddOrUpdateProcessMethod · 0.80
RemoveMethod · 0.80
defaultTestModelFunction · 0.70

Tested by

no test coverage detected