Skip to content

Commit

Permalink
chore: update example tests (#1126)
Browse files Browse the repository at this point in the history
Remove some of the redundancy in the example tests
  • Loading branch information
achingbrain authored Jan 20, 2022
1 parent a0bfe8b commit 0264eb6
Show file tree
Hide file tree
Showing 12 changed files with 42 additions and 268 deletions.
22 changes: 3 additions & 19 deletions examples/connection-encryption/test.js
Original file line number Diff line number Diff line change
@@ -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
20 changes: 3 additions & 17 deletions examples/discovery-mechanisms/test-1.js
Original file line number Diff line number Diff line change
@@ -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
})
}

Expand Down
23 changes: 4 additions & 19 deletions examples/peer-and-content-routing/test-1.js
Original file line number Diff line number Diff line change
@@ -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
})
}

Expand Down
22 changes: 4 additions & 18 deletions examples/peer-and-content-routing/test-2.js
Original file line number Diff line number Diff line change
@@ -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
})
}

Expand Down
25 changes: 4 additions & 21 deletions examples/pnet/test.js
Original file line number Diff line number Diff line change
@@ -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
})

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 waitForOutput('This message is sent on a private network', 'node', [path.join(__dirname, 'index.js')], {
cwd: __dirname
})

await messageReceived.promise
proc.kill()
}

module.exports = test

25 changes: 4 additions & 21 deletions examples/protocol-and-stream-muxing/test-1.js
Original file line number Diff line number Diff line change
@@ -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
32 changes: 4 additions & 28 deletions examples/protocol-and-stream-muxing/test-2.js
Original file line number Diff line number Diff line change
@@ -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
31 changes: 4 additions & 27 deletions examples/protocol-and-stream-muxing/test-3.js
Original file line number Diff line number Diff line change
@@ -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
30 changes: 3 additions & 27 deletions examples/transports/test-1.js
Original file line number Diff line number Diff line change
@@ -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
})

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 waitForOutput('/p2p/', 'node', [path.join(__dirname, '1.js')], {
cwd: __dirname
})

await Promise.all([
deferStarted.promise,
deferListen.promise
])
proc.kill()
}

module.exports = test
22 changes: 3 additions & 19 deletions examples/transports/test-2.js
Original file line number Diff line number Diff line change
@@ -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
Loading

0 comments on commit 0264eb6

Please sign in to comment.