mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-06-13 17:21:21 +00:00
chore: add protocol and stream muxing example tests (#849)
This commit is contained in:
7
.github/workflows/main.yml
vendored
7
.github/workflows/main.yml
vendored
@ -114,3 +114,10 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- run: yarn
|
- run: yarn
|
||||||
- run: cd examples && yarn && npm run test -- pnet
|
- run: cd examples && yarn && npm run test -- pnet
|
||||||
|
test-protocol-and-stream-muxing-example:
|
||||||
|
needs: check
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- run: yarn
|
||||||
|
- run: cd examples && yarn && npm run test -- protocol-and-stream-muxing
|
||||||
|
31
examples/protocol-and-stream-muxing/test-1.js
Normal file
31
examples/protocol-and-stream-muxing/test-1.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
const path = require('path')
|
||||||
|
const execa = require('execa')
|
||||||
|
const pDefer = require('p-defer')
|
||||||
|
const uint8ArrayToString = require('uint8arrays/to-string')
|
||||||
|
|
||||||
|
async function test() {
|
||||||
|
const messageDefer = pDefer()
|
||||||
|
process.stdout.write('1.js\n')
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
if (line.includes('my own protocol, wow!')) {
|
||||||
|
messageDefer.resolve()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
await messageDefer.promise
|
||||||
|
proc.kill()
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = test
|
38
examples/protocol-and-stream-muxing/test-2.js
Normal file
38
examples/protocol-and-stream-muxing/test-2.js
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
const path = require('path')
|
||||||
|
const execa = require('execa')
|
||||||
|
const pWaitFor = require('p-wait-for')
|
||||||
|
const uint8ArrayToString = require('uint8arrays/to-string')
|
||||||
|
|
||||||
|
const messages = [
|
||||||
|
'protocol (a)',
|
||||||
|
'protocol (b)',
|
||||||
|
'another stream on protocol (b)'
|
||||||
|
]
|
||||||
|
|
||||||
|
async function test() {
|
||||||
|
process.stdout.write('2.js\n')
|
||||||
|
|
||||||
|
let count = 0
|
||||||
|
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 (messages.find((m) => line.includes(m))) {
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
await pWaitFor(() => count === messages.length)
|
||||||
|
|
||||||
|
proc.kill()
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = test
|
37
examples/protocol-and-stream-muxing/test-3.js
Normal file
37
examples/protocol-and-stream-muxing/test-3.js
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
const path = require('path')
|
||||||
|
const execa = require('execa')
|
||||||
|
const pWaitFor = require('p-wait-for')
|
||||||
|
const uint8ArrayToString = require('uint8arrays/to-string')
|
||||||
|
|
||||||
|
const messages = [
|
||||||
|
'from 1 to 2',
|
||||||
|
'from 2 to 1'
|
||||||
|
]
|
||||||
|
|
||||||
|
async function test() {
|
||||||
|
process.stdout.write('3.js\n')
|
||||||
|
|
||||||
|
let count = 0
|
||||||
|
const proc = execa('node', [path.join(__dirname, '3.js')], {
|
||||||
|
cwd: path.resolve(__dirname),
|
||||||
|
all: true
|
||||||
|
})
|
||||||
|
|
||||||
|
proc.all.on('data', async (data) => {
|
||||||
|
process.stdout.write(data)
|
||||||
|
|
||||||
|
const line = uint8ArrayToString(data)
|
||||||
|
|
||||||
|
if (messages.find((m) => line.includes(m))) {
|
||||||
|
count += 1
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
await pWaitFor(() => count === messages.length)
|
||||||
|
|
||||||
|
proc.kill()
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = test
|
13
examples/protocol-and-stream-muxing/test.js
Normal file
13
examples/protocol-and-stream-muxing/test.js
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
const test1 = require('./test-1')
|
||||||
|
const test2 = require('./test-2')
|
||||||
|
const test3 = require('./test-3')
|
||||||
|
|
||||||
|
async function test() {
|
||||||
|
await test1()
|
||||||
|
await test2()
|
||||||
|
await test3()
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = test
|
Reference in New Issue
Block a user