mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-13 01:30:53 +02:00
better interface
This commit is contained in:
@ -8,7 +8,6 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/go-errors/errors"
|
|
||||||
"github.com/jesseduffield/lazygit/pkg/commands/oscommands"
|
"github.com/jesseduffield/lazygit/pkg/commands/oscommands"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
)
|
)
|
||||||
@ -32,7 +31,7 @@ import (
|
|||||||
|
|
||||||
type integrationTest struct {
|
type integrationTest struct {
|
||||||
name string
|
name string
|
||||||
prepare func(rootDir string) error
|
fixture string
|
||||||
}
|
}
|
||||||
|
|
||||||
func generateSnapshot(t *testing.T) string {
|
func generateSnapshot(t *testing.T) string {
|
||||||
@ -61,17 +60,17 @@ func findOrCreateDir(path string) {
|
|||||||
|
|
||||||
func Test(t *testing.T) {
|
func Test(t *testing.T) {
|
||||||
tests := []integrationTest{
|
tests := []integrationTest{
|
||||||
// {
|
{
|
||||||
// name: "commit",
|
name: "commit",
|
||||||
// prepare: createFixture1,
|
fixture: "newFile",
|
||||||
// },
|
},
|
||||||
// {
|
{
|
||||||
// name: "squash",
|
name: "squash",
|
||||||
// prepare: createFixture2,
|
fixture: "manyCommits",
|
||||||
// },
|
},
|
||||||
{
|
{
|
||||||
name: "patchBuilding",
|
name: "patchBuilding",
|
||||||
prepare: createFixture3,
|
fixture: "updatedFile",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,7 +95,7 @@ func Test(t *testing.T) {
|
|||||||
|
|
||||||
prepareIntegrationTestDir()
|
prepareIntegrationTestDir()
|
||||||
|
|
||||||
err = test.prepare(rootDir)
|
err = createFixture(rootDir, test.fixture)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
record := os.Getenv("RECORD_EVENTS") != ""
|
record := os.Getenv("RECORD_EVENTS") != ""
|
||||||
@ -120,41 +119,9 @@ func Test(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func createFixture1() error {
|
func createFixture(rootDir string, name string) error {
|
||||||
cmds := []string{
|
|
||||||
"git init",
|
|
||||||
`sh -c "echo test > myfile"`,
|
|
||||||
}
|
|
||||||
|
|
||||||
return runCommands(cmds)
|
|
||||||
}
|
|
||||||
|
|
||||||
func createFixture2() error {
|
|
||||||
cmds := []string{
|
|
||||||
"git init",
|
|
||||||
`sh -c "echo test1 > myfile1"`,
|
|
||||||
`git add .`,
|
|
||||||
`git commit -am "myfile1"`,
|
|
||||||
`sh -c "echo test2 > myfile2"`,
|
|
||||||
`git add .`,
|
|
||||||
`git commit -am "myfile2"`,
|
|
||||||
`sh -c "echo test3 > myfile3"`,
|
|
||||||
`git add .`,
|
|
||||||
`git commit -am "myfile3"`,
|
|
||||||
`sh -c "echo test4 > myfile4"`,
|
|
||||||
`git add .`,
|
|
||||||
`git commit -am "myfile4"`,
|
|
||||||
`sh -c "echo test5 > myfile5"`,
|
|
||||||
`git add .`,
|
|
||||||
`git commit -am "myfile5"`,
|
|
||||||
}
|
|
||||||
|
|
||||||
return runCommands(cmds)
|
|
||||||
}
|
|
||||||
|
|
||||||
func createFixture3(rootDir string) error {
|
|
||||||
osCommand := oscommands.NewDummyOSCommand()
|
osCommand := oscommands.NewDummyOSCommand()
|
||||||
cmd := exec.Command("sh", filepath.Join(rootDir, "test", "fixtures", "1.sh"))
|
cmd := exec.Command("sh", filepath.Join(rootDir, "test", "fixtures", fmt.Sprintf("%s.sh", name)))
|
||||||
|
|
||||||
if err := osCommand.RunExecutable(cmd); err != nil {
|
if err := osCommand.RunExecutable(cmd); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -163,18 +130,6 @@ func createFixture3(rootDir string) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func runCommands(cmds []string) error {
|
|
||||||
osCommand := oscommands.NewDummyOSCommand()
|
|
||||||
|
|
||||||
for _, cmd := range cmds {
|
|
||||||
if err := osCommand.RunCommand(cmd); err != nil {
|
|
||||||
return errors.New(fmt.Sprintf("error running command `%s`: %v", cmd, err))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func gotoRootDirectory() {
|
func gotoRootDirectory() {
|
||||||
for {
|
for {
|
||||||
_, err := os.Stat(".git")
|
_, err := os.Stat(".git")
|
||||||
|
17
test/fixtures/manyCommits.sh
vendored
Normal file
17
test/fixtures/manyCommits.sh
vendored
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
git init
|
||||||
|
echo test1 > myfile1
|
||||||
|
git add .
|
||||||
|
git commit -am "myfile1"
|
||||||
|
echo test2 > myfile2
|
||||||
|
git add .
|
||||||
|
git commit -am "myfile2"
|
||||||
|
echo test3 > myfile3
|
||||||
|
git add .
|
||||||
|
git commit -am "myfile3"
|
||||||
|
echo test4 > myfile4
|
||||||
|
git add .
|
||||||
|
git commit -am "myfile4"
|
||||||
|
echo test5 > myfile5
|
||||||
|
git add .
|
||||||
|
git commit -am "myfile5"
|
15
test/fixtures/newFile.sh
vendored
Normal file
15
test/fixtures/newFile.sh
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
git init
|
||||||
|
echo test1 > myfile1
|
||||||
|
git add .
|
||||||
|
git commit -am "myfile1"
|
||||||
|
echo test2 > myfile2
|
||||||
|
git add .
|
||||||
|
git commit -am "myfile2"
|
||||||
|
echo test3 > myfile3
|
||||||
|
git add .
|
||||||
|
git commit -am "myfile3"
|
||||||
|
echo test4 > myfile4
|
||||||
|
git add .
|
||||||
|
git commit -am "myfile4"
|
||||||
|
echo test5 > myfile5
|
@ -1,13 +1,57 @@
|
|||||||
On branch master
|
On branch master
|
||||||
nothing to commit, working tree clean
|
nothing to commit, working tree clean
|
||||||
test
|
test1
|
||||||
|
test2
|
||||||
|
test3
|
||||||
|
test4
|
||||||
|
test5
|
||||||
my commit
|
my commit
|
||||||
|
|
||||||
|
|
||||||
diff --git a/myfile b/myfile
|
diff --git a/myfile5 b/myfile5
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000..9daeafb
|
index 0000000..4f346f1
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/myfile
|
+++ b/myfile5
|
||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+test
|
+test5
|
||||||
|
myfile4
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/myfile4 b/myfile4
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..d234c5e
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/myfile4
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+test4
|
||||||
|
myfile3
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/myfile3 b/myfile3
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..df6b0d2
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/myfile3
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+test3
|
||||||
|
myfile2
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/myfile2 b/myfile2
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..180cf83
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/myfile2
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+test2
|
||||||
|
myfile1
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/myfile1 b/myfile1
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..a5bce3f
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/myfile1
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+test1
|
||||||
|
Reference in New Issue
Block a user