Serverpuls: Admin-Seite mit Verlauf und Warnungen

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-09-30 12:43:13 +00:00
1 parent ae905a5d9b
commit ec740ca970
12 files changed
+749 -3

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
import test from 'node:test'
import assert from 'node:assert/strict'
import { loadModule } from './load.mjs'
const { formatBytes, formatDelta, ageLabel, usedPct } = await loadModule('src/lib/serverpulsFormat.js')
test('formatBytes: de-DE, Basis 1024', () => {
assert.equal(formatBytes(1288490189), '1,2 GB')
assert.equal(formatBytes(0), '0 B')
assert.equal(formatBytes(512), '512 B')
assert.equal(formatBytes(1536), '1,5 KB')
assert.equal(formatBytes(null), '–')
})
test('formatDelta', () => {
assert.equal(formatDelta(null).text, '–')
assert.equal(formatDelta(null).dir, 'flat')
assert.deepEqual(formatDelta(-3.21), { text: '−3,2 %', dir: 'down' })
assert.deepEqual(formatDelta(12.34), { text: '+12,3 %', dir: 'up' })
assert.equal(formatDelta(0).dir, 'flat')
})
test('ageLabel: stale ab > 15 Min.', () => {
const now = 1_000_000_000_000
const a16 = ageLabel(now - 16 * 60000, now)
assert.equal(a16.stale, true)
assert.equal(a16.text, 'vor 16 Min.')
assert.equal(ageLabel(now - 14 * 60000, now).stale, false)
assert.equal(ageLabel(now - 20000, now).text, 'gerade eben')
assert.equal(ageLabel(null, now).stale, true)
})
test('usedPct: RAM value ist frei', () => {
assert.equal(usedPct(250, 1000), 75)
assert.equal(usedPct(null, 1000), null)
})