github.com/wrgl/wrgl@v0.14.0/pkg/ref/utils_test.go (about) 1 // SPDX-License-Identifier: Apache-2.0 2 // Copyright © 2022 Wrangle Ltd 3 4 package ref_test 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 "github.com/stretchr/testify/require" 11 objmock "github.com/wrgl/wrgl/pkg/objects/mock" 12 "github.com/wrgl/wrgl/pkg/ref" 13 refhelpers "github.com/wrgl/wrgl/pkg/ref/helpers" 14 ) 15 16 func TestSeekCommonAncestor(t *testing.T) { 17 db := objmock.NewStore() 18 19 base, _ := refhelpers.SaveTestCommit(t, db, nil) 20 com1, _ := refhelpers.SaveTestCommit(t, db, [][]byte{base}) 21 com2, _ := refhelpers.SaveTestCommit(t, db, [][]byte{base}) 22 b, err := ref.SeekCommonAncestor(db, com1, com2) 23 require.NoError(t, err) 24 assert.Equal(t, base, b) 25 26 base, _ = refhelpers.SaveTestCommit(t, db, nil) 27 com1, _ = refhelpers.SaveTestCommit(t, db, [][]byte{base}) 28 com2, _ = refhelpers.SaveTestCommit(t, db, [][]byte{base}) 29 com3, _ := refhelpers.SaveTestCommit(t, db, [][]byte{com2}) 30 b, err = ref.SeekCommonAncestor(db, com1, com3) 31 require.NoError(t, err) 32 assert.Equal(t, base, b) 33 34 base, _ = refhelpers.SaveTestCommit(t, db, nil) 35 com1, _ = refhelpers.SaveTestCommit(t, db, [][]byte{base}) 36 com2, _ = refhelpers.SaveTestCommit(t, db, [][]byte{base}) 37 com3, _ = refhelpers.SaveTestCommit(t, db, [][]byte{com1}) 38 b, err = ref.SeekCommonAncestor(db, com2, com3) 39 require.NoError(t, err) 40 assert.Equal(t, base, b) 41 42 com1, _ = refhelpers.SaveTestCommit(t, db, nil) 43 com2, _ = refhelpers.SaveTestCommit(t, db, nil) 44 _, err = ref.SeekCommonAncestor(db, com1, com2) 45 assert.Equal(t, "common ancestor commit not found", err.Error()) 46 47 com1, _ = refhelpers.SaveTestCommit(t, db, nil) 48 com2, _ = refhelpers.SaveTestCommit(t, db, nil) 49 com3, _ = refhelpers.SaveTestCommit(t, db, [][]byte{com1}) 50 com4, _ := refhelpers.SaveTestCommit(t, db, [][]byte{com2}) 51 _, err = ref.SeekCommonAncestor(db, com3, com4) 52 assert.Equal(t, "common ancestor commit not found", err.Error()) 53 54 com1, _ = refhelpers.SaveTestCommit(t, db, nil) 55 com2, _ = refhelpers.SaveTestCommit(t, db, nil) 56 com3, _ = refhelpers.SaveTestCommit(t, db, [][]byte{com2}) 57 base, _ = refhelpers.SaveTestCommit(t, db, [][]byte{com1, com3}) 58 com4, _ = refhelpers.SaveTestCommit(t, db, [][]byte{base}) 59 com5, _ := refhelpers.SaveTestCommit(t, db, [][]byte{base}) 60 com6, _ := refhelpers.SaveTestCommit(t, db, [][]byte{com5}) 61 com7, _ := refhelpers.SaveTestCommit(t, db, [][]byte{com6}) 62 b, err = ref.SeekCommonAncestor(db, com4, com7) 63 require.NoError(t, err) 64 assert.Equal(t, base, b) 65 }