Preview: Dev-Modus nur mit dev-Skript waehlbar

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-09-30 22:48:21 +00:00
1 parent c1818fadcf
commit 447b7e733e
3 files changed
+36 -4

No files matched your search

+19 -1
View File
@@ -2,7 +2,7 @@ import test from 'node:test'
import assert from 'node:assert/strict'
import { loadModule } from './load.mjs'
const { previewStatus, detectedLabel, modeHint, MODE_OPTIONS } = await loadModule('src/lib/previewView.js')
const { previewStatus, detectedLabel, modeHint, MODE_OPTIONS, modeOptionsFor, isDevUnavailableError } = await loadModule('src/lib/previewView.js')
test('previewStatus online: Datum in Europe/Berlin und sha7', () => {
const s = previewStatus({ state: 'online', builtAt: '2026-09-30T13:05:00Z', builtSha: 'abcdef1234567890' })
@@ -61,3 +61,21 @@ test('MODE_OPTIONS', () => {
{ value: 'off', label: 'Aus' },
])
})
test('previewStatus failed + Dev-Modus nicht möglich => gelb, kein roter Build-Fehler', () => {
const s = previewStatus({ state: 'failed', error: 'Dev-Modus hier nicht möglich – statische Version ist online' })
assert.deepEqual(s, { color: 'yellow', text: 'Dev-Modus hier nicht möglich – statische Version ist online' })
assert.equal(previewStatus({ state: 'failed', error: 'Build kaputt' }).color, 'red')
assert.equal(isDevUnavailableError('Dev-Modus hier nicht möglich – x'), true)
assert.equal(isDevUnavailableError(''), false)
})
test('modeOptionsFor: dev nur bei devAvailable === false gesperrt', () => {
for (const a of [true, null, undefined]) {
assert.ok(modeOptionsFor(a).every((o) => !o.disabled))
assert.equal(modeOptionsFor(a).find((o) => o.value === 'dev').label, 'Dev-Server')
}
const o = modeOptionsFor(false)
assert.deepEqual(o.find((x) => x.value === 'dev'), { value: 'dev', label: 'Dev-Server (kein dev-Skript)', disabled: true })
assert.equal(o.filter((x) => x.disabled).length, 1)
})