This commit introduces delivery metadata tracking for gateway commands, updates, and shells. Adds preferred delivery channel handling, refined validation for edge agents, improved relay management logic, and broker presence reporting. Includes schema changes, enhanced shell handling, and test coverage.
37 lines
2.4 KiB
PHP
37 lines
2.4 KiB
PHP
<?php
|
|
|
|
it('rewrites edge gateway shell transport to API polling queues', function (): void {
|
|
$managerSource = file_get_contents(app_path('classes/edge_gateway_manager.php'));
|
|
$routeSource = file_get_contents(app_path('routes/edgeGatewaysRoute.php'));
|
|
|
|
expect($managerSource)->not->toBeFalse();
|
|
expect($routeSource)->not->toBeFalse();
|
|
|
|
expect($managerSource)->toContain("'transport' => self::DELIVERY_CHANNEL_API");
|
|
expect($managerSource)->toContain("'transport_path' => self::DELIVERY_CHANNEL_API");
|
|
expect($managerSource)->toContain("'reconnect_state' => 'PENDING'");
|
|
expect($managerSource)->toContain("'preferred_channel' => self::DELIVERY_CHANNEL_API");
|
|
expect($managerSource)->toContain('private function createShellActionJob');
|
|
expect($managerSource)->toContain('private function claimNextShellActionJob');
|
|
expect($managerSource)->toContain('private function appendShellEvent');
|
|
expect($managerSource)->toContain('private function listShellEvents');
|
|
expect($managerSource)->toContain('public function pollShellAction');
|
|
expect($managerSource)->toContain('public function submitShellActionResult');
|
|
expect($managerSource)->toContain('public function recordShellSessionEvents');
|
|
expect($managerSource)->not->toContain('buildBrowserShellWsUrl');
|
|
expect($managerSource)->not->toContain('edge_broker_client');
|
|
|
|
expect($routeSource)->toContain("'/edge-gateways/{id}/shell-sessions/{sessionId}/events'");
|
|
expect($routeSource)->toContain("'/edge-gateways/{id}/shell-sessions/{sessionId}/input'");
|
|
expect($routeSource)->toContain("'/edge-gateways/{id}/shell-sessions/{sessionId}/resize'");
|
|
expect($routeSource)->toContain("'/edge-gateways/{id}/shell-sessions/{sessionId}/close'");
|
|
expect($routeSource)->toContain("'/edge-agent/gateways/{id}/shell-actions/poll'");
|
|
expect($routeSource)->toContain("'/edge-agent/gateways/{id}/shell-actions/{actionId}/result'");
|
|
expect($routeSource)->toContain("'/edge-agent/gateways/{id}/shell-sessions/{sessionId}/events'");
|
|
expect($routeSource)->toContain("'/edge-agent/internal/gateways/{id}/validate'");
|
|
expect($routeSource)->toContain("'/edge-agent/internal/shell-sessions/validate'");
|
|
expect($routeSource)->toContain("'/edge-agent/internal/gateways/{id}/presence'");
|
|
expect($routeSource)->toContain("'/edge-agent/internal/shell-sessions/close'");
|
|
expect($routeSource)->toContain('requireBrokerSharedSecret');
|
|
});
|