github.com/x-oss-byte/git-lfs@v2.5.2+incompatible/git/githistory/ref_updater_test.go (about) 1 package githistory 2 3 import ( 4 "testing" 5 6 "github.com/git-lfs/git-lfs/git" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestRefUpdaterMovesRefs(t *testing.T) { 11 db := DatabaseFromFixture(t, "linear-history-with-tags.git") 12 root, _ := db.Root() 13 14 AssertRef(t, db, 15 "refs/tags/middle", HexDecode(t, "228afe30855933151f7a88e70d9d88314fd2f191")) 16 17 updater := &refUpdater{ 18 CacheFn: func(old []byte) ([]byte, bool) { 19 return HexDecode(t, "d941e4756add6b06f5bee766fcf669f55419f13f"), true 20 }, 21 Refs: []*git.Ref{ 22 { 23 Name: "middle", 24 Sha: "228afe30855933151f7a88e70d9d88314fd2f191", 25 Type: git.RefTypeLocalTag, 26 }, 27 }, 28 Root: root, 29 db: db, 30 } 31 32 err := updater.UpdateRefs() 33 34 assert.NoError(t, err) 35 36 AssertRef(t, db, 37 "refs/tags/middle", HexDecode(t, "d941e4756add6b06f5bee766fcf669f55419f13f")) 38 } 39 40 func TestRefUpdaterMovesRefsWithAnnotatedTags(t *testing.T) { 41 db := DatabaseFromFixture(t, "linear-history-with-annotated-tags.git") 42 root, _ := db.Root() 43 44 AssertRef(t, db, 45 "refs/tags/middle", HexDecode(t, "05797a38b05f910e6efe40dc1a5c0a046a9403e8")) 46 47 updater := &refUpdater{ 48 CacheFn: func(old []byte) ([]byte, bool) { 49 return HexDecode(t, "d941e4756add6b06f5bee766fcf669f55419f13f"), true 50 }, 51 Refs: []*git.Ref{ 52 { 53 Name: "middle", 54 Sha: "05797a38b05f910e6efe40dc1a5c0a046a9403e8", 55 Type: git.RefTypeLocalTag, 56 }, 57 }, 58 Root: root, 59 db: db, 60 } 61 62 err := updater.UpdateRefs() 63 64 assert.NoError(t, err) 65 66 AssertRef(t, db, 67 "refs/tags/middle", HexDecode(t, "9a3c2b4823ad6b300ef25197f0435b267d4f0ad8")) 68 } 69 70 func TestRefUpdaterIgnoresUnovedRefs(t *testing.T) { 71 db := DatabaseFromFixture(t, "linear-history-with-tags.git") 72 root, _ := db.Root() 73 74 AssertRef(t, db, 75 "refs/tags/middle", HexDecode(t, "228afe30855933151f7a88e70d9d88314fd2f191")) 76 77 updater := &refUpdater{ 78 CacheFn: func(old []byte) ([]byte, bool) { 79 return nil, false 80 }, 81 Refs: []*git.Ref{ 82 { 83 Name: "middle", 84 Sha: "228afe30855933151f7a88e70d9d88314fd2f191", 85 Type: git.RefTypeLocalTag, 86 }, 87 }, 88 Root: root, 89 db: db, 90 } 91 92 err := updater.UpdateRefs() 93 94 assert.NoError(t, err) 95 96 AssertRef(t, db, 97 "refs/tags/middle", HexDecode(t, "228afe30855933151f7a88e70d9d88314fd2f191")) 98 }