Projekt anlegen/archivieren: Review-Punkte
- Anlegen uebernimmt keinen alten Eintrag gleichen Namens mehr (Repo in Gitea geloescht): Platzhalter werden entfernt, ein verknuepftes altes Projekt blockiert den Namen mit klarer Meldung, bevor ein Repo entsteht; neue Projekte starten mit archived=false - archiveRepo aendert Gitea und Dokument unter der Repo-Sperre; der Import liest den Archiv-Stand vor dem Spiegeln frisch aus Gitea - Reaktivieren: Preview aus -> synced, Deploy-Fehler -> deploy_failed statt dauerhaft 'pending' Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
017a9c22f2
commit
800630ea4b
2 files changed
+105
-49
No files matched your search
@@ -150,10 +150,28 @@ test('Reaktivieren mit Website: status nicht mehr archived (pending bis der Depl
|
||||
await svc.archiveRepo('p_mit', false)
|
||||
const d = aw.get('websiteProjects', 'p_mit')
|
||||
assert.equal(d.archived, false)
|
||||
assert.equal(d.status, 'pending') // hier ohne PREVIEW_DEPLOY_ROOT: kein Deploy, also nicht 'deployed'
|
||||
// Status vor dem Redeploy geschrieben, nicht danach (der Runner setzt spaeter selbst 'deployed')
|
||||
// hier ohne PREVIEW_DEPLOY_ROOT: kein Deploy -> 'pending' und als fehlgeschlagen markiert
|
||||
assert.deepEqual([d.status, d.provisioningStatus], ['pending', 'deploy_failed'])
|
||||
// der Status wird vor dem Redeploy geschrieben, danach nicht mehr (der Runner setzt 'deployed')
|
||||
const patches = aw.calls.filter((c) => c.method === 'PATCH' && c.path.endsWith('/p_mit'))
|
||||
assert.equal(patches.at(-1).body.data.status, 'pending')
|
||||
assert.equal(patches.at(-1).body.data.status, undefined)
|
||||
})
|
||||
|
||||
test('Neues Projekt: alter verknuepfter Eintrag mit demselben Namen blockiert mit klarer Meldung, bevor ein Repo entsteht', async () => {
|
||||
aw.insert('websiteProjects', { repoFullName: 'WEBklar/alt-belegt', projectName: 'Alt', archived: true, status: 'archived', kind: 'website', customerId: 'cAlt' })
|
||||
const before = gitea.calls.filter((c) => c.path.endsWith('/generate')).length
|
||||
await assert.rejects(svc.createProjectFromTemplate({ displayName: 'alt belegt', repoName: 'alt-belegt' }), (err) =>
|
||||
err.status === 409 && /alten Projekt/.test(err.message) && /archiviert/.test(err.message))
|
||||
assert.equal(gitea.calls.filter((c) => c.path.endsWith('/generate')).length, before)
|
||||
})
|
||||
|
||||
test('Neues Projekt: alter Platzhalter ohne Bezug wird entfernt, das neue Projekt startet sauber', async () => {
|
||||
aw.insert('websiteProjects', { $id: 'platzhalter', repoFullName: 'WEBklar/frei-machen', projectName: 'alt', archived: true, status: 'archived' })
|
||||
const r = await svc.createProjectFromTemplate({ displayName: 'Frei machen', customerId: 'c1' })
|
||||
assert.equal(aw.get('websiteProjects', 'platzhalter'), undefined)
|
||||
const d = docOf(r.repoFullName)
|
||||
assert.equal(d.archived, false)
|
||||
assert.equal(d.customerId, 'c1')
|
||||
})
|
||||
|
||||
test('Abgleich ueberschreibt den Projektnamen nicht mehr', async () => {
|
||||
|
||||
Reference in new issue
Block a user