not->toBeFalse(); expect($route)->toContain("'/edge-gateways'"); expect($route)->toContain("'/edge-gateways/{id}'"); expect($route)->toContain("'/edge-gateways/install-token'"); expect($route)->toContain("'/edge-gateways/{id}/discovery'"); expect($route)->toContain("'/edge-gateways/{id}/bindings'"); expect($route)->toContain("'/edge-gateways/{id}/operations'"); expect($route)->toContain("'/edge-gateways/{id}/operations/{operationId}/events'"); expect($route)->toContain("'/edge-gateways/{id}/rotate-credentials'"); expect($route)->toContain("'/departments/{id}/gateway-cutover'"); expect($route)->toContain("add_meta('fleet_usage'"); expect($route)->not->toContain("'/edge-gateways/{id}/shell-sessions'"); expect($route)->not->toContain('private function requirePermission'); expect($route)->not->toContain('private function requireDepartmentAccess'); }); it('registers PHP edge agent routes for operations and legacy relay command polling', function (): void { $route = file_get_contents(app_path('routes/edgeGatewaysRoute.php')); expect($route)->toContain("'/edge-agent/install-token/verify'"); expect($route)->toContain("'/edge-agent/install.sh'"); expect($route)->toContain("'/edge-agent/artifacts/agent.php'"); expect($route)->toContain("'/edge-agent/artifacts/truckwash-edge-agent.service'"); expect($route)->toContain("'/edge-agent/claim'"); expect($route)->toContain("'/edge-agent/gateways/{id}/heartbeat'"); expect($route)->toContain("'/edge-agent/gateways/{id}/operations/next'"); expect($route)->toContain("'/edge-agent/gateways/{id}/operations/{operationId}/events'"); expect($route)->toContain("'/edge-agent/gateways/{id}/operations/{operationId}/complete'"); expect($route)->toContain("'/edge-agent/gateways/{id}/commands/poll'"); expect($route)->toContain("'/edge-agent/gateways/{id}/commands/{jobId}/result'"); expect($route)->toContain("'/edge-agent/gateways/{id}/presence'"); expect($route)->toContain('echo $exception->getMessage()'); expect($route)->not->toContain("'/edge-agent/gateways/{id}/shell-actions/poll'"); expect($route)->not->toContain("'/edge-agent/gateways/{id}/shell-sessions/{sessionId}/events'"); });