chore: echo example test (#842)

This commit is contained in:
Vasco Santos 2021-01-20 10:46:04 +01:00 committed by GitHub
parent 0a02207116
commit f45cd1c4b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 70 additions and 2 deletions

View File

@ -72,6 +72,13 @@ jobs:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- run: yarn - run: yarn
- run: cd examples && yarn && npm run test -- chat - run: cd examples && yarn && npm run test -- chat
test-echo-example:
needs: check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: yarn
- run: cd examples && yarn && npm run test -- echo
test-libp2p-in-the-browser-example: test-libp2p-in-the-browser-example:
needs: check needs: check
runs-on: macos-latest runs-on: macos-latest

View File

@ -6,7 +6,7 @@
*/ */
const PeerId = require('peer-id') const PeerId = require('peer-id')
const createLibp2p = require('./libp2p-bundle') const createLibp2p = require('./libp2p')
const pipe = require('it-pipe') const pipe = require('it-pipe')
async function run() { async function run() {

View File

@ -6,7 +6,7 @@
*/ */
const PeerId = require('peer-id') const PeerId = require('peer-id')
const createLibp2p = require('./libp2p-bundle') const createLibp2p = require('./libp2p')
const pipe = require('it-pipe') const pipe = require('it-pipe')
async function run() { async function run() {

61
examples/echo/test.js Normal file
View File

@ -0,0 +1,61 @@
'use strict'
const path = require('path')
const execa = require('execa')
const pDefer = require('p-defer')
const uint8ArrayToString = require('uint8arrays/to-string')
function startProcess(name) {
return execa('node', [path.join(__dirname, name)], {
cwd: path.resolve(__dirname),
all: true
})
}
async function test () {
const listenerReady = pDefer()
const messageReceived = pDefer()
// Step 1 process
process.stdout.write('node listener.js\n')
const listenerProc = startProcess('src/listener.js')
listenerProc.all.on('data', async (data) => {
process.stdout.write(data)
const s = uint8ArrayToString(data)
if (s.includes('Listener ready, listening on:')) {
listenerReady.resolve()
}
})
await listenerReady.promise
process.stdout.write('==================================================================\n')
// Step 2 process
process.stdout.write('node dialer.js\n')
const dialerProc = startProcess('src/dialer.js')
dialerProc.all.on('data', async (data) => {
process.stdout.write(data)
const s = uint8ArrayToString(data)
if (s.includes('received echo:')) {
messageReceived.resolve()
}
})
await messageReceived.promise
process.stdout.write('echo message received\n')
listenerProc.kill()
dialerProc.kill()
await Promise.all([
listenerProc,
dialerProc
]).catch((err) => {
if (err.signal !== 'SIGTERM') {
throw err
}
})
}
module.exports = test