Make undeclared policy attribute reads a validate error.
FLEX-WP-0025-T03: flex-auth validate flags input.*.attributes keys that no sibling registry or manifest supplies. A broken testdata package proves tests can pass while the ceiling remains caller-only. Assistant: grok Assistant-Session: 01a09dc1-b21e-77e1-919e-fcad2f82b267
This commit is contained in:
parent
80cae28a74
commit
c074237aac
10 changed files with 401 additions and 3 deletions
|
|
@ -122,6 +122,40 @@ func TestCaringFindingsAreAdvisoryUntilEnforced(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestValidateFlagsUndeclaredAttributeRead(t *testing.T) {
|
||||
pkg, err := policy.LoadAndValidateFile(context.Background(), filepath.Join("testdata", "undeclared-ceiling", "policy_package.md"))
|
||||
if err != nil {
|
||||
t.Fatalf("LoadAndValidateFile: %v", err)
|
||||
}
|
||||
if pkg.Valid {
|
||||
t.Fatalf("pkg.Valid = true; want undeclared ceiling to fail validate\n%s", formatValidation(pkg.Validation))
|
||||
}
|
||||
found := false
|
||||
for _, diagnostic := range pkg.Validation.Diagnostics {
|
||||
if diagnostic.Code == "POLICY-ATTRIBUTE-UNDECLARED" && strings.Contains(diagnostic.Message, "max_ttl_hours") {
|
||||
found = true
|
||||
if diagnostic.Severity != "error" {
|
||||
t.Fatalf("undeclared diagnostic severity = %q; want error", diagnostic.Severity)
|
||||
}
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
t.Fatalf("missing POLICY-ATTRIBUTE-UNDECLARED for max_ttl_hours\n%s", formatValidation(pkg.Validation))
|
||||
}
|
||||
}
|
||||
|
||||
func TestOpsWardenAttributeReadsAreDeclared(t *testing.T) {
|
||||
pkg, err := policy.LoadAndValidateFile(context.Background(), filepath.Join("..", "..", "examples", "ops-warden", "policy_package.md"))
|
||||
if err != nil {
|
||||
t.Fatalf("LoadAndValidateFile: %v", err)
|
||||
}
|
||||
for _, diagnostic := range pkg.Validation.Diagnostics {
|
||||
if diagnostic.Code == "POLICY-ATTRIBUTE-UNDECLARED" {
|
||||
t.Fatalf("ops-warden undeclared attribute: %s", diagnostic.Message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestFixtureMismatchInvalidatesPackage(t *testing.T) {
|
||||
pkg, err := policy.Load([]byte(inlinePolicy(false, "deny")), "inline-policy.md")
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue