Files
actions-sync/src/reponames_test.go
2020-09-21 12:08:01 -04:00

61 lines
1.4 KiB
Go

package src
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func Test_extractSourceDest(t *testing.T) {
src, dst, err := extractSourceDest("owner/repo")
require.NoError(t, err)
assert.Equal(t, "owner/repo", src)
assert.Equal(t, "owner/repo", dst)
src, dst, err = extractSourceDest("src_owner/src_repo:dst_owner/dst_repo")
require.NoError(t, err)
assert.Equal(t, "src_owner/src_repo", src)
assert.Equal(t, "dst_owner/dst_repo", dst)
src, dst, err = extractSourceDest("src_owner/src_repo:dst_owner/dst_repo:bogus/bogus")
require.Error(t, err)
}
func Test_validateNwo(t *testing.T) {
nwo, err := validateNwo("owner/repo")
require.NoError(t, err)
assert.Equal(t, "owner/repo", nwo)
nwo, err = validateNwo(" owner/repo ")
require.NoError(t, err)
assert.Equal(t, "owner/repo", nwo)
// test shortest valid name
nwo, err = validateNwo("a/b")
require.NoError(t, err)
assert.Equal(t, "a/b", nwo)
// no slash separator
nwo, err = validateNwo("bogus")
require.Error(t, err)
// no owner
nwo, err = validateNwo("/bogus")
require.Error(t, err)
// no repo name
nwo, err = validateNwo("bogus/")
require.Error(t, err)
nwo, err = validateNwo("bogus whitespace/bogus")
require.Error(t, err)
nwo, err = validateNwo("bogus/bogus/bogus")
require.Error(t, err)
// A separate destination is only permitted for "repo names", not NWOs.
nwo, err = validateNwo("owner/repo:bogus/bogus")
require.Error(t, err)
}