| package cq |
| |
| import ( |
| "regexp" |
| "testing" |
| |
| "github.com/bazelbuild/buildtools/build" |
| "github.com/stretchr/testify/require" |
| "go.skia.org/infra/go/git" |
| ) |
| |
| const filename = "main.star" |
| |
| func TestCloneBranch(t *testing.T) { |
| |
| t.Run("clone all", func(t *testing.T) { |
| actual, err := WithUpdateCQConfigBytes(filename, []byte(fakeConfig), func(f *build.File) error { |
| return CloneBranch(f, git.MasterBranch, "clone", true, true, nil) |
| }) |
| require.NoError(t, err) |
| require.Equal(t, cloneAllExpect, string(actual)) |
| }) |
| |
| t.Run("clone without experimental", func(t *testing.T) { |
| actual, err := WithUpdateCQConfigBytes(filename, []byte(fakeConfig), func(f *build.File) error { |
| return CloneBranch(f, git.MasterBranch, "clone", false, true, nil) |
| }) |
| require.NoError(t, err) |
| require.Equal(t, cloneNoExperimentalExpect, string(actual)) |
| }) |
| |
| t.Run("clone without tree check", func(t *testing.T) { |
| actual, err := WithUpdateCQConfigBytes(filename, []byte(fakeConfig), func(f *build.File) error { |
| return CloneBranch(f, git.MasterBranch, "clone", true, false, nil) |
| }) |
| require.NoError(t, err) |
| require.Equal(t, cloneNoTreeCheckExpect, string(actual)) |
| }) |
| |
| t.Run("clone exclude regex", func(t *testing.T) { |
| excludeRe := regexp.MustCompile("skia") |
| actual, err := WithUpdateCQConfigBytes(filename, []byte(fakeConfig), func(f *build.File) error { |
| return CloneBranch(f, git.MasterBranch, "clone", true, true, []*regexp.Regexp{excludeRe}) |
| }) |
| require.NoError(t, err) |
| require.Equal(t, cloneExcludeRegexExpect, string(actual)) |
| }) |
| } |
| |
| func TestDeleteBranch(t *testing.T) { |
| |
| actual, err := WithUpdateCQConfigBytes(filename, []byte(fakeConfig), func(f *build.File) error { |
| return DeleteBranch(f, git.MasterBranch) |
| }) |
| require.NoError(t, err) |
| require.Equal(t, deleteExpect, string(actual)) |
| } |