From 0bb1a324115bc323f34fcb76bdce6603949eb4f8 Mon Sep 17 00:00:00 2001 From: Kevin Delgado Date: Fri, 25 Mar 2022 20:58:36 +0000 Subject: [PATCH] Expand newly created cmd-test Modify newly created cmd-test to work for both client-side and server-side validation --- test/cmd/create.sh | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/test/cmd/create.sh b/test/cmd/create.sh index fda8e148a1f..bf9bf4ebb61 100755 --- a/test/cmd/create.sh +++ b/test/cmd/create.sh @@ -154,6 +154,27 @@ run_kubectl_create_kustomization_directory_tests() { set +o errexit } +has_one_of_error_message() { + local message=$1 + local match1=$2 + local match2=$3 + + if (grep -q "${match1}" <<< "${message}") || (grep -q "${match2}" <<< "${message}"); then + echo "Successful" + echo "message:${message}" + echo "has either:${match1}" + echo "or:${match2}" + return 0 + else + echo "FAIL!" + echo "message:${message}" + echo "has neither:${match1}" + echo "nor:${match2}" + caller + return 1 + fi +} + # Runs tests related to kubectl create --validate run_kubectl_create_validate_tests() { set -o nounset @@ -165,7 +186,7 @@ run_kubectl_create_validate_tests() { kube::log::status "Testing kubectl create --validate=true" # create and verify output_message=$(! kubectl create -f hack/testdata/invalid-deployment-unknown-and-duplicate-fields.yaml --validate=true 2>&1) - kube::test::if_has_string "${output_message}" 'error validating data' + has_one_of_error_message "${output_message}" 'strict decoding error' 'error validating data' ## test --validate=false kube::log::status "Testing kubectl create --validate=false" @@ -179,7 +200,7 @@ run_kubectl_create_validate_tests() { kube::log::status "Testing kubectl create --validate=strict" # create and verify output_message=$(! kubectl create -f hack/testdata/invalid-deployment-unknown-and-duplicate-fields.yaml --validate=strict 2>&1) - kube::test::if_has_string "${output_message}" 'error validating data' + has_one_of_error_message "${output_message}" 'strict decoding error' 'error validating data' ## test --validate=warn kube::log::status "Testing kubectl create --validate=warn" @@ -201,7 +222,7 @@ run_kubectl_create_validate_tests() { kube::log::status "Testing kubectl create" # create and verify output_message=$(! kubectl create -f hack/testdata/invalid-deployment-unknown-and-duplicate-fields.yaml 2>&1) - kube::test::if_has_string "${output_message}" 'error validating data' + has_one_of_error_message "${output_message}" 'strict decoding error' 'error validating data' ## test invalid validate value kube::log::status "Testing kubectl create --validate=foo"