@@ -101,3 +101,28 @@ func TestRepository_CommitsBetweenIDs(t *testing.T) {
101101 assert .Len (t , commits , c .ExpectedCommits , "case %d" , i )
102102 }
103103}
104+
105+ func TestGetRefCommitID (t * testing.T ) {
106+ bareRepo1Path := filepath .Join (testReposDir , "repo1_bare" )
107+ bareRepo1 , err := openRepositoryWithDefaultContext (bareRepo1Path )
108+ assert .NoError (t , err )
109+ defer bareRepo1 .Close ()
110+
111+ // these test case are specific to the repo1_bare test repo
112+ testCases := []struct {
113+ Ref string
114+ ExpectedCommitID string
115+ }{
116+ {RefNameFromBranch ("master" ).String (), "ce064814f4a0d337b333e646ece456cd39fab612" },
117+ {RefNameFromBranch ("branch1" ).String (), "2839944139e0de9737a044f78b0e4b40d989a9e3" },
118+ {RefNameFromTag ("test" ).String (), "3ad28a9149a2864384548f3d17ed7f38014c9e8a" },
119+ {"ce064814f4a0d337b333e646ece456cd39fab612" , "ce064814f4a0d337b333e646ece456cd39fab612" },
120+ }
121+
122+ for _ , testCase := range testCases {
123+ commitID , err := bareRepo1 .GetRefCommitID (testCase .Ref )
124+ if assert .NoError (t , err ) {
125+ assert .Equal (t , testCase .ExpectedCommitID , commitID )
126+ }
127+ }
128+ }
0 commit comments