Refactor VPN proxy client implementation
Build and Deploy Gateway / build-and-push (push) Failing after 2s
Build and Deploy Gateway / deploy (push) Has been skipped

This commit is contained in:
2026-08-09 00:41:52 +03:00
parent 32be4380a3
commit 34d8b681ad
190 changed files with 20064 additions and 9761 deletions
+56
View File
@@ -0,0 +1,56 @@
import assert from 'node:assert/strict';
import test from 'node:test';
import { finishRollback } from '../../dist/server/services/rollback.js';
test('shared rollback rethrows the original error after successful ordered restores', async () => {
const original = new Error('original');
const events = [];
await assert.rejects(
finishRollback(original, [
{ run: () => { events.push('first'); } },
{ run: async () => { events.push('second'); } },
], 'Rollback failed'),
(error) => error === original,
);
assert.deepEqual(events, ['first', 'second']);
});
test('shared rollback continues, preserves aggregate order and message', async () => {
const original = new Error('original');
const first = new Error('first restore');
const second = new Error('second restore');
const events = [];
await assert.rejects(
finishRollback(original, [
{ run: () => { events.push('first'); throw first; } },
{ run: () => { events.push('middle'); } },
{ run: () => { events.push('second'); throw second; } },
], 'Expected rollback message'),
(error) => {
assert.ok(error instanceof AggregateError);
assert.equal(error.message, 'Expected rollback message');
assert.deepEqual(error.errors, [original, first, second]);
return true;
},
);
assert.deepEqual(events, ['first', 'middle', 'second']);
});
test('shared rollback maps a runtime restore failure to PROCESS_START_FAILED', async () => {
const original = new Error('original');
const config = new Error('config restore');
const runtime = new Error('runtime restore');
await assert.rejects(
finishRollback(original, [
{ run: () => { throw config; } },
{ run: () => { throw runtime; }, runtime: true },
], 'Runtime rollback failed'),
(error) => {
assert.equal(error.code, 'PROCESS_START_FAILED');
assert.equal(error.cause.message, 'Runtime rollback failed');
assert.deepEqual(error.cause.errors, [original, config, runtime]);
return true;
},
);
});