Files
grafana/pkg/storage/unified/sql/sqltemplate/dialect_postgresql_test.go
2024-07-18 08:03:18 -07:00

39 lines
834 B
Go

package sqltemplate
import (
"errors"
"testing"
)
func TestPostgreSQL_Ident(t *testing.T) {
t.Parallel()
testCases := []struct {
input string
output string
err error
}{
{input: ``, err: ErrEmptyIdent},
{input: `polite_example`, output: `"polite_example"`},
{input: `Juan Carlos`, output: `"Juan Carlos"`},
{
input: `unpolite_` + string([]byte{0}) + `example`,
err: ErrPostgreSQLUnsupportedIdent,
},
{
input: `exaggerated " ' ` + "`" + ` example`,
output: `"exaggerated "" ' ` + "`" + ` example"`,
},
}
for i, tc := range testCases {
gotOutput, gotErr := PostgreSQL.Ident(tc.input)
if !errors.Is(gotErr, tc.err) {
t.Fatalf("unexpected error %v in test case %d", gotErr, i)
}
if gotOutput != tc.output {
t.Fatalf("unexpected error %v in test case %d", gotErr, i)
}
}
}