From 9bfe2e891b24c62b28a39c03635ef5d19e6aa502 Mon Sep 17 00:00:00 2001 From: patrick Date: Wed, 28 Oct 2026 17:33:10 +0100 Subject: [PATCH] workflow: Pflichttest-Gate deckt internal/bearerauth ab Aenderungen an bearerauth (Durchsetzungspunkt fuer Bearer-Token der Frontends) brauchen jetzt eine begleitende _test.go im selben Package. Co-Authored-By: Claude Sonnet 5.5 --- workflow/docs/TESTSTRATEGIE.md | 4 +++- workflow/internal/pflichttestgate/gate.go | 1 + workflow/internal/pflichttestgate/gate_test.go | 8 ++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/workflow/docs/TESTSTRATEGIE.md b/workflow/docs/TESTSTRATEGIE.md index a4f2f2b3..9832f6c3 100644 --- a/workflow/docs/TESTSTRATEGIE.md +++ b/workflow/docs/TESTSTRATEGIE.md @@ -63,7 +63,9 @@ aendert — **jede geaenderte `.go`-Datei muss von einer geaenderten oder neuen - **Auth-nahe Logik:** `workflow/internal/svcauth/` (Service-Token-Vergleich in konstanter Zeit), `workflow/internal/moduleadapter/` (prueft `X-Service-Token` - gegen `svcauth.Equal` — der tatsaechliche Durchsetzungspunkt) + gegen `svcauth.Equal` — der tatsaechliche Durchsetzungspunkt), + `workflow/internal/bearerauth/` (prueft das Bearer-Token der Frontends gegen + die Core-JWKS; `X-User-Id` nur noch ueber den Uebergangsschalter) - **Tenant-Scoping:** `workflow/internal/tenantregistryclient/` (fragt Core TEN-01, muss bei Fehler fail-closed bleiben), `workflow/internal/backchannel/` und `workflow/internal/backchannelapi/` (extern erreichbarer Eingang, der den diff --git a/workflow/internal/pflichttestgate/gate.go b/workflow/internal/pflichttestgate/gate.go index 0e95a2d0..2f3e3856 100644 --- a/workflow/internal/pflichttestgate/gate.go +++ b/workflow/internal/pflichttestgate/gate.go @@ -18,6 +18,7 @@ import ( // workflow/docs/TESTSTRATEGIE.md Abschnitt 4. var sensitivePathPatterns = []*regexp.Regexp{ regexp.MustCompile(`(^|/)workflow/internal/moduleadapter/`), + regexp.MustCompile(`(^|/)workflow/internal/bearerauth/`), regexp.MustCompile(`(^|/)workflow/internal/backchannel/`), regexp.MustCompile(`(^|/)workflow/internal/backchannelapi/`), regexp.MustCompile(`(^|/)workflow/internal/dualcheck/`), diff --git a/workflow/internal/pflichttestgate/gate_test.go b/workflow/internal/pflichttestgate/gate_test.go index a0d0aa81..2f6a900d 100644 --- a/workflow/internal/pflichttestgate/gate_test.go +++ b/workflow/internal/pflichttestgate/gate_test.go @@ -35,6 +35,7 @@ func TestCheckDiff_IgnoresNonSensitivePaths(t *testing.T) { func TestCheckDiff_CoversAllSensitivePackages(t *testing.T) { files := []string{ "workflow/internal/moduleadapter/x.go", + "workflow/internal/bearerauth/x.go", "workflow/internal/backchannel/x.go", "workflow/internal/backchannelapi/x.go", "workflow/internal/dualcheck/x.go", @@ -45,3 +46,10 @@ func TestCheckDiff_CoversAllSensitivePackages(t *testing.T) { t.Fatalf("erwartet %d verstoesse (je package einer), habe %d: %+v", len(files), len(violations), violations) } } + +func TestCheckDiff_FlagsBearerAuthChangeWithoutTest(t *testing.T) { + violations := CheckDiff([]string{"workflow/internal/bearerauth/bearerauth.go"}) + if len(violations) != 1 || violations[0].Package != "workflow/internal/bearerauth" { + t.Fatalf("erwartet 1 verstoss fuer bearerauth, habe: %+v", violations) + } +} -- 2.47.3