git-module

fork of https://git.lin.moe/gogs/git-module

git clone git://git.lin.moe/fork/git-module.git

 1package git
 2
 3import (
 4	"context"
 5	"testing"
 6
 7	"github.com/stretchr/testify/assert"
 8	"github.com/stretchr/testify/require"
 9)
10
11func TestRepository_MergeBase(t *testing.T) {
12	ctx := context.Background()
13
14	t.Run("bad revision", func(t *testing.T) {
15		// "bad_revision" doesn't exist, so git fails with exit status 128 (fatal),
16		// not exit status 1 (no merge base).
17		mb, err := testrepo.MergeBase(ctx, testrepoMarks[30].String(), "bad_revision")
18		assert.Error(t, err)
19		assert.Empty(t, mb)
20	})
21
22	tests := []struct {
23		base          string
24		head          string
25		opt           MergeBaseOptions
26		wantMergeBase string
27	}{
28		{
29			base:          testrepoMarks[29].String(),
30			head:          testrepoMarks[30].String(),
31			wantMergeBase: testrepoMarks[29].String(),
32		},
33		{
34			base:          "master",
35			head:          "release-1.0",
36			wantMergeBase: testrepoMarks[30].String(),
37		},
38	}
39	for _, test := range tests {
40		t.Run("", func(t *testing.T) {
41			mb, err := testrepo.MergeBase(ctx, test.base, test.head, test.opt)
42			require.NoError(t, err)
43			assert.Equal(t, test.wantMergeBase, mb)
44		})
45	}
46}