mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-06-29 15:31:05 +08:00
### What problem does this PR solve? - added the new dataset search route and handler - reused the existing shared SearchDatasets service by adapting single-dataset requests into dataset_ids=[dataset_id] - aligned handler error responses with Python behavior for argument/data errors - aligned key service error messages such as invalid search_id and mixed embedding models - added focused handler and service tests for request mapping and error behavior ### Tests: `/usr/local/go/bin/go test ./internal/service -run 'TestSearchDatasetRequestToSearchDatasetsRequest|TestDatasetServiceSearchDatasets'` `/usr/local/go/bin/go test ./internal/handler -run 'TestDatasetsHandlerSearchDataset'`
34 lines
853 B
Go
34 lines
853 B
Go
package router
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"ragflow/internal/handler"
|
|
)
|
|
|
|
func TestRouterSetupRegistersSearchDatasetRoute(t *testing.T) {
|
|
gin.SetMode(gin.TestMode)
|
|
|
|
engine := gin.New()
|
|
r := &Router{
|
|
authHandler: handler.NewAuthHandler(),
|
|
datasetsHandler: handler.NewDatasetsHandler(nil, nil),
|
|
}
|
|
r.Setup(engine)
|
|
|
|
resp := httptest.NewRecorder()
|
|
req := httptest.NewRequest(http.MethodPost, "/api/v1/datasets/dataset-1/search", nil)
|
|
engine.ServeHTTP(resp, req)
|
|
|
|
if resp.Code == http.StatusNotFound {
|
|
t.Fatalf("POST /api/v1/datasets/:dataset_id/search returned 404; SearchDataset route is not registered")
|
|
}
|
|
if resp.Code != http.StatusUnauthorized {
|
|
t.Fatalf("status=%d body=%s; want auth middleware to handle registered SearchDataset route", resp.Code, resp.Body.String())
|
|
}
|
|
}
|