Correct profile source validation and identity
This commit is contained in:
@@ -77,6 +77,41 @@ api_key_env: PROMPTKIT_INSPECTION_ABSENT_KEY
|
||||
}
|
||||
}
|
||||
|
||||
func TestFileProfileNormalizedIDMatchesInspectionAndPreparation(t *testing.T) {
|
||||
engine, err := promptkit.NewEngine(promptkit.Config{},
|
||||
promptkit.WithPromptFS(contractPromptFS("prompt", "normalized-profile", "message"), "."),
|
||||
promptkit.WithProfileFS(fstest.MapFS{
|
||||
"profile.yaml": &fstest.MapFile{Data: []byte(`
|
||||
id: " normalized-profile "
|
||||
endpoint: http://profile.example/v1
|
||||
model: normalized-model
|
||||
`)},
|
||||
}, "."),
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatalf("construct engine: %v", err)
|
||||
}
|
||||
|
||||
inspection, err := engine.InspectProfile(context.Background(), " normalized-profile ")
|
||||
if err != nil {
|
||||
t.Fatalf("inspect normalized profile: %v", err)
|
||||
}
|
||||
prepared, err := engine.Prepare(context.Background(), promptkit.RunRequest{
|
||||
PromptID: "prompt",
|
||||
ProfileID: " normalized-profile ",
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("prepare with normalized profile: %v", err)
|
||||
}
|
||||
|
||||
if inspection.ProfileID != "normalized-profile" ||
|
||||
prepared.SelectedProfileID != inspection.ProfileID ||
|
||||
inspection.EffectiveModelParams.Model != "normalized-model" ||
|
||||
prepared.EffectiveModelParams.Model != inspection.EffectiveModelParams.Model {
|
||||
t.Fatalf("inspection=%#v prepared=%#v", inspection, prepared)
|
||||
}
|
||||
}
|
||||
|
||||
func TestInspectProfilePreservesPublicErrorIdentities(t *testing.T) {
|
||||
newEngine := func(t *testing.T, options ...promptkit.Option) *promptkit.Engine {
|
||||
t.Helper()
|
||||
@@ -109,7 +144,7 @@ func TestInspectProfilePreservesPublicErrorIdentities(t *testing.T) {
|
||||
}
|
||||
|
||||
malformed := newEngine(t, promptkit.WithProfileFS(fstest.MapFS{
|
||||
"broken.yaml": &fstest.MapFile{Data: []byte("id: broken\nendpoint: http://broken.example/v1\nmodel: model\nunknown: value\n")},
|
||||
"broken.yaml": &fstest.MapFile{Data: []byte("id: broken\nendpoint: http://broken.example/v1\nmodel: model\nextra_params:\n invalid: .nan\n")},
|
||||
}, "."))
|
||||
if result, err := malformed.InspectProfile(context.Background(), "broken"); result != nil ||
|
||||
!errors.Is(err, promptkit.ErrProfileLoad) {
|
||||
|
||||
Reference in New Issue
Block a user