test(search): add meilisearch live gate

This commit is contained in:
2026-06-05 06:46:36 +08:00
parent f36512e993
commit f08c74381e
5 changed files with 163 additions and 0 deletions
+11
View File
@@ -37,6 +37,10 @@ func main() {
fmt.Fprintf(os.Stderr, "config load: %v\n", err)
os.Exit(1)
}
if err := validateSearchEngineForReindex(cfg.Search); err != nil {
fmt.Fprintf(os.Stderr, "search config: %v\n", err)
os.Exit(1)
}
_ = applogger.Init(applogger.Config{Level: cfg.Log.Level, Format: cfg.Log.Format, Output: "stdout", ErrorOutput: "stderr"})
db, err := app.NewDatabase(&cfg.Database, cfg.Log.Level)
@@ -95,6 +99,13 @@ func main() {
}
}
func validateSearchEngineForReindex(cfg config.SearchConfig) error {
if strings.ToLower(strings.TrimSpace(cfg.Engine)) != search.EngineMeilisearch {
return fmt.Errorf("reindex_search requires search.engine=meilisearch; db fallback does not index documents")
}
return nil
}
func parseTypes(raw string) map[search.SearchResultType]bool {
selected := map[search.SearchResultType]bool{}
for _, part := range strings.Split(raw, ",") {
+19
View File
@@ -0,0 +1,19 @@
package main
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/gochat/gochat/internal/config"
"github.com/gochat/gochat/internal/search"
)
func TestValidateSearchEngineForReindexRequiresMeilisearch(t *testing.T) {
require.NoError(t, validateSearchEngineForReindex(config.SearchConfig{Engine: search.EngineMeilisearch}))
err := validateSearchEngineForReindex(config.SearchConfig{Engine: search.EngineDB})
require.Error(t, err)
assert.Contains(t, err.Error(), "requires search.engine=meilisearch")
}