19 lines
1.3 KiB
JavaScript
19 lines
1.3 KiB
JavaScript
import assert from 'node:assert/strict'
|
|
import test from 'node:test'
|
|
import { formatRecoveryReport, recoveryMetadata } from '../src/recovery-report.mjs'
|
|
|
|
const key = 'MDD2-' + 'A'.repeat(70)
|
|
|
|
test('formats date in Berlin time with source IP and the online key', () => {
|
|
assert.equal(formatRecoveryReport({ createdAt: '2026-09-22T12:30:00.000Z', sourceIp: '203.0.113.7' }, key), `22.09.2026 - 14:30 | IP: 203.0.113.7 | Schlüssel: ${key}\n`)
|
|
assert.equal(formatRecoveryReport({ createdAt: '2026-01-22T12:30:00.000Z', sourceIp: '2001:db8::7' }, key), `22.01.2026 - 13:30 | IP: 2001:db8::7 | Schlüssel: ${key}\n`)
|
|
assert.equal(formatRecoveryReport({ createdAt: '2026-09-21T22:00:00.000Z', sourceIp: '::ffff:192.0.2.1' }, key), `22.09.2026 - 00:00 | IP: 192.0.2.1 | Schlüssel: ${key}\n`)
|
|
})
|
|
|
|
test('keeps legacy metadata explicitly unknown and does not invent a date or IP', () => {
|
|
assert.deepEqual(recoveryMetadata({}), { createdAt: null, sourceIp: null })
|
|
assert.equal(formatRecoveryReport({}, key), `Datum unbekannt | IP: unbekannt | Schlüssel: ${key}\n`)
|
|
assert.equal(formatRecoveryReport({ createdAt: 'invalid', sourceIp: 'invalid\nInjected' }, key), `Datum unbekannt | IP: unbekannt | Schlüssel: ${key}\n`)
|
|
assert.throws(() => formatRecoveryReport({}, key + '\nInjected'))
|
|
})
|