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  }