Preview: Build 2 GB, kein Dev-Rueckfall bei bestehender Preview, oeffentliche Seiten nie automatisch auf Dev

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-09-30 22:29:26 +00:00
1 parent c256b78dae
commit 56637f2005
6 files changed
+51 -5

No files matched your search

+18
View File
@@ -148,6 +148,24 @@ test('Dev-Projekt bekommt Runner-Service (auch ohne Ordner), static bleibt nginx
assert.deepEqual([...pd.devSubdomainsFromHostsFile(content)].sort(), ['devapp', 'devoff'])
})
test('Oeffentliche Seite mit previewDetected dev geht nur bei explizitem previewMode dev zum Runner', async () => {
const { createDocument, deleteDocument } = await import('../server/services/appwriteAdmin.js')
await createDocument('websiteProjects', { previewMode: 'auto', subdomain: 'livesite', isPublic: true, previewState: 'sleeping', previewDetected: 'dev:npm' }, 'pub1')
await createDocument('websiteProjects', { previewMode: 'dev', subdomain: 'livedev', isPublic: true, previewState: 'sleeping', previewDetected: 'dev:npm' }, 'pub2')
try {
await pd.syncPreviewTls()
await pd.waitForDevRegistration()
const content = await read()
assert.match(routerBlock(content, 'livedev'), /preview-runner@docker/)
assert.ok(!content.includes('preview-livesite-https:') || /preview-nginx@docker/.test(routerBlock(content, 'livesite')))
if (content.includes('preview-livesite-https:')) assert.doesNotMatch(routerBlock(content, 'livesite'), /preview-runner/)
assert.ok(!pd.devSubdomainsFromHostsFile(content).has('livesite'))
} finally {
await deleteDocument('websiteProjects', 'pub1'); await deleteDocument('websiteProjects', 'pub2')
await pd.syncPreviewTls(); await pd.waitForDevRegistration()
}
})
test('Appwrite nicht erreichbar: Dev-Hosts aus der letzten Datei bleiben', async () => {
await pd.syncPreviewTls()
await pd.waitForDevRegistration()