Files
steampipe/pkg/steampipeconfig/validation_failure_test.go

107 lines
2.6 KiB
Go

package steampipeconfig
import (
"strings"
"testing"
)
func TestValidationFailureString(t *testing.T) {
testCases := []struct {
name string
failure ValidationFailure
expected []string
}{
{
name: "basic validation failure",
failure: ValidationFailure{
Plugin: "hub.steampipe.io/plugins/turbot/aws@latest",
ConnectionName: "aws_prod",
Message: "invalid configuration",
ShouldDropIfExists: false,
},
expected: []string{
"Connection: aws_prod",
"Plugin: hub.steampipe.io/plugins/turbot/aws@latest",
"Error: invalid configuration",
},
},
{
name: "validation failure with drop flag",
failure: ValidationFailure{
Plugin: "hub.steampipe.io/plugins/turbot/gcp@latest",
ConnectionName: "gcp_dev",
Message: "missing required field",
ShouldDropIfExists: true,
},
expected: []string{
"Connection: gcp_dev",
"Plugin: hub.steampipe.io/plugins/turbot/gcp@latest",
"Error: missing required field",
},
},
{
name: "validation failure with empty message",
failure: ValidationFailure{
Plugin: "test_plugin",
ConnectionName: "test_conn",
Message: "",
ShouldDropIfExists: false,
},
expected: []string{
"Connection: test_conn",
"Plugin: test_plugin",
"Error: ",
},
},
}
for _, testCase := range testCases {
t.Run(testCase.name, func(t *testing.T) {
result := testCase.failure.String()
for _, expected := range testCase.expected {
if !strings.Contains(result, expected) {
t.Errorf("Expected result to contain '%s', got: %s", expected, result)
}
}
})
}
}
func TestValidationFailureStringFormat(t *testing.T) {
failure := ValidationFailure{
Plugin: "test_plugin",
ConnectionName: "test_connection",
Message: "test error",
ShouldDropIfExists: false,
}
result := failure.String()
// Verify the format includes the expected labels
if !strings.Contains(result, "Connection:") {
t.Error("Expected result to contain 'Connection:' label")
}
if !strings.Contains(result, "Plugin:") {
t.Error("Expected result to contain 'Plugin:' label")
}
if !strings.Contains(result, "Error:") {
t.Error("Expected result to contain 'Error:' label")
}
// Verify the values are present
if !strings.Contains(result, "test_connection") {
t.Error("Expected result to contain connection name")
}
if !strings.Contains(result, "test_plugin") {
t.Error("Expected result to contain plugin name")
}
if !strings.Contains(result, "test error") {
t.Error("Expected result to contain error message")
}
}