mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-01-10 04:07:18 +02:00
40b8557608
Pausing at breakpoints and stepping through code can often take longer than 40s, so the timeout is annoying when debugging.
60 lines
1.1 KiB
Go
60 lines
1.1 KiB
Go
package gui
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"time"
|
|
|
|
"github.com/jesseduffield/gocui"
|
|
"github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
"github.com/jesseduffield/lazygit/pkg/utils"
|
|
)
|
|
|
|
type IntegrationTest interface {
|
|
Run(*GuiDriver)
|
|
}
|
|
|
|
func (gui *Gui) handleTestMode() {
|
|
test := gui.integrationTest
|
|
if os.Getenv(components.SANDBOX_ENV_VAR) == "true" {
|
|
return
|
|
}
|
|
|
|
if test != nil {
|
|
isIdleChan := make(chan struct{})
|
|
|
|
gui.c.GocuiGui().AddIdleListener(isIdleChan)
|
|
|
|
waitUntilIdle := func() {
|
|
<-isIdleChan
|
|
}
|
|
|
|
go func() {
|
|
waitUntilIdle()
|
|
|
|
test.Run(&GuiDriver{gui: gui, isIdleChan: isIdleChan})
|
|
|
|
gui.g.Update(func(*gocui.Gui) error {
|
|
return gocui.ErrQuit
|
|
})
|
|
|
|
waitUntilIdle()
|
|
|
|
time.Sleep(time.Second * 1)
|
|
|
|
log.Fatal("gocui should have already exited")
|
|
}()
|
|
|
|
if os.Getenv(components.WAIT_FOR_DEBUGGER_ENV_VAR) == "" {
|
|
go utils.Safe(func() {
|
|
time.Sleep(time.Second * 40)
|
|
log.Fatal("40 seconds is up, lazygit recording took too long to complete")
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|
|
func Headless() bool {
|
|
return os.Getenv("HEADLESS") != ""
|
|
}
|