test(search): add meilisearch live gate
This commit is contained in:
@@ -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, ",") {
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
Reference in New Issue
Block a user