chore: update example tests (#1126)

Remove some of the redundancy in the example tests
This commit is contained in:
Alex Potsides 2022-01-20 13:33:01 +00:00 committed by GitHub
parent a0bfe8b534
commit 0264eb62ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 42 additions and 268 deletions

View File

@ -1,30 +1,14 @@
'use strict'
const path = require('path')
const execa = require('execa')
const pDefer = require('p-defer')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
async function test () {
const messageReceived = pDefer()
process.stdout.write('1.js\n')
const proc = execa('node', [path.join(__dirname, '1.js')], {
cwd: path.resolve(__dirname),
all: true
await waitForOutput('This information is sent out encrypted to the other peer', 'node', [path.join(__dirname, '1.js')], {
cwd: __dirname
})
proc.all.on('data', async (data) => {
process.stdout.write(data)
const s = uint8ArrayToString(data)
if (s.includes('This information is sent out encrypted to the other peer')) {
messageReceived.resolve()
}
})
await messageReceived.promise
proc.kill()
}
module.exports = test

View File

@ -1,27 +1,13 @@
'use strict'
const path = require('path')
const execa = require('execa')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
async function test () {
process.stdout.write('1.js\n')
const proc = execa('node', [path.join(__dirname, '1.js')], {
cwd: path.resolve(__dirname),
all: true
})
let output = ''
proc.all.on('data', async (data) => {
process.stdout.write(data)
output += uint8ArrayToString(data)
// Discovered and connected
if (output.includes('Connection established to:')) {
proc.kill()
}
await waitForOutput('Connection established to:', 'node', [path.join(__dirname, '1.js')], {
cwd: __dirname
})
}

View File

@ -1,28 +1,13 @@
'use strict'
const path = require('path')
const execa = require('execa')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
async function test() {
async function test () {
process.stdout.write('1.js\n')
const proc = execa('node', [path.join(__dirname, '1.js')], {
cwd: path.resolve(__dirname),
all: true
})
let output = ''
proc.all.on('data', async (data) => {
process.stdout.write(data)
output += uint8ArrayToString(data)
// Discovered peers
if (output.includes('Found it, multiaddrs are:')) {
proc.kill()
}
await waitForOutput('Found it, multiaddrs are:', 'node', [path.join(__dirname, '1.js')], {
cwd: __dirname
})
}

View File

@ -1,27 +1,13 @@
'use strict'
const path = require('path')
const execa = require('execa')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
async function test() {
async function test () {
process.stdout.write('2.js\n')
const proc = execa('node', [path.join(__dirname, '2.js')], {
cwd: path.resolve(__dirname),
all: true
})
let output = ''
proc.all.on('data', async (data) => {
process.stdout.write(data)
output += uint8ArrayToString(data)
if (output.includes('Found provider:')) {
proc.kill()
}
await waitForOutput('Found provider:', 'node', [path.join(__dirname, '2.js')], {
cwd: __dirname
})
}

View File

@ -1,30 +1,13 @@
'use strict'
const path = require('path')
const execa = require('execa')
const pDefer = require('p-defer')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
async function test () {
const messageReceived = pDefer()
process.stdout.write('index.js\n')
const proc = execa('node', [path.join(__dirname, 'index.js')], {
cwd: path.resolve(__dirname),
all: true
await waitForOutput('This message is sent on a private network', 'node', [path.join(__dirname, 'index.js')], {
cwd: __dirname
})
proc.all.on('data', async (data) => {
process.stdout.write(data)
const s = uint8ArrayToString(data)
if (s.includes('This message is sent on a private network')) {
messageReceived.resolve()
}
})
await messageReceived.promise
proc.kill()
}
module.exports = test

View File

@ -1,31 +1,14 @@
'use strict'
const path = require('path')
const execa = require('execa')
const pDefer = require('p-defer')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
async function test() {
const messageDefer = pDefer()
async function test () {
process.stdout.write('1.js\n')
const proc = execa('node', [path.join(__dirname, '1.js')], {
cwd: path.resolve(__dirname),
all: true
await waitForOutput('my own protocol, wow!', 'node', [path.join(__dirname, '1.js')], {
cwd: __dirname
})
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

View File

@ -1,38 +1,14 @@
'use strict'
const path = require('path')
const execa = require('execa')
const pWaitFor = require('p-wait-for')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
const messages = [
'protocol (a)',
'protocol (b)',
'another stream on protocol (b)'
]
async function test() {
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
await waitForOutput('another stream on protocol (b)', 'node', [path.join(__dirname, '2.js')], {
cwd: __dirname
})
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

View File

@ -1,37 +1,14 @@
'use strict'
const path = require('path')
const execa = require('execa')
const pWaitFor = require('p-wait-for')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
const messages = [
'from 1 to 2',
'from 2 to 1'
]
async function test() {
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
await waitForOutput('from 2 to 1', 'node', [path.join(__dirname, '3.js')], {
cwd: __dirname
})
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

View File

@ -1,38 +1,14 @@
'use strict'
const path = require('path')
const execa = require('execa')
const pDefer = require('p-defer')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
async function test () {
const deferStarted = pDefer()
const deferListen = pDefer()
process.stdout.write('1.js\n')
const proc = execa('node', [path.join(__dirname, '1.js')], {
cwd: path.resolve(__dirname),
all: true
await waitForOutput('/p2p/', 'node', [path.join(__dirname, '1.js')], {
cwd: __dirname
})
proc.all.on('data', async (data) => {
process.stdout.write(data)
const line = uint8ArrayToString(data)
if (line.includes('node has started (true/false): true')) {
deferStarted.resolve()
} else if (line.includes('p2p')) {
deferListen.resolve()
}
})
await Promise.all([
deferStarted.promise,
deferListen.promise
])
proc.kill()
}
module.exports = test

View File

@ -1,30 +1,14 @@
'use strict'
const path = require('path')
const execa = require('execa')
const pDefer = require('p-defer')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
async function test () {
const defer = pDefer()
process.stdout.write('2.js\n')
const proc = execa('node', [path.join(__dirname, '2.js')], {
cwd: path.resolve(__dirname),
all: true
await waitForOutput('Hello p2p world!', 'node', [path.join(__dirname, '2.js')], {
cwd: __dirname
})
proc.all.on('data', async (data) => {
process.stdout.write(data)
const line = uint8ArrayToString(data)
if (line.includes('Hello p2p world!')) {
defer.resolve()
}
})
await defer.promise
proc.kill()
}
module.exports = test

View File

@ -1,41 +1,14 @@
'use strict'
const path = require('path')
const execa = require('execa')
const pDefer = require('p-defer')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
async function test () {
const deferNode1 = pDefer()
const deferNode2 = pDefer()
const deferNode3 = pDefer()
process.stdout.write('3.js\n')
const proc = execa('node', [path.join(__dirname, '3.js')], {
cwd: path.resolve(__dirname),
all: true
await waitForOutput('node 3 failed to dial to node 1 with:', 'node', [path.join(__dirname, '3.js')], {
cwd: __dirname
})
proc.all.on('data', async (data) => {
process.stdout.write(data)
const line = uint8ArrayToString(data)
if (line.includes('node 1 dialed to node 2 successfully')) {
deferNode1.resolve()
} else if (line.includes('node 2 dialed to node 3 successfully')) {
deferNode2.resolve()
} else if (line.includes('node 3 failed to dial to node 1 with:')) {
deferNode3.resolve()
}
})
await Promise.all([
deferNode1.promise,
deferNode2.promise,
deferNode3.promise
])
proc.kill()
}
module.exports = test

View File

@ -1,33 +1,14 @@
'use strict'
const path = require('path')
const execa = require('execa')
const pDefer = require('p-defer')
const { toString: uint8ArrayToString } = require('uint8arrays/to-string')
const { waitForOutput } = require('../utils')
async function test () {
const deferNode1 = pDefer()
process.stdout.write('4.js\n')
const proc = execa('node', [path.join(__dirname, '4.js')], {
cwd: path.resolve(__dirname),
all: true
await waitForOutput('node 2 dialed to node 1 successfully', 'node', [path.join(__dirname, '4.js')], {
cwd: __dirname
})
proc.all.on('data', async (data) => {
process.stdout.write(data)
const line = uint8ArrayToString(data)
if (line.includes('node 2 dialed to node 1 successfully')) {
deferNode1.resolve()
}
})
await Promise.all([
deferNode1.promise,
])
proc.kill()
}
module.exports = test