GooDrive/frontend/tests/transfer-metrics.test.js
Louis Mazin ac44c6ed8b nice
2026-10-13 23:47:19 +02:00

30 lines
1.2 KiB
JavaScript

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