fix(runner): Dev-Neustart bei geänderten Variablen, Liveness-Prüfung, npm-ci-Fallback

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-09-30 21:54:01 +00:00
1 parent cd9a6e0cf1
commit 96c26fb9b8
8 files changed
+139 -10

No files matched your search

+15 -1
View File
@@ -156,7 +156,7 @@ test('ps/stop/rm', async () => {
};
const docker = createDocker({ exec });
assert.deepEqual(await docker.ps('webklar.preview'), ['preview-dev-a', 'preview-dev-b']);
assert.deepEqual(calls[0], ['ps', '--filter', 'label=webklar.preview', '--format', '{{.Names}}']);
assert.deepEqual(calls[0], ['ps', '-a', '--filter', 'label=webklar.preview', '--format', '{{.Names}}']);
await docker.stop('preview-dev-a');
await docker.rm('preview-dev-a');
assert.deepEqual(calls[1], ['rm', '-f', 'preview-dev-a']);
@@ -207,3 +207,17 @@ test('Zeitlimit mit env-file: Datei wird entfernt', async () => {
assert.deepEqual(await docker.run(['run', '--name', 'j', 'node:20'], { env: { K: 'v' }, timeoutMs: 10 }), { code: 124 });
assert.equal(existsSync(filePath), false);
});
test('ps: mit -a, damit beendete Container aufgeräumt werden', async () => {
const calls = [];
const exec = (args) => { calls.push(args); const c = fakeChild(); setImmediate(() => { c.stdout.end(); c.stderr.end(); c.emit('close', 0); }); return c; };
await createDocker({ exec }).ps('webklar.preview');
assert.deepEqual(calls[0].slice(0, 2), ['ps', '-a']);
});
test('running: inspect true/false/fehlend', async () => {
const mk = (out, code) => () => { const c = fakeChild(); setImmediate(() => { if (out) c.stdout.write(out); c.stdout.end(); c.stderr.end(); c.emit('close', code); }); return c; };
assert.equal(await createDocker({ exec: mk('true\n', 0) }).running('preview-dev-a'), true);
assert.equal(await createDocker({ exec: mk('false\n', 0) }).running('preview-dev-a'), false);
assert.equal(await createDocker({ exec: mk('', 1) }).running('preview-dev-a'), false);
});