mirror of
https://github.com/pocketbase/pocketbase.git
synced 2026-03-06 07:29:54 -05:00
39 lines
814 B
Go
39 lines
814 B
Go
package dbutils_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/pocketbase/pocketbase/tools/dbutils"
|
|
)
|
|
|
|
func TestAliasOrIdentifier(t *testing.T) {
|
|
scenarios := []struct {
|
|
value string
|
|
expected string
|
|
}{
|
|
{"", ""},
|
|
{"abc", "abc"},
|
|
{"abc ", "abc "}, // return unmodified
|
|
{"abc.def", "abc.def"},
|
|
{"abc.123 def", "def"},
|
|
{"abc.123 as def.456", "def.456"},
|
|
{"(abc) def", "def"},
|
|
{"(abc) as def", "def"},
|
|
{"abc def", "def"},
|
|
{"abc as def", "def"},
|
|
// technically invalid identifier but consistent with the dbx regex matching
|
|
{"a b c d", "d"},
|
|
{"a b c as d", "d"},
|
|
}
|
|
|
|
for _, s := range scenarios {
|
|
t.Run(s.value, func(t *testing.T) {
|
|
result := dbutils.AliasOrIdentifier(s.value)
|
|
|
|
if result != s.expected {
|
|
t.Fatalf("Expected\n%v\ngot\n%v", s.expected, result)
|
|
}
|
|
})
|
|
}
|
|
}
|