fix(preview): Status bleibt bei Runner-Builds, dev-Label, Abgleich mit dem Runner, Längenkürzung

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 19cd8f90ce
commit b7cbe3aa38
8 files changed
+396 -15

No files matched your search

+15 -3
View File
@@ -143,8 +143,9 @@ test('Dev-Projekt bekommt Runner-Service (auch ohne Ordner), static bleibt nginx
assert.match(dev, /preview-sites-redirect@docker/)
assert.match(routerBlock(content, 'statisch'), /preview-nginx@docker/)
assert.doesNotMatch(routerBlock(content, 'statisch'), /preview-runner/)
assert.doesNotMatch(content, /devoff/) // Zustand failed => kein Dev-Host
assert.deepEqual([...pd.devSubdomainsFromHostsFile(content)], ['devapp'])
// I5: auch ein fehlgeschlagener/neu bauender Dev-Host bleibt beim Runner (kein Umschalten auf nginx)
assert.match(routerBlock(content, 'devoff'), /preview-runner@docker/)
assert.deepEqual([...pd.devSubdomainsFromHostsFile(content)].sort(), ['devapp', 'devoff'])
})
test('Appwrite nicht erreichbar: Dev-Hosts aus der letzten Datei bleiben', async () => {
@@ -159,7 +160,7 @@ test('Appwrite nicht erreichbar: Dev-Hosts aus der letzten Datei bleiben', async
assert.equal(result.publicSource, 'previous-file')
} finally { console.error = errors }
await pd.waitForDevRegistration()
assert.deepEqual([...pd.devSubdomainsFromHostsFile(await read())], ['devapp'])
assert.deepEqual([...pd.devSubdomainsFromHostsFile(await read())].sort(), ['devapp', 'devoff'])
assert.match(routerBlock(await read(), 'devapp'), /preview-runner@docker/)
assert.equal(puts.length, 1) // nur die Runde mit Appwrite-Daten
})
@@ -256,3 +257,14 @@ test('Registrierung: laeuft eine Runde, folgt genau eine Wiederholung', async ()
await pd.waitForDevRegistration()
assert.equal(puts.length, 2)
})
test('I5: Dev-Projekt im Zustand building bleibt beim Runner, static im Zustand building nicht', async () => {
const { createDocument } = await import('../server/services/appwriteAdmin.js')
await createDocument('websiteProjects', { previewMode: 'auto', subdomain: 'baut', repoFullName: 'JUSN/baut', previewState: 'building', previewDetected: 'dev:npm' }, 'p5')
await createDocument('websiteProjects', { previewMode: 'auto', subdomain: 'baustatic', repoFullName: 'JUSN/baustatic', previewState: 'building', previewDetected: 'static' }, 'p6')
await pd.syncPreviewTls()
await pd.waitForDevRegistration()
const content = await read()
assert.match(routerBlock(content, 'baut'), /preview-runner@docker/)
assert.ok(!pd.devSubdomainsFromHostsFile(content).has('baustatic'))
})