Add GitVersion field to NewIntegrationTestArgs

It can be used to specify which git versions a given test should or should not run on.
This commit is contained in:
Stefan Haller 2023-04-13 23:14:56 +02:00
parent 227b0b781c
commit a304fed68c
4 changed files with 149 additions and 2 deletions

View file

@ -4,6 +4,7 @@ import (
"testing"
"github.com/jesseduffield/gocui"
"github.com/jesseduffield/lazygit/pkg/commands/git_commands"
"github.com/jesseduffield/lazygit/pkg/commands/models"
"github.com/jesseduffield/lazygit/pkg/config"
"github.com/jesseduffield/lazygit/pkg/gui/types"
@ -87,3 +88,65 @@ func TestSuccess(t *testing.T) {
assert.EqualValues(t, []string{"a", "b"}, driver.pressedKeys)
assert.Equal(t, "", driver.failureMessage)
}
func TestGitVersionRestriction(t *testing.T) {
scenarios := []struct {
testName string
gitVersion GitVersionRestriction
expectedShouldRun bool
}{
{
testName: "From, current is newer",
gitVersion: From("2.24.9"),
expectedShouldRun: true,
},
{
testName: "From, current is same",
gitVersion: From("2.25.0"),
expectedShouldRun: true,
},
{
testName: "From, current is older",
gitVersion: From("2.26.0"),
expectedShouldRun: false,
},
{
testName: "Before, current is older",
gitVersion: Before("2.24.9"),
expectedShouldRun: false,
},
{
testName: "Before, current is same",
gitVersion: Before("2.25.0"),
expectedShouldRun: false,
},
{
testName: "Before, current is newer",
gitVersion: Before("2.26.0"),
expectedShouldRun: true,
},
{
testName: "Includes, current is included",
gitVersion: Includes("2.23.0", "2.25.0"),
expectedShouldRun: true,
},
{
testName: "Includes, current is not included",
gitVersion: Includes("2.23.0", "2.27.0"),
expectedShouldRun: false,
},
}
currentGitVersion := git_commands.GitVersion{Major: 2, Minor: 25, Patch: 0}
for _, s := range scenarios {
t.Run(s.testName, func(t *testing.T) {
test := NewIntegrationTest(NewIntegrationTestArgs{
Description: unitTestDescription,
GitVersion: s.gitVersion,
})
shouldRun := test.ShouldRunForGitVersion(&currentGitVersion)
assert.Equal(t, shouldRun, s.expectedShouldRun)
})
}
}