func/pkg/utils/names_test.go

212 lines
4.4 KiB
Go

//go:build !integration
// +build !integration
package utils
import (
"fmt"
"strings"
"testing"
)
// TestValidateFunctionName tests that only correct function names are accepted
func TestValidateFunctionName(t *testing.T) {
cases := []struct {
In string
Valid bool
}{
{"", false},
{"*", false},
{"-", false},
{"example", true},
{"example-com", true},
{"example.com", false},
{"-example-com", false},
{"example-com-", false},
{"Example", false},
{"EXAMPLE", false},
{"42", false},
}
for _, c := range cases {
err := ValidateFunctionName(c.In)
if err != nil && c.Valid {
t.Fatalf("Unexpected error: %v, for '%v'", err, c.In)
}
if err == nil && !c.Valid {
t.Fatalf("Expected error for invalid entry: %v", c.In)
}
}
}
func TestValidateFunctionNameErrMsg(t *testing.T) {
invalidFnName := "EXAMPLE"
errMsgPrefix := fmt.Sprintf("Function name '%v'", invalidFnName)
err := ValidateFunctionName(invalidFnName)
if err != nil {
if !strings.HasPrefix(err.Error(), errMsgPrefix) {
t.Fatalf("Unexpected error message: %v, the message should start with '%v' string", err.Error(), errMsgPrefix)
}
} else {
t.Fatalf("Expected error for invalid entry: %v", invalidFnName)
}
}
func TestValidateEnvVarName(t *testing.T) {
cases := []struct {
In string
Valid bool
}{
{"", false},
{"*", false},
{"example", true},
{"example-com", true},
{"example.com", true},
{"-example-com", true},
{"example-com-", true},
{"Example", true},
{"EXAMPLE", true},
{";Example", false},
{":Example", false},
{",Example", false},
}
for _, c := range cases {
err := ValidateEnvVarName(c.In)
if err != nil && c.Valid {
t.Fatalf("Unexpected error: %v, for '%v'", err, c.In)
}
if err == nil && !c.Valid {
t.Fatalf("Expected error for invalid entry: %v", c.In)
}
}
}
func TestValidateConfigMapKey(t *testing.T) {
cases := []struct {
In string
Valid bool
}{
{"", false},
{"*", false},
{"example", true},
{"example-com", true},
{"example.com", true},
{"-example-com", true},
{"example-com-", true},
{"Example", true},
{"Example_com", true},
{"Example_com.com", true},
{"EXAMPLE", true},
{";Example", false},
{":Example", false},
{",Example", false},
}
for _, c := range cases {
err := ValidateConfigMapKey(c.In)
if err != nil && c.Valid {
t.Fatalf("Unexpected error: %v, for '%v'", err, c.In)
}
if err == nil && !c.Valid {
t.Fatalf("Expected error for invalid entry: %v", c.In)
}
}
}
func TestValidateSecretKey(t *testing.T) {
cases := []struct {
In string
Valid bool
}{
{"", false},
{"*", false},
{"example", true},
{"example-com", true},
{"example.com", true},
{"-example-com", true},
{"example-com-", true},
{"Example", true},
{"Example_com", true},
{"Example_com.com", true},
{"EXAMPLE", true},
{";Example", false},
{":Example", false},
{",Example", false},
}
for _, c := range cases {
err := ValidateSecretKey(c.In)
if err != nil && c.Valid {
t.Fatalf("Unexpected error: %v, for '%v'", err, c.In)
}
if err == nil && !c.Valid {
t.Fatalf("Expected error for invalid entry: %v", c.In)
}
}
}
func TestValidateLabelName(t *testing.T) {
cases := []struct {
In string
Valid bool
}{
{"", false},
{"*", false},
{"example", true},
{"example-com", true},
{"example.com", true},
{"-example-com", false},
{"example-com-", false},
{"Example", true},
{"EXAMPLE", true},
{"example.com/example", true},
{";Example", false},
{":Example", false},
{",Example", false},
}
for _, c := range cases {
err := ValidateLabelKey(c.In)
if err != nil && c.Valid {
t.Fatalf("Unexpected error: %v, for '%v'", err, c.In)
}
if err == nil && !c.Valid {
t.Fatalf("Expected error for invalid entry: %v", c.In)
}
}
}
func TestValidateLabelValue(t *testing.T) {
cases := []struct {
In string
Valid bool
}{
{"", true},
{"*", false},
{"example", true},
{"example-com", true},
{"example.com", true},
{"-example-com", false},
{"example-com-", false},
{"Example", true},
{"EXAMPLE", true},
{"example.com/example", false},
{";Example", false},
{":Example", false},
{",Example", false},
{"{{env.EXAMPLE}}", true},
}
for _, c := range cases {
err := ValidateLabelValue(c.In)
if err != nil && c.Valid {
t.Fatalf("Unexpected error: %v, for '%v'", err, c.In)
}
if err == nil && !c.Valid {
t.Fatalf("Expected error for invalid entry: %v", c.In)
}
}
}