1package git23import (4 "context"5 "testing"67 "github.com/stretchr/testify/assert"8 "github.com/stretchr/testify/require"9)1011func TestRepository_MergeBase(t *testing.T) {12 ctx := context.Background()1314 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 })2122 tests := []struct {23 base string24 head string25 opt MergeBaseOptions26 wantMergeBase string27 }{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}