mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 13:45:29 +08:00
39 lines
834 B
Go
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)
|
|
}
|
|
}
|
|
}
|