Files
alrahma_sunday_school_api/tests/Feature/Api/V1/FullSurface/ApiBatch20ContinuityComplianceRiskRegisterTest.php
T
2026-06-11 11:46:12 -04:00

32 lines
1.5 KiB
PHP

<?php
namespace Tests\Feature\Api\V1\FullSurface;
use Tests\Feature\Api\V1\FullSurface\Support\FullSurfaceE2EContractCase;
class ApiBatch20ContinuityComplianceRiskRegisterTest extends FullSurfaceE2EContractCase
{
public function test_batch20_continuity_and_compliance_route_families_remain_visible(): void
{
$families = [
'legal hold and retention conflict' => ['privacy', 'retention', 'archive', 'purge'],
'cash drawer and receipt integrity' => ['cash', 'payment', 'receipt', 'finance'],
'scholarship and discount eligibility' => ['scholarship', 'discount', 'voucher', 'fees'],
'gradebook locks and amendments' => ['scores', 'grade', 'report-card', 'teacher'],
'attendance device and geofence trust' => ['attendance', 'scanner', 'kiosk', 'badge'],
'transportation pickup safety' => ['transport', 'bus', 'pickup', 'guardian'],
'emergency broadcast controls' => ['emergency', 'broadcast', 'notification', 'calendar'],
'webhook key rotation' => ['webhook', 'callback', 'provider', 'sync'],
'audit export redaction' => ['audit', 'logs', 'export', 'reports'],
'analytics warehouse export' => ['analytics', 'dashboard', 'summary', 'export'],
];
foreach ($families as $label => $needles) {
$this->assertNotEmpty(
$this->apiRoutesContainingAny($needles),
'Batch 20 continuity/compliance family missing or renamed without updating risk register: '.$label
);
}
}
}