Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarthik Nayak <knayak@gitlab.com>2023-05-03 12:38:01 +0300
committerKarthik Nayak <knayak@gitlab.com>2023-05-03 12:38:01 +0300
commit00a1b2b8ba959eb69d6c72cd4ef3916038496394 (patch)
tree0fdd76ac4f0cb0c86c382fce8fae9cd69d851d6e
parent308b5daa0d527660cae0121ee9ce5e98e290d1ad (diff)
localrepo: Use `setupData` struct for `TestMergeTree`
Move the `expectedErr` inline and use a `setupData` struct for the tests in `TestMergeTree`. This is in preparation of adding more tests here.
-rw-r--r--internal/git/localrepo/merge_test.go94
1 files changed, 53 insertions, 41 deletions
diff --git a/internal/git/localrepo/merge_test.go b/internal/git/localrepo/merge_test.go
index 39426f229..d30724144 100644
--- a/internal/git/localrepo/merge_test.go
+++ b/internal/git/localrepo/merge_test.go
@@ -17,14 +17,20 @@ import (
func TestMergeTree(t *testing.T) {
cfg := testcfg.Build(t)
+ type setupData struct {
+ ours git.ObjectID
+ theirs git.ObjectID
+ expectedTreeEntries []gittest.TreeEntry
+ expectedErr error
+ }
+
testCases := []struct {
- desc string
- expectedErr error
- setupFunc func(t *testing.T, ctx context.Context, repoPath string) (ours, theirs git.ObjectID, expectedTreeEntries []gittest.TreeEntry)
+ desc string
+ setup func(t *testing.T, ctx context.Context, repoPath string) setupData
}{
{
desc: "normal merge",
- setupFunc: func(t *testing.T, ctx context.Context, repoPath string) (git.ObjectID, git.ObjectID, []gittest.TreeEntry) {
+ setup: func(t *testing.T, ctx context.Context, repoPath string) setupData {
tree1 := gittest.WriteTree(t, cfg, repoPath, []gittest.TreeEntry{
{
Mode: "100644",
@@ -74,31 +80,32 @@ func TestMergeTree(t *testing.T) {
gittest.WithCommitterName("Buzz"),
)
- return ours, theirs, []gittest.TreeEntry{
- {
- Mode: "100644",
- Path: "file1",
- Content: "foo",
- },
- {
- Mode: "100644",
- Path: "file2",
- Content: "baz",
- },
- {
- Mode: "100644",
- Path: "file3",
- Content: "bar",
+ return setupData{
+ ours: ours,
+ theirs: theirs,
+ expectedTreeEntries: []gittest.TreeEntry{
+ {
+ Mode: "100644",
+ Path: "file1",
+ Content: "foo",
+ },
+ {
+ Mode: "100644",
+ Path: "file2",
+ Content: "baz",
+ },
+ {
+ Mode: "100644",
+ Path: "file3",
+ Content: "bar",
+ },
},
}
},
},
{
desc: "no shared ancestors",
- expectedErr: &MergeTreeError{
- InfoMessage: "unrelated histories",
- },
- setupFunc: func(t *testing.T, ctx context.Context, repoPath string) (git.ObjectID, git.ObjectID, []gittest.TreeEntry) {
+ setup: func(t *testing.T, ctx context.Context, repoPath string) setupData {
tree1 := gittest.WriteTree(t, cfg, repoPath, []gittest.TreeEntry{
{
Mode: "100644",
@@ -124,22 +131,16 @@ func TestMergeTree(t *testing.T) {
gittest.WithCommitterName("Buzz"),
)
- return ours, theirs, nil
+ return setupData{
+ ours: ours,
+ theirs: theirs,
+ expectedErr: &MergeTreeError{InfoMessage: "unrelated histories"},
+ }
},
},
{
desc: "with conflicts",
- expectedErr: &MergeTreeError{
- ConflictingFileInfo: []ConflictingFileInfo{
- {
- FileName: "file2",
- OID: "",
- Stage: 0,
- },
- },
- InfoMessage: "Auto-merging file2\nCONFLICT (add/add): Merge conflict in file2",
- },
- setupFunc: func(t *testing.T, ctx context.Context, repoPath string) (git.ObjectID, git.ObjectID, []gittest.TreeEntry) {
+ setup: func(t *testing.T, ctx context.Context, repoPath string) setupData {
tree1 := gittest.WriteTree(t, cfg, repoPath, []gittest.TreeEntry{
{
Mode: "100644",
@@ -189,7 +190,18 @@ func TestMergeTree(t *testing.T) {
gittest.WithCommitterName("Buzz"),
)
- return ours, theirs, nil
+ return setupData{
+ ours: ours,
+ theirs: theirs,
+ expectedErr: &MergeTreeError{
+ ConflictingFileInfo: []ConflictingFileInfo{
+ {
+ FileName: "file2",
+ },
+ },
+ InfoMessage: "Auto-merging file2\nCONFLICT (add/add): Merge conflict in file2",
+ },
+ }
},
},
}
@@ -203,18 +215,18 @@ func TestMergeTree(t *testing.T) {
})
repo := NewTestRepo(t, cfg, repoProto)
- ours, theirs, treeEntries := tc.setupFunc(t, ctx, repoPath)
+ data := tc.setup(t, ctx, repoPath)
- mergeTreeResult, err := repo.MergeTree(ctx, string(ours), string(theirs), WithConflictingFileNamesOnly())
+ mergeTreeResult, err := repo.MergeTree(ctx, string(data.ours), string(data.theirs), WithConflictingFileNamesOnly())
- require.Equal(t, tc.expectedErr, err)
- if tc.expectedErr == nil {
+ require.Equal(t, data.expectedErr, err)
+ if data.expectedErr == nil {
gittest.RequireTree(
t,
cfg,
repoPath,
string(mergeTreeResult),
- treeEntries,
+ data.expectedTreeEntries,
)
}
})