Gesamtprüfung: Zeitlimit für Gitea, Aufräumen ohne Weiterleitung
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
febac3c2a3
commit
d5c70a5bd6
7 files changed
+233
-11
No files matched your search
@@ -0,0 +1,49 @@
|
||||
import { test, before, after } from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import { startFakeGitea } from './helpers/fakeGitea.js'
|
||||
|
||||
let gitea
|
||||
let giteaFetch
|
||||
let moveRepoToOrg
|
||||
|
||||
// Eigene Datei, weil GITEA_TIMEOUT_MS hier absichtlich sehr klein gesetzt wird (config.js liest
|
||||
// die Umgebung beim Import - andere Testdateien duerfen davon nicht betroffen sein, jede
|
||||
// Testdatei laeuft in einem eigenen Prozess).
|
||||
before(async () => {
|
||||
gitea = await startFakeGitea({ repos: [{ full_name: 'knso/langsam' }] })
|
||||
|
||||
Object.assign(process.env, {
|
||||
GITEA_BASE_URL: gitea.baseUrl,
|
||||
GITEA_API_TOKEN: 'test-token',
|
||||
GITEA_TIMEOUT_MS: '200',
|
||||
})
|
||||
;({ giteaFetch } = await import('../server/services/giteaClient.js'))
|
||||
;({ moveRepoToOrg } = await import('../server/services/repoMove.js'))
|
||||
})
|
||||
|
||||
after(async () => {
|
||||
await gitea.close()
|
||||
})
|
||||
|
||||
test('giteaFetch bricht bei Zeitueberschreitung ohne .status ab', async () => {
|
||||
gitea.setResponseDelay(2000)
|
||||
const start = Date.now()
|
||||
await assert.rejects(
|
||||
giteaFetch('/repos/knso/langsam'),
|
||||
(err) => {
|
||||
assert.equal(err.status, undefined)
|
||||
assert.match(err.message, /Zeitlimit/)
|
||||
return true
|
||||
}
|
||||
)
|
||||
assert.ok(Date.now() - start < 2000, 'giteaFetch haette nach ~200ms abbrechen muessen')
|
||||
})
|
||||
|
||||
test('moveRepoToOrg meldet "Gitea ist gerade nicht erreichbar" statt zu haengen', async () => {
|
||||
gitea.setResponseDelay(2000)
|
||||
const start = Date.now()
|
||||
const r = await moveRepoToOrg({ $id: 'x', repoFullName: 'knso/langsam' })
|
||||
assert.ok(Date.now() - start < 2000, 'moveRepoToOrg haette nicht haengen bleiben duerfen')
|
||||
assert.equal(r.moved, null)
|
||||
assert.match(r.warnings[0], /^Gitea ist gerade nicht erreichbar \(/)
|
||||
})
|
||||
Reference in new issue
Block a user