github.com/azunymous/cdx@v0.0.0-20201122180449-fbb46cc4d252/vcs/gogit/promote_test.go (about)

     1  package gogit
     2  
     3  import (
     4  	"github.com/azunymous/cdx/test/check"
     5  	"github.com/go-git/go-billy/v5/memfs"
     6  	"testing"
     7  )
     8  
     9  func TestPromoteTag(t *testing.T) {
    10  	fs := memfs.New()
    11  	createGitRepo(fs)
    12  	createVersionTag(fs, "app-0.1.0")
    13  
    14  	repo := newTestRepo(fs)
    15  	err := repo.Promote("app", "promoted")
    16  	check.Ok(t, err)
    17  	err = tagExistsAtHead(fs, "app-0.1.0+promoted")
    18  	check.Ok(t, err)
    19  }
    20  
    21  func TestPromoteTagSucceedsIfAlreadyPromoted(t *testing.T) {
    22  	fs := memfs.New()
    23  	createGitRepo(fs)
    24  	createVersionTag(fs, "app-0.1.0")
    25  	createVersionTag(fs, "app-0.1.0+promoted")
    26  
    27  	repo := newTestRepo(fs)
    28  	err := repo.Promote("app", "promoted")
    29  	check.Ok(t, err)
    30  	err = tagExistsAtHead(fs, "app-0.1.0+promoted")
    31  	check.Ok(t, err)
    32  }
    33  
    34  func TestPromoteSecondCommit(t *testing.T) {
    35  	fs := memfs.New()
    36  	createGitRepo(fs)
    37  	createVersionTag(fs, "app-0.1.0")
    38  	createVersionTag(fs, "app-0.1.0+promoted")
    39  	createCommit(fs, "New Version", "Hello world 2")
    40  	createVersionTag(fs, "app-0.2.0")
    41  
    42  	repo := newTestRepo(fs)
    43  	err := repo.Promote("app", "promoted")
    44  	check.Ok(t, err)
    45  	err = tagExistsAtHead(fs, "app-0.2.0+promoted")
    46  	check.Ok(t, err)
    47  }
    48  
    49  func TestPromoteFailsWhenNoBaseTag(t *testing.T) {
    50  	fs := memfs.New()
    51  	createGitRepo(fs)
    52  	createVersionTag(fs, "app-0.1.0")
    53  	createCommit(fs, "New Version", "Hello world 2")
    54  
    55  	repo := newTestRepo(fs)
    56  	err := repo.Promote("app", "promoted")
    57  	check.Assert(t, err != nil, "expecting error to not be nil, got %v", err)
    58  }