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 }