// Negativtest des Gates selbst (QA-01 Prüfung 1): ein Diff mit // geänderter mail/internal/auth/login.go ohne begleitende Testdatei // muss als Verstoß erkannt werden. package pflichttestgate import "testing" func TestCheckDiff_FlagsSensitiveChangeWithoutTest(t *testing.T) { violations := CheckDiff([]string{"mail/internal/auth/login.go"}) if len(violations) != 1 { t.Fatalf("erwartet genau 1 verstoß, habe %d: %+v", len(violations), violations) } if violations[0].Package != "mail/internal/auth" { t.Fatalf("falsches package gemeldet: %+v", violations[0]) } } func TestCheckDiff_PassesWhenTestFileAccompanies(t *testing.T) { violations := CheckDiff([]string{ "mail/internal/auth/login.go", "mail/internal/auth/login_test.go", }) if len(violations) != 0 { t.Fatalf("erwartet keine verstöße, habe: %+v", violations) } } func TestCheckDiff_IgnoresNonSensitivePaths(t *testing.T) { violations := CheckDiff([]string{"mail/internal/example/normalize.go"}) if len(violations) != 0 { t.Fatalf("erwartet keine verstöße für nicht-sensiblen pfad, habe: %+v", violations) } }