mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-04-25 10:32:14 +00:00
chore: add peer and content routing example tests (#848)
This commit is contained in:
parent
aec8e3d3bb
commit
a150ea60c5
7
.github/workflows/main.yml
vendored
7
.github/workflows/main.yml
vendored
@ -100,6 +100,13 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- run: yarn
|
- run: yarn
|
||||||
- run: cd examples && yarn && npm run test -- discovery-mechanisms
|
- run: cd examples && yarn && npm run test -- discovery-mechanisms
|
||||||
|
test-peer-and-content-routing-example:
|
||||||
|
needs: check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- run: yarn
|
||||||
|
- run: cd examples && yarn && npm run test -- peer-and-content-routing
|
||||||
test-pnet-example:
|
test-pnet-example:
|
||||||
needs: check
|
needs: check
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
36
examples/peer-and-content-routing/test-1.js
Normal file
36
examples/peer-and-content-routing/test-1.js
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
const path = require('path')
|
||||||
|
const execa = require('execa')
|
||||||
|
const pWaitFor = require('p-wait-for')
|
||||||
|
const uint8ArrayToString = require('uint8arrays/to-string')
|
||||||
|
|
||||||
|
async function test() {
|
||||||
|
process.stdout.write('1.js\n')
|
||||||
|
|
||||||
|
const addrs = []
|
||||||
|
let foundIt = false
|
||||||
|
const proc = execa('node', [path.join(__dirname, '1.js')], {
|
||||||
|
cwd: path.resolve(__dirname),
|
||||||
|
all: true
|
||||||
|
})
|
||||||
|
|
||||||
|
proc.all.on('data', async (data) => {
|
||||||
|
process.stdout.write(data)
|
||||||
|
|
||||||
|
const line = uint8ArrayToString(data)
|
||||||
|
|
||||||
|
// Discovered peer
|
||||||
|
if (!foundIt && line.includes('Found it, multiaddrs are:')) {
|
||||||
|
foundIt = true
|
||||||
|
}
|
||||||
|
|
||||||
|
addrs.push(line)
|
||||||
|
})
|
||||||
|
|
||||||
|
await pWaitFor(() => addrs.length === 2)
|
||||||
|
|
||||||
|
proc.kill()
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = test
|
40
examples/peer-and-content-routing/test-2.js
Normal file
40
examples/peer-and-content-routing/test-2.js
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
const path = require('path')
|
||||||
|
const execa = require('execa')
|
||||||
|
const pDefer = require('p-defer')
|
||||||
|
const uint8ArrayToString = require('uint8arrays/to-string')
|
||||||
|
|
||||||
|
const providedCopy = 'is providing'
|
||||||
|
const foundCopy = 'Found provider:'
|
||||||
|
|
||||||
|
async function test() {
|
||||||
|
process.stdout.write('2.js\n')
|
||||||
|
const providedDefer = pDefer()
|
||||||
|
const foundDefer = pDefer()
|
||||||
|
|
||||||
|
const proc = execa('node', [path.join(__dirname, '2.js')], {
|
||||||
|
cwd: path.resolve(__dirname),
|
||||||
|
all: true
|
||||||
|
})
|
||||||
|
|
||||||
|
proc.all.on('data', async (data) => {
|
||||||
|
process.stdout.write(data)
|
||||||
|
|
||||||
|
const line = uint8ArrayToString(data)
|
||||||
|
|
||||||
|
if (line.includes(providedCopy)) {
|
||||||
|
providedDefer.resolve()
|
||||||
|
} else if (line.includes(foundCopy)) {
|
||||||
|
foundDefer.resolve()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
await Promise.all([
|
||||||
|
providedDefer.promise,
|
||||||
|
foundDefer.promise
|
||||||
|
])
|
||||||
|
proc.kill()
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = test
|
11
examples/peer-and-content-routing/test.js
Normal file
11
examples/peer-and-content-routing/test.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
const test1 = require('./test-1')
|
||||||
|
const test2 = require('./test-2')
|
||||||
|
|
||||||
|
async function test() {
|
||||||
|
await test1()
|
||||||
|
await test2()
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = test
|
Loading…
x
Reference in New Issue
Block a user