@@ -27,7 +27,9 @@ const state = {
2727 pauseCallbacks : [ ] ,
2828 requestsCompleted : 0 ,
2929 startTime : Date . now ( ) ,
30- statsResetInterval : null
30+ statsResetInterval : null ,
31+ pausedAt : null ,
32+ pausedDuration : 0
3133}
3234
3335// Extract destructured state for cleaner code
@@ -404,7 +406,15 @@ export const retry = (domain) => {
404406 * Get current statistics
405407 */
406408export const getStats = ( ) => {
407- const elapsed = ( Date . now ( ) - state . startTime ) / 1000 // seconds
409+ let elapsed = ( Date . now ( ) - state . startTime ) / 1000 // seconds
410+
411+ // If paused, subtract the paused duration from elapsed time
412+ if ( state . isPaused && state . pausedAt ) {
413+ elapsed -= ( Date . now ( ) - state . pausedAt ) / 1000
414+ } else if ( state . pausedDuration > 0 ) {
415+ elapsed -= state . pausedDuration / 1000
416+ }
417+
408418 const requestsPerSecond = elapsed > 0 ? state . requestsCompleted / elapsed : 0
409419
410420 return {
@@ -423,6 +433,8 @@ export const getStats = () => {
423433 */
424434export const pause = ( ) => {
425435 state . isPaused = true
436+ state . pausedAt = Date . now ( )
437+
426438 pauseCallbacks . forEach ( callback => {
427439 try {
428440 callback ( true )
@@ -436,6 +448,12 @@ export const pause = () => {
436448 * Resume all speed test requests
437449 */
438450export const resume = ( ) => {
451+ // Track paused duration
452+ if ( state . pausedAt ) {
453+ state . pausedDuration += Date . now ( ) - state . pausedAt
454+ state . pausedAt = null
455+ }
456+
439457 state . isPaused = false
440458
441459 // Clear any stale call records from before pause
0 commit comments