1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2024-12-12 11:15:00 +02:00
lazygit/pkg/integration/integration_test.go

79 lines
1.4 KiB
Go
Raw Normal View History

2021-09-16 15:38:43 +02:00
//go:build !windows
2021-04-08 13:24:49 +02:00
// +build !windows
package integration
2020-10-04 09:41:33 +02:00
2022-08-07 14:09:39 +02:00
// this is the new way of running tests. See pkg/integration/integration_tests/commit.go
// for an example
2020-10-04 09:41:33 +02:00
import (
2021-04-05 05:07:25 +02:00
"io"
2020-10-04 09:41:33 +02:00
"io/ioutil"
"os"
2021-04-06 01:02:01 +02:00
"os/exec"
"strconv"
2020-10-04 09:41:33 +02:00
"testing"
2021-04-05 05:07:25 +02:00
"github.com/creack/pty"
2020-10-04 09:41:33 +02:00
"github.com/stretchr/testify/assert"
)
func TestIntegration(t *testing.T) {
if testing.Short() {
t.Skip("Skipping integration tests in short mode")
}
mode := GetModeFromEnv()
includeSkipped := os.Getenv("INCLUDE_SKIPPED") != ""
2021-04-06 01:02:01 +02:00
parallelTotal := tryConvert(os.Getenv("PARALLEL_TOTAL"), 1)
parallelIndex := tryConvert(os.Getenv("PARALLEL_INDEX"), 0)
testNumber := 0
2022-08-11 13:21:46 +02:00
err := RunTests(
2021-04-06 01:02:01 +02:00
t.Logf,
runCmdHeadless,
2022-08-12 01:19:39 +02:00
func(test *components.IntegrationTest, f func() error) {
defer func() { testNumber += 1 }()
if testNumber%parallelTotal != parallelIndex {
return
}
2022-08-07 14:09:39 +02:00
t.Run(test.Name(), func(t *testing.T) {
err := f()
assert.NoError(t, err)
2021-04-06 01:02:01 +02:00
})
},
mode,
includeSkipped,
2021-04-06 01:02:01 +02:00
)
2020-10-04 09:41:33 +02:00
2021-04-06 01:02:01 +02:00
assert.NoError(t, err)
}
2020-10-06 00:23:09 +02:00
2021-04-06 01:02:01 +02:00
func runCmdHeadless(cmd *exec.Cmd) error {
cmd.Env = append(
cmd.Env,
"HEADLESS=true",
"TERM=xterm",
)
2020-10-06 00:23:09 +02:00
2021-04-06 01:02:01 +02:00
f, err := pty.StartWithSize(cmd, &pty.Winsize{Rows: 100, Cols: 100})
if err != nil {
return err
}
2020-10-04 09:41:33 +02:00
2021-04-06 01:02:01 +02:00
_, _ = io.Copy(ioutil.Discard, f)
2020-10-04 09:41:33 +02:00
2021-04-06 01:02:01 +02:00
return f.Close()
2020-10-04 09:41:33 +02:00
}
func tryConvert(numStr string, defaultVal int) int {
num, err := strconv.Atoi(numStr)
if err != nil {
return defaultVal
}
return num
}