30 lines
1.2 KiB
JavaScript
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)
|
|
})
|