Runner: Proxy und Startseite, register/wake (R12)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
6cd50bba9f
commit
4afe7eb5cd
7 files changed
+360
-2
No files matched your search
@@ -249,3 +249,45 @@ test('cleanupOrphans: ein fehlschlagendes rm stoppt die übrigen nicht', async (
|
||||
try { await s.dev.cleanupOrphans(); } finally { console.error = orig; }
|
||||
assert.deepEqual(s.removed, ['preview-dev-x', 'preview-dev-y']);
|
||||
});
|
||||
|
||||
test('register: speichert Spezifikation ohne Start (sleeping); wake startet damit', async () => {
|
||||
const s = setup();
|
||||
assert.deepEqual(await s.dev.register('a', job('a')), { state: 'sleeping' });
|
||||
assert.equal(s.runs.length, 0); assert.equal(s.prepared.length, 0);
|
||||
assert.deepEqual(await s.dev.wake('a'), { state: 'starting' });
|
||||
await s.dev.idle();
|
||||
assert.equal(s.runs.length, 1);
|
||||
assert.deepEqual(await s.dev.wake('a'), { state: 'online', target: 'http://preview-dev-a:5173' });
|
||||
});
|
||||
|
||||
test('wake: unbekannter sub ⇒ unknown, nach stop ebenfalls', async () => {
|
||||
const s = setup();
|
||||
assert.deepEqual(await s.dev.wake('x'), { state: 'unknown' });
|
||||
await s.dev.register('a', job('a'));
|
||||
await s.dev.stop('a');
|
||||
assert.deepEqual(await s.dev.wake('a'), { state: 'unknown' });
|
||||
});
|
||||
|
||||
test('register: läuft mit gleichem sha ⇒ unverändert; mit anderem sha ⇒ Neustart; wake nutzt neue Spezifikation', async () => {
|
||||
const s = setup();
|
||||
await s.dev.ensure('a', job('a')); await s.dev.idle();
|
||||
assert.deepEqual(await s.dev.register('a', job('a')), { state: 'online' });
|
||||
assert.equal(s.runs.length, 1);
|
||||
assert.deepEqual(await s.dev.register('a', job('a', { sha: '1234567' })), { state: 'starting' });
|
||||
await s.dev.idle();
|
||||
assert.equal(s.runs.length, 2);
|
||||
assert.equal(s.prepared[1].job.sha, '1234567');
|
||||
assert.ok(s.removed.includes('preview-dev-a'));
|
||||
});
|
||||
|
||||
test('register: schlafender sub mit neuem sha startet nicht, wake nutzt das neue sha', async () => {
|
||||
const s = setup();
|
||||
await s.dev.ensure('a', job('a')); await s.dev.idle();
|
||||
s.clock.t += 21 * MIN; await s.dev.sweep();
|
||||
assert.equal(s.dev.status('a').state, 'sleeping');
|
||||
assert.deepEqual(await s.dev.register('a', job('a', { sha: '7654321' })), { state: 'sleeping' });
|
||||
assert.equal(s.runs.length, 1);
|
||||
await s.dev.wake('a'); await s.dev.idle();
|
||||
assert.equal(s.runs.length, 2);
|
||||
assert.equal(s.prepared[1].job.sha, '7654321');
|
||||
});
|
||||
Reference in new issue
Block a user