Files
tickte-system/tests/unit/sidebar.test.mjs
T
ClaudeandClaude Sonnet 5.5 0b1101d384 Finanzen: Korrekturen aus dem Oberflaechentest
Seitenmenue startet auf schmalen Bildschirmen (bis 720 px) eingeklappt. Bei 390 px liess
das feste 248-px-Menue nur ~140 px Inhalt, jede Seite (auch /finance) scrollte waagerecht;
das fiel in den Einzeltests ohne App-Rahmen nicht auf.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 15:12:18 +00:00

28 lines
1.1 KiB
JavaScript

import test from 'node:test'
import assert from 'node:assert/strict'
import { loadModule } from './load.mjs'
const { startsCollapsed, AUTO_COLLAPSE_MAX_WIDTH } = await loadModule('src/lib/sidebar.js')
// Fenster mit matchMedia, das "(max-width: Npx)" gegen eine feste Breite prueft
const windowOf = (width) => ({
matchMedia: (query) => ({ matches: width <= Number(/max-width:\s*(\d+)px/.exec(query)?.[1]) }),
})
test('startsCollapsed: Handy (390 px) und Grenze (720 px) starten eingeklappt', () => {
assert.equal(AUTO_COLLAPSE_MAX_WIDTH, 720)
assert.equal(startsCollapsed(windowOf(390)), true)
assert.equal(startsCollapsed(windowOf(720)), true)
})
test('startsCollapsed: breitere Fenster starten ausgeklappt', () => {
assert.equal(startsCollapsed(windowOf(721)), false)
assert.equal(startsCollapsed(windowOf(1280)), false)
})
test('startsCollapsed: ohne window oder matchMedia (oder bei Fehler) ausgeklappt', () => {
assert.equal(startsCollapsed(null), false)
assert.equal(startsCollapsed({}), false)
assert.equal(startsCollapsed({ matchMedia: () => { throw new Error('kaputt') } }), false)
})