access-engine/internal/markitect/check_fixtures_test.go
tegwick f758381cea
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 6s
Build and Publish Container Image / build-and-push (push) Successful in 1m23s
FLEX-WP-0036: Go module is github.com/netkingdom/access-engine; T02 consumer inventory
- module path renamed (no external importers); golangci local-prefixes
- ACCESS_ENGINE_RUN_TOPAZ_INTEGRATION replaces FLEX_AUTH_RUN_TOPAZ_INTEGRATION
- README title and identity paragraph reflect the landed renames
- docs/runtime-rename-inventory.md: per-consumer references by kind and order
- chart name, image package and /opt paths deliberately left for T05

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 735967@bnt-lap001
Assistant-Session: 5971967f-77f8-4ced-9e02-c6ef67040ffc
2026-10-10 15:29:00 +02:00

57 lines
1.9 KiB
Go

package markitect_test
import (
"context"
"path/filepath"
"testing"
"github.com/netkingdom/access-engine/internal/policy"
"github.com/netkingdom/access-engine/pkg/api"
)
func TestMarkitectCheckFixturePackageValidates(t *testing.T) {
pkg, err := policy.LoadAndValidateFile(context.Background(), filepath.Join("..", "..", "examples", "markitect", "check_policy_package.md"))
if err != nil {
t.Fatalf("LoadAndValidateFile: %v", err)
}
if !pkg.Valid {
t.Fatalf("pkg.Valid = false: %+v", pkg.Validation)
}
if len(pkg.Fixtures) != 5 {
t.Fatalf("Fixtures len = %d; want 5", len(pkg.Fixtures))
}
wantEffects := map[string]api.DecisionEffect{
"fixture:markitect-public-document-allow": api.DecisionEffectAllow,
"fixture:markitect-internal-document-deny": api.DecisionEffectDeny,
"fixture:markitect-internal-document-reader-allow": api.DecisionEffectAllow,
"fixture:markitect-restricted-export-steward-mfa": api.DecisionEffectAllow,
"fixture:markitect-context-package-activation": api.DecisionEffectAllow,
}
for _, fixture := range pkg.Fixtures {
if fixture.Expect.Effect != wantEffects[fixture.ID] {
t.Fatalf("%s effect = %q; want %q", fixture.ID, fixture.Expect.Effect, wantEffects[fixture.ID])
}
assertFixtureMetadata(t, fixture)
}
for _, result := range pkg.Validation.Fixtures {
if !result.Passed {
t.Fatalf("fixture %s failed: %s actual=%+v", result.ID, result.Error, result.Actual)
}
}
}
func assertFixtureMetadata(t *testing.T, fixture api.PolicyFixture) {
t.Helper()
if _, ok := fixture.Metadata["expected_caring_descriptor"]; !ok {
t.Fatalf("%s missing expected_caring_descriptor metadata", fixture.ID)
}
if _, ok := fixture.Metadata["expected_exposure_modes"]; !ok {
t.Fatalf("%s missing expected_exposure_modes metadata", fixture.ID)
}
if _, ok := fixture.Metadata["expected_audit_behavior"]; !ok {
t.Fatalf("%s missing expected_audit_behavior metadata", fixture.ID)
}
}