Preview: isRunnerDev einheitlich (Reconcile, Dev-Start), 137-Fehlertext
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
56637f2005
commit
a5cb668853
7 files changed
+42
-15
No files matched your search
@@ -192,6 +192,16 @@ test('Rebuild und Dev start/stop', async () => {
|
||||
assert.ok(rs.calls.some((c) => c.url === '/dev/web/stop'))
|
||||
})
|
||||
|
||||
test('dev/start: oeffentliche Seite ausserhalb Modus dev => 409', async () => {
|
||||
const { createDocument } = await import('../server/services/appwriteAdmin.js')
|
||||
await createDocument('websiteProjects', { projectName: 'Pub', repoFullName: 'JUSN/pub', subdomain: 'pub', previewBranch: 'main', previewBuiltSha: SHA, previewState: 'online', previewDetected: 'static', isPublic: true, previewMode: 'auto' }, 'ppub')
|
||||
rs.calls = []
|
||||
const r = await call('POST', '/ppub/preview/dev/start')
|
||||
assert.equal(r.status, 409)
|
||||
assert.deepEqual(await r.json(), { error: 'Öffentliche Seite: Dev-Server nur im Modus Dev-Server' })
|
||||
assert.equal(rs.calls.filter((c) => c.url.startsWith('/dev/')).length, 0)
|
||||
})
|
||||
|
||||
test('Schalter aus: Schreib-Routen 409, GET geht', async () => {
|
||||
cfg.previewRunner.enabled = false
|
||||
for (const [m, p, b] of [['PATCH', '/pw/preview', { mode: 'auto' }], ['PUT', '/pw/preview/env', { set: {} }],
|
||||
|
||||
@@ -152,15 +152,17 @@ test('Oeffentliche Seite mit previewDetected dev geht nur bei explizitem preview
|
||||
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')
|
||||
await fs.mkdir(path.join(tmp, 'previews', 'livesite'), { recursive: true }) // veroeffentlichter Ordner
|
||||
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.match(routerBlock(content, 'livesite'), /preview-nginx@docker/)
|
||||
assert.doesNotMatch(routerBlock(content, 'livesite'), /preview-runner/)
|
||||
assert.ok(!pd.devSubdomainsFromHostsFile(content).has('livesite'))
|
||||
} finally {
|
||||
await fs.rm(path.join(tmp, 'previews', 'livesite'), { recursive: true, force: true })
|
||||
await deleteDocument('websiteProjects', 'pub1'); await deleteDocument('websiteProjects', 'pub2')
|
||||
await pd.syncPreviewTls(); await pd.waitForDevRegistration()
|
||||
}
|
||||
|
||||
@@ -212,6 +212,20 @@ test('I6: Dev-Zustand folgt dem Runner; Modus off bleibt unberührt', async () =
|
||||
assert.equal(res.reregistered, 0)
|
||||
})
|
||||
|
||||
test('Abgleich: oeffentliche auto-Seite mit altem dev:* wird nicht angefasst und nicht registriert', async () => {
|
||||
const { createDocument } = await import('../server/services/appwriteAdmin.js')
|
||||
await createDocument('websiteProjects', {
|
||||
previewDetected: 'dev:npm', previewBranch: 'main', previewBuiltSha: SHA, isPublic: true, previewMode: 'auto',
|
||||
repoFullName: 'WEBklar/d-pub', subdomain: 'd-pub', previewState: 'online',
|
||||
}, 'dpub')
|
||||
rs.status = { dev: [], known: [], queue: 0 }
|
||||
rs.calls = []
|
||||
const res = await rec.reconcilePreviews()
|
||||
assert.equal(aw.get('websiteProjects', 'dpub').previewState, 'online')
|
||||
assert.equal(rs.calls.filter((c) => c.method === 'PUT' && c.url === '/dev/d-pub').length, 0)
|
||||
assert.ok(res.reregistered === 0 || !rs.calls.some((c) => c.url === '/dev/d-pub'))
|
||||
})
|
||||
|
||||
test('I4: dem Runner unbekannte Dev-Spezifikation wird erneut hinterlegt', async () => {
|
||||
const { createDocument } = await import('../server/services/appwriteAdmin.js')
|
||||
await createDocument('websiteProjects', {
|
||||
|
||||
Reference in new issue
Block a user