Centralize message role invariants
This commit is contained in:
@@ -361,6 +361,35 @@ func TestGoRenderer_Render(t *testing.T) {
|
||||
t.Fatalf("expected ErrInvalidMessageRole, got %v", err)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("canonicalizes directly supplied message roles", func(t *testing.T) {
|
||||
def := &domain.PromptDefinition{
|
||||
Templates: []domain.PromptMessageTemplate{
|
||||
{Role: " \u2003DeVeLoPeR\u2003 ", Content: "Hello"},
|
||||
},
|
||||
}
|
||||
res, err := renderer.Render(ctx, def, nil, vars)
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
if got := res.Messages[0].Role; got != domain.RoleDeveloper {
|
||||
t.Fatalf("rendered role = %q, want %q", got, domain.RoleDeveloper)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("rejects unsupported directly supplied message roles", func(t *testing.T) {
|
||||
const unsupportedRole = "consumer-private-role"
|
||||
def := &domain.PromptDefinition{
|
||||
Templates: []domain.PromptMessageTemplate{{Role: unsupportedRole, Content: "Hello"}},
|
||||
}
|
||||
_, err := renderer.Render(ctx, def, nil, vars)
|
||||
if !errors.Is(err, ErrInvalidMessageRole) {
|
||||
t.Fatalf("expected ErrInvalidMessageRole, got %v", err)
|
||||
}
|
||||
if strings.Contains(err.Error(), unsupportedRole) {
|
||||
t.Fatalf("renderer error exposed unsupported role: %v", err)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestGoRendererCancellation(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user