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  }