You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.5 KiB
Go
80 lines
1.5 KiB
Go
package gitutil
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestGit(t *testing.T) {
|
|
c, err := New()
|
|
require.NoError(t, err)
|
|
|
|
out, err := c.run("status")
|
|
require.NoError(t, err)
|
|
require.NotEmpty(t, out)
|
|
|
|
out, err = c.clean(c.run("not-exist"))
|
|
require.Error(t, err)
|
|
require.Empty(t, out)
|
|
require.Equal(t, "git: 'not-exist' is not a git command. See 'git --help'.", err.Error())
|
|
}
|
|
|
|
func TestGitFullCommit(t *testing.T) {
|
|
Mktmp(t)
|
|
c, err := New()
|
|
require.NoError(t, err)
|
|
|
|
GitInit(c, t)
|
|
GitCommit(c, t, "bar")
|
|
|
|
out, err := c.FullCommit()
|
|
require.NoError(t, err)
|
|
require.Equal(t, 40, len(out))
|
|
}
|
|
|
|
func TestGitShortCommit(t *testing.T) {
|
|
Mktmp(t)
|
|
c, err := New()
|
|
require.NoError(t, err)
|
|
|
|
GitInit(c, t)
|
|
GitCommit(c, t, "bar")
|
|
|
|
out, err := c.ShortCommit()
|
|
require.NoError(t, err)
|
|
require.Equal(t, 7, len(out))
|
|
}
|
|
|
|
func TestGitTagsPointsAt(t *testing.T) {
|
|
Mktmp(t)
|
|
c, err := New()
|
|
require.NoError(t, err)
|
|
|
|
GitInit(c, t)
|
|
GitCommit(c, t, "bar")
|
|
GitTag(c, t, "v0.8.0")
|
|
GitCommit(c, t, "foo")
|
|
GitTag(c, t, "v0.9.0")
|
|
|
|
out, err := c.clean(c.run("tag", "--points-at", "HEAD", "--sort", "-version:creatordate"))
|
|
require.NoError(t, err)
|
|
require.Equal(t, "v0.9.0", out)
|
|
}
|
|
|
|
func TestGitDescribeTags(t *testing.T) {
|
|
Mktmp(t)
|
|
c, err := New()
|
|
require.NoError(t, err)
|
|
|
|
GitInit(c, t)
|
|
GitCommit(c, t, "bar")
|
|
GitTag(c, t, "v0.8.0")
|
|
GitCommit(c, t, "foo")
|
|
GitTag(c, t, "v0.9.0")
|
|
|
|
out, err := c.clean(c.run("describe", "--tags", "--abbrev=0"))
|
|
require.NoError(t, err)
|
|
require.Equal(t, "v0.9.0", out)
|
|
}
|