import test from 'node:test' import assert from 'node:assert/strict' import { currentTransferSpeed, formatDuration, recordTransferProgress, resetTransferRate } from '../src/lib/transfer-metrics.js' test('débit en octets/s et ETA restant calculés avec les octets transmis', () => { const job = { status: 'uploading', size: 1_000_000, sent: 0 } resetTransferRate(job, 1000) recordTransferProgress(job, 100_000, 2000) assert.equal(job.speedBps, 100_000) assert.equal(job.etaSeconds, 9) assert.equal(currentTransferSpeed(job, 2500), 100_000) assert.equal(currentTransferSpeed(job, 7001), 0) recordTransferProgress(job, 300_000, 3000) assert.equal(job.speedBps, 165_000) assert.equal(job.etaSeconds, 5) }) test('annulation/pause et temps restant formatés correctement', () => { const job = { status: 'uploading', size: 100, sent: 40, speedBps: 50, etaSeconds: 2 } resetTransferRate(job, 2000) assert.equal(job.speedBps, 0) assert.equal(job.etaSeconds, null) assert.equal(formatDuration(null), 'Calcul…') assert.equal(formatDuration(72), '1 min 12 s') assert.equal(formatDuration(3705), '1 h 01 min') job.status = 'paused' job.speedBps = 50 assert.equal(currentTransferSpeed(job, 2100), 0) })