Simplify diagnostic report ownership
This commit is contained in:
@@ -8,6 +8,7 @@ import (
|
||||
|
||||
"go.maximumdirect.net/promptkit/internal/domain"
|
||||
"go.maximumdirect.net/promptkit/internal/generation"
|
||||
"go.maximumdirect.net/promptkit/internal/jsonvalue"
|
||||
"go.maximumdirect.net/promptkit/internal/llm"
|
||||
"go.maximumdirect.net/promptkit/internal/observation"
|
||||
)
|
||||
@@ -438,11 +439,11 @@ func httpExecutionFacts(evidence llm.HTTPExecutionEvidence) domain.SmokeTestFact
|
||||
}
|
||||
|
||||
func smokeReportTarget(target domain.SmokeTestTarget) (domain.SmokeTestTarget, error) {
|
||||
cloned, err := domain.CloneSmokeTestReport(domain.SmokeTestReport{Target: target})
|
||||
params, err := jsonvalue.CopyMap(target.EffectiveSettings.ExtraParams)
|
||||
if err != nil {
|
||||
return domain.SmokeTestTarget{}, fmt.Errorf("clone smoke-test target settings: %w", err)
|
||||
}
|
||||
target = cloned.Target
|
||||
target.EffectiveSettings.ExtraParams = params
|
||||
target.EffectiveSettings.APIKey = ""
|
||||
target.Endpoint, err = endpointWithoutUserInfo(target.Endpoint)
|
||||
if err != nil {
|
||||
|
||||
@@ -393,3 +393,27 @@ func (b cancelOnCloseSmokeBody) Close() error {
|
||||
b.cancel()
|
||||
return b.ReadCloser.Close()
|
||||
}
|
||||
|
||||
func TestSmokeReportTargetOwnsProviderValuesAndRedactsCredentials(t *testing.T) {
|
||||
target := domain.SmokeTestTarget{
|
||||
Endpoint: "https://user:password@example.invalid/key",
|
||||
EffectiveSettings: domain.ExecutionTarget{
|
||||
Endpoint: "https://user:password@example.invalid/v1",
|
||||
APIKey: "secret",
|
||||
ExtraParams: map[string]any{"nested": map[string]any{"value": "original"}},
|
||||
},
|
||||
}
|
||||
got, err := smokeReportTarget(target)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
got.EffectiveSettings.ExtraParams["nested"].(map[string]any)["value"] = "changed"
|
||||
if target.EffectiveSettings.ExtraParams["nested"].(map[string]any)["value"] != "original" ||
|
||||
got.EffectiveSettings.APIKey != "" || got.Endpoint != "https://example.invalid/key" || got.EffectiveSettings.Endpoint != "https://example.invalid/v1" {
|
||||
t.Fatalf("report target not detached or redacted: %+v", got)
|
||||
}
|
||||
target.EffectiveSettings.ExtraParams = map[string]any{"invalid": func() {}}
|
||||
if _, err := smokeReportTarget(target); err == nil {
|
||||
t.Fatal("invalid provider values were accepted")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user