Files
ragflow/internal/router/datasets_search_route_test.go
Hz_ ced51114f4 feat(go-api): add dataset search endpoint (#16304)
### 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'`
2026-06-25 13:32:22 +08:00

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())
}
}