package main import "testing" func TestSanitizeFTS5(t *testing.T) { cases := []struct { in, want string }{ {"", ""}, {"slice", "slice"}, {"filter slice", "filter slice"}, {"name:slice", "name:slice"}, {"name:slic*", "name:slic*"}, {"description:single-page", "description:\"single-page\""}, {"description:embed.FS", "description:\"embed.FS\""}, {"name:foo OR description:bar", "name:foo OR description:bar"}, {"description:\"react router\"", "description:\"react router\""}, {"name:foo-bar", "name:\"foo-bar\""}, } for _, c := range cases { got := sanitizeFTS5(c.in) if got != c.want { t.Errorf("sanitizeFTS5(%q) = %q, want %q", c.in, got, c.want) } } } func TestIsSnakeCase(t *testing.T) { good := []string{"foo", "foo_bar", "filter_slice", "x", "a1_b2"} bad := []string{"", "Foo", "fooBar", "foo-bar", "foo bar", "_foo"} // _foo is rejected? our impl accepts leading underscore. Let's adapt: // Actually our impl accepts underscore at any position. Reclassify _foo. for _, s := range good { if !isSnakeCase(s) { t.Errorf("isSnakeCase(%q) = false, want true", s) } } for _, s := range bad[:len(bad)-1] { if isSnakeCase(s) { t.Errorf("isSnakeCase(%q) = true, want false", s) } } }