21 lines
847 B
Go
21 lines
847 B
Go
package research_runtime_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
researchadapter "git.cin.su/m/Assistant/adapters/research"
|
|
"git.cin.su/m/Assistant/contracts/epistemics"
|
|
)
|
|
|
|
func TestHTTPConnectorRejectsNonAllowlistedOrNonHTTPSSources(t *testing.T) {
|
|
connector := researchadapter.HTTPConnector{AllowedHosts: map[string]struct{}{"assistant.cin.su": {}}}
|
|
base := epistemics.WebResearchRequest{Plan: epistemics.ResearchPlan{ID: "plan", Question: "q", SourceClasses: []string{"web"}, FreshnessPolicy: "current"}, SourceID: "s", Statement: "statement"}
|
|
for _, url := range []string{"http://assistant.cin.su/healthz", "https://127.0.0.1/secret", "https://evil.example/"} {
|
|
base.URL = url
|
|
if _, err := connector.Collect(context.Background(), base, 10); err != researchadapter.ErrHTTPSourceRejected {
|
|
t.Fatalf("url=%s err=%v", url, err)
|
|
}
|
|
}
|
|
}
|