Files
tickte-system/tests/unit/analyseView.test.mjs
T
2026-10-01 10:40:06 +00:00

54 lines
2.2 KiB
JavaScript

import test from 'node:test'
import assert from 'node:assert/strict'
import { loadModule } from './load.mjs'
const { analyseStatus, avvLabel } = await loadModule('src/lib/analyseView.js')
test('analyseStatus: Schalter aus => noch nicht freigeschaltet, kein Button', () => {
const s = analyseStatus({ enabled: false })
assert.equal(s.text, 'Noch nicht freigeschaltet')
assert.equal(s.canEnable, false)
assert.equal(s.canDisable, false)
})
test('analyseStatus: an seit Datum (Europe/Berlin)', () => {
const s = analyseStatus({ enabled: true, state: 'active', eligible: true, activatedAt: '2026-10-01T22:30:00Z' })
assert.equal(s.text, 'An seit 02.10.2026')
assert.equal(s.canDisable, true)
assert.equal(s.canEnable, false)
})
test('analyseStatus: an ohne Datum bleibt lesbar', () => {
assert.equal(analyseStatus({ enabled: true, state: 'active', eligible: true }).text, 'An')
})
test('analyseStatus: aus und berechtigt => Einschalten moeglich', () => {
const s = analyseStatus({ enabled: true, state: 'off', eligible: true })
assert.equal(s.text, 'Aus')
assert.equal(s.canEnable, true)
assert.equal(analyseStatus({ enabled: true, state: null, eligible: true }).text, 'Aus')
})
test('analyseStatus: gesperrt', () => {
const s = analyseStatus({ enabled: true, state: 'disabled', eligible: true })
assert.equal(s.text, 'Gesperrt')
assert.equal(s.canEnable, true)
assert.equal(s.enableLabel, 'Trotz Sperre einschalten')
assert.equal(s.hint, 'Vom Team gesperrt')
assert.equal(analyseStatus({ enabled: true, state: 'disabled', eligible: false }).canEnable, false)
})
test('analyseStatus: nicht berechtigt => Grund, kein Button', () => {
const s = analyseStatus({ enabled: true, state: null, eligible: false, reasonText: 'Die Website-Analyse gibt es nur mit einem laufenden Wartungs-Abo.' })
assert.equal(s.text, 'Nicht verfügbar: Die Website-Analyse gibt es nur mit einem laufenden Wartungs-Abo.')
assert.equal(s.canEnable, false)
})
test('analyseStatus: robust bei leerer Antwort', () => {
assert.equal(analyseStatus(null).text, '')
})
test('avvLabel nennt die Fassung', () => {
assert.equal(avvLabel('2026-10-01'), 'Der Kunde hat den Auftragsverarbeitungsvertrag (Fassung 2026-10-01) bestätigt')
})