Files
Multi-Debrid-Downloader/services/backup-api/test/recovery-report.test.mjs
T

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'))
})