code.gitea.io/gitea@v1.22.3/modules/repository/repo_test.go (about) 1 // Copyright 2024 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package repository 5 6 import ( 7 "testing" 8 9 "code.gitea.io/gitea/modules/git" 10 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func Test_calcSync(t *testing.T) { 15 gitTags := []*git.Tag{ 16 /*{ 17 Name: "v0.1.0-beta", //deleted tag 18 Object: git.MustIDFromString(""), 19 }, 20 { 21 Name: "v0.1.1-beta", //deleted tag but release should not be deleted because it's a release 22 Object: git.MustIDFromString(""), 23 }, 24 */ 25 { 26 Name: "v1.0.0", // keep as before 27 Object: git.MustIDFromString("1006e6e13c73ad3d9e2d5682ad266b5016523485"), 28 }, 29 { 30 Name: "v1.1.0", // retagged with new commit id 31 Object: git.MustIDFromString("bbdb7df30248e7d4a26a909c8d2598a152e13868"), 32 }, 33 { 34 Name: "v1.2.0", // new tag 35 Object: git.MustIDFromString("a5147145e2f24d89fd6d2a87826384cc1d253267"), 36 }, 37 } 38 39 dbReleases := []*shortRelease{ 40 { 41 ID: 1, 42 TagName: "v0.1.0-beta", 43 Sha1: "244758d7da8dd1d9e0727e8cb7704ed4ba9a17c3", 44 IsTag: true, 45 }, 46 { 47 ID: 2, 48 TagName: "v0.1.1-beta", 49 Sha1: "244758d7da8dd1d9e0727e8cb7704ed4ba9a17c3", 50 IsTag: false, 51 }, 52 { 53 ID: 3, 54 TagName: "v1.0.0", 55 Sha1: "1006e6e13c73ad3d9e2d5682ad266b5016523485", 56 }, 57 { 58 ID: 4, 59 TagName: "v1.1.0", 60 Sha1: "53ab18dcecf4152b58328d1f47429510eb414d50", 61 }, 62 } 63 64 inserts, deletes, updates := calcSync(gitTags, dbReleases) 65 if assert.EqualValues(t, 1, len(inserts), "inserts") { 66 assert.EqualValues(t, *gitTags[2], *inserts[0], "inserts equal") 67 } 68 69 if assert.EqualValues(t, 1, len(deletes), "deletes") { 70 assert.EqualValues(t, 1, deletes[0], "deletes equal") 71 } 72 73 if assert.EqualValues(t, 1, len(updates), "updates") { 74 assert.EqualValues(t, *gitTags[1], *updates[0], "updates equal") 75 } 76 }