Add tests and functionality for edge gateway updates and lifecycle

This commit introduces unit tests, E2E tests, and implementation updates related to edge gateway lifecycle management, including update handling, artifact validation, and rollback mechanisms. It also refines routing, component interaction, and backend methods to improve update tracking, status transitions, and artifact management.
This commit is contained in:
Jeppe Bundgaard
2026-04-15 11:53:45 +02:00
parent 40ded9ed95
commit 56685d7bf3
7 changed files with 487 additions and 11 deletions
@@ -47,8 +47,11 @@ it('builds install script urls with forwarded https scheme when proxied', functi
expect($script)->toContain('curl -fsSL "https://api.truckwash.io:4433/edge-agent/artifacts/package.json" -o "$INSTALL_DIR/package.json"');
expect($script)->toContain('curl -fsSL "https://api.truckwash.io:4433/edge-agent/artifacts/agent.mjs" -o "$INSTALL_DIR/agent.mjs"');
expect($script)->toContain('"apiUrl":"https://api.truckwash.io:4433"');
expect($script)->toContain('"installDir":"/opt/truckwash-edge-agent"');
expect($script)->toContain('"serviceName":"truckwash-edge-agent.service"');
expect($script)->toContain('"commandPollTimeoutSeconds":20');
expect($script)->toContain('"shellActionPollTimeoutSeconds":20');
expect($script)->toContain('"updateVerificationTimeoutSeconds":45');
expect($script)->not->toContain('"brokerUrl"');
expect($script)->not->toContain('Undefined variable $INSTALL_DIR');
});
@@ -76,6 +79,7 @@ it('infers https for the staging api host when only the https port is present',
expect($manager->getApiBaseUrl())->toBe('https://api.truckwash.io:4433');
expect($script)->toContain('"apiUrl":"https://api.truckwash.io:4433"');
expect($script)->toContain('"serviceName":"truckwash-edge-agent.service"');
expect($script)->not->toContain('"brokerUrl"');
});
});