Skip to content

Commit

Permalink
fix: wait for peer stats to be updated during test (#1238)
Browse files Browse the repository at this point in the history
The peer stats update interval doesn't always align with the timing
in the test so make sure it's elapsed before asserting on the results.

Fixes #1219
  • Loading branch information
achingbrain committed Jun 8, 2022
1 parent f9073ec commit b047268
Showing 1 changed file with 14 additions and 0 deletions.
14 changes: 14 additions & 0 deletions test/metrics/index.node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import { createBaseOptions } from '../utils/base-options.js'
import type { Libp2pNode } from '../../src/libp2p.js'
import type { Libp2pOptions } from '../../src/index.js'
import type { DefaultMetrics } from '../../src/metrics/index.js'
import pWaitFor from 'p-wait-for'
import drain from 'it-drain'

describe('libp2p.metrics', () => {
Expand Down Expand Up @@ -170,6 +171,19 @@ describe('libp2p.metrics', () => {
throw new Error('Metrics not configured')
}

await pWaitFor(() => {
const peerStats = metrics.forPeer(connection.remotePeer)?.getSnapshot()
const transferred = parseInt(peerStats?.dataReceived.toString() ?? '0')

if (transferred < bytes.length) {
return false
}

return true
}, {
interval: 100
})

const peerStats = metrics.forPeer(connection.remotePeer)?.getSnapshot()
expect(parseInt(peerStats?.dataReceived.toString() ?? '0')).to.be.at.least(bytes.length)

Expand Down

0 comments on commit b047268

Please sign in to comment.