mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-18 07:55:29 +00:00
151 lines
3.2 KiB
Go
151 lines
3.2 KiB
Go
package doc
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestFromRelativePath(t *testing.T) {
|
|
type Case struct {
|
|
RelativePath string
|
|
Expected Document
|
|
}
|
|
|
|
testCases := []struct {
|
|
BaseDoc Document
|
|
Cases []Case
|
|
}{
|
|
{
|
|
BaseDoc: Document{
|
|
RepositoryURL: "example.com/repo",
|
|
FilePath: "path/to/file/kustomization.yaml",
|
|
DefaultBranch: "master",
|
|
},
|
|
Cases: []Case{
|
|
{
|
|
RelativePath: "../other/file/resource.yaml",
|
|
Expected: Document{
|
|
RepositoryURL: "example.com/repo",
|
|
FilePath: "path/to/other/file/resource.yaml",
|
|
DefaultBranch: "master",
|
|
User: "example.com",
|
|
},
|
|
},
|
|
{
|
|
RelativePath: "../file/../../something/../to/other/file/patch.yaml",
|
|
Expected: Document{
|
|
RepositoryURL: "example.com/repo",
|
|
FilePath: "path/to/other/file/patch.yaml",
|
|
DefaultBranch: "master",
|
|
User: "example.com",
|
|
},
|
|
},
|
|
{
|
|
RelativePath: "service.yaml",
|
|
Expected: Document{
|
|
RepositoryURL: "example.com/repo",
|
|
FilePath: "path/to/file/service.yaml",
|
|
DefaultBranch: "master",
|
|
User: "example.com",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
for _, c := range tc.Cases {
|
|
rd, err := tc.BaseDoc.FromRelativePath(c.RelativePath)
|
|
if err != nil {
|
|
t.Errorf("unexpected error: %v", err)
|
|
}
|
|
if !reflect.DeepEqual(rd, c.Expected) {
|
|
t.Errorf("document mismatch expected %v, got %v", c.Expected, rd)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestDocument_RepositoryFullName(t *testing.T) {
|
|
testCases := []struct {
|
|
doc Document
|
|
expectedRepositoryFullName string
|
|
}{
|
|
{
|
|
doc: Document{
|
|
RepositoryURL: "https://github.com/user/repo",
|
|
},
|
|
expectedRepositoryFullName: "user/repo",
|
|
},
|
|
{
|
|
doc: Document{
|
|
RepositoryURL: "https://github.com//user/repo////",
|
|
},
|
|
expectedRepositoryFullName: "user/repo",
|
|
},
|
|
{
|
|
doc: Document{
|
|
RepositoryURL: "repo/",
|
|
},
|
|
expectedRepositoryFullName: "repo",
|
|
},
|
|
{
|
|
doc: Document{
|
|
RepositoryURL: "",
|
|
},
|
|
expectedRepositoryFullName: "",
|
|
},
|
|
{
|
|
doc: Document{
|
|
RepositoryURL: "git@github.com:user/repo",
|
|
},
|
|
expectedRepositoryFullName: "user/repo",
|
|
},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
returnedRepositoryFullName := tc.doc.RepositoryFullName()
|
|
if returnedRepositoryFullName != tc.expectedRepositoryFullName {
|
|
t.Errorf("RepositoryFullName expected %s, got %s",
|
|
tc.expectedRepositoryFullName,
|
|
returnedRepositoryFullName)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestDocument_UserName(t *testing.T) {
|
|
testCases := []struct {
|
|
repositoryURL string
|
|
expectedUserName string
|
|
}{
|
|
{
|
|
repositoryURL: "https://github.com/user/repo",
|
|
expectedUserName: "user",
|
|
},
|
|
{
|
|
repositoryURL: "https://github.com//user/repo////",
|
|
expectedUserName: "user",
|
|
},
|
|
{
|
|
repositoryURL: "repo/",
|
|
expectedUserName: "repo",
|
|
},
|
|
{
|
|
repositoryURL: "",
|
|
expectedUserName: "",
|
|
},
|
|
{
|
|
repositoryURL: "git@github.com:user/repo",
|
|
expectedUserName: "user",
|
|
},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
returnedUserName := UserName(tc.repositoryURL)
|
|
if returnedUserName != tc.expectedUserName {
|
|
t.Errorf("UserName expected %s, got %s",
|
|
tc.expectedUserName, returnedUserName)
|
|
}
|
|
}
|
|
}
|