Merge pull request #4 from waku-org/js-waku-0.25.0

This commit is contained in:
fryorcraken.eth 2022-09-05 21:17:02 +10:00 committed by GitHub
commit 611d1357dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 3762 additions and 5177 deletions

48
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,48 @@
name: CI
on:
push:
branches:
- "master"
pull_request:
env:
NODE_JS: 16
jobs:
run:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
test:
[
predefined-prod,
predefined-test,
native-wss-prod,
native-wss-test,
waku-connect,
]
steps:
- uses: actions/checkout@v2.3.3
- uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_JS }}
- uses: bahmutov/npm-install@v1
with:
install-command: yarn
- name: Run ${{ matrix.test }}
run: npm run ${{ matrix.test }}
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_JS }}
- uses: bahmutov/npm-install@v1
with:
install-command: yarn
- run: npm run test:lint
- run: npm run test:prettier

View File

@ -1,9 +1,12 @@
import { expect } from "chai"; import { expect } from "chai";
import { describe } from "mocha"; import { describe } from "mocha";
import { Multiaddr } from "multiaddr"; import { Multiaddr } from "multiaddr";
import { Protocols, Waku, WakuMessage } from "js-waku"; import { Protocols, WakuMessage } from "js-waku";
import { createWaku } from "js-waku/lib/create_waku";
import { v4 as uuidv4 } from "uuid"; import { v4 as uuidv4 } from "uuid";
import delay from "./delay.js"; import delay from "./delay.js";
import { PeerDiscoveryStaticPeers } from "js-waku/lib/peer_discovery_static_list";
import { waitForRemotePeer } from "js-waku/lib/wait_for_remote_peer";
export default function runAll(nodes) { export default function runAll(nodes) {
describe("Run Waku Test Suite", () => { describe("Run Waku Test Suite", () => {
@ -28,17 +31,24 @@ export default function runAll(nodes) {
}); });
const promises = nodes.map(async (node, i) => { const promises = nodes.map(async (node, i) => {
wakus[i] = await Waku.create({ wakus[i] = await createWaku({
bootstrap: { peers: [node] }, libp2p: {
peerDiscovery: [new PeerDiscoveryStaticPeers([node])],
},
}); });
await wakus[i].start();
return new Promise((resolve) => { return new Promise((resolve) => {
wakus[i].libp2p.connectionManager.on("peer:connect", (connection) => { wakus[i].libp2p.connectionManager.addEventListener(
resolve(connection.remotePeer); "peer:connect",
}); (evt) => {
resolve(evt.detail.remotePeer);
}
);
}).then((peerId) => { }).then((peerId) => {
console.log("connected", peerId.toB58String()); console.log("connected", peerId.toString());
expect(peerId.toB58String()).to.eq( expect(peerId.toString()).to.eq(
peerIds[i], peerIds[i],
`Could not connect to ${hostnames[i]}` `Could not connect to ${hostnames[i]}`
); );
@ -54,11 +64,14 @@ export default function runAll(nodes) {
const id = uuidv4(); const id = uuidv4();
const promises = nodes.map(async (node, i) => { const promises = nodes.map(async (node, i) => {
wakus[i] = await Waku.create({ wakus[i] = await createWaku({
bootstrap: { peers: [node] }, libp2p: {
peerDiscovery: [new PeerDiscoveryStaticPeers([node])],
},
}); });
await wakus[i].waitForRemotePeer([Protocols.Relay]); await wakus[i].start();
await waitForRemotePeer(wakus[i], [Protocols.Relay]);
console.log(node + ": ready"); console.log(node + ": ready");
}); });
@ -127,11 +140,14 @@ export default function runAll(nodes) {
const id = uuidv4(); const id = uuidv4();
const promises = nodes.map(async (node, i) => { const promises = nodes.map(async (node, i) => {
wakus[i] = await Waku.create({ wakus[i] = await createWaku({
bootstrap: { peers: [node] }, libp2p: {
peerDiscovery: [new PeerDiscoveryStaticPeers([node])],
},
}); });
await wakus[i].waitForRemotePeer([ await wakus[i].start();
await waitForRemotePeer(wakus[i], [
Protocols.LightPush, Protocols.LightPush,
Protocols.Relay, Protocols.Relay,
]); ]);
@ -203,11 +219,14 @@ export default function runAll(nodes) {
const id = uuidv4(); const id = uuidv4();
const promises = nodes.map(async (node, i) => { const promises = nodes.map(async (node, i) => {
wakus[i] = await Waku.create({ wakus[i] = await createWaku({
bootstrap: { peers: [node] }, libp2p: {
peerDiscovery: [new PeerDiscoveryStaticPeers([node])],
},
}); });
await wakus[i].waitForRemotePeer([Protocols.Relay, Protocols.Store]); await wakus[i].start();
await waitForRemotePeer(wakus[i], [Protocols.Relay, Protocols.Store]);
console.log(node + ": ready"); console.log(node + ": ready");
}); });

View File

@ -3,9 +3,12 @@
"packageManager": "yarn@3.2.0", "packageManager": "yarn@3.2.0",
"type": "module", "type": "module",
"scripts": { "scripts": {
"lint": "eslint . --ext .js --fix", "fix": "run-s fix:**",
"format": "prettier --write .", "fix:lint": "eslint . --ext .js --fix",
"fix": "run-s lint format", "fix:prettier": "prettier --write .",
"test": "run-s test:*",
"test:lint": "eslint . --ext .js",
"test:prettier": "prettier . --list-different",
"predefined-prod": "mocha predefinedProdFleet.js --exit", "predefined-prod": "mocha predefinedProdFleet.js --exit",
"predefined-test": "mocha predefinedTestFleet.js --exit ", "predefined-test": "mocha predefinedTestFleet.js --exit ",
"native-wss-prod": "mocha nativeWssProdFleet.js --exit", "native-wss-prod": "mocha nativeWssProdFleet.js --exit",
@ -49,12 +52,12 @@
"prettier": "^2.6.2" "prettier": "^2.6.2"
}, },
"dependencies": { "dependencies": {
"js-waku": "^0.20.0", "js-waku": "^0.25.0",
"multiaddr": "^10.0.1", "multiaddr": "^10.0.1",
"uuid": "^8.3.2" "uuid": "^8.3.2"
}, },
"lint-staged": { "lint-staged": {
"*.js": "eslint --cache --fix", "*.js": "eslint --cache --fix",
"*.{js,css,md}": "prettier --write" "*.{js,css,md,yml}": "prettier --write"
} }
} }

View File

@ -1,9 +1,8 @@
import { describe } from "mocha"; import { describe } from "mocha";
import { discovery } from "js-waku";
import runAll from "./index.js"; import runAll from "./index.js";
import { fleets } from "js-waku/lib/predefined_bootstrap_nodes";
const prodFleet = const prodFleet = fleets.fleets["wakuv2.prod"]["waku-websocket"];
discovery.predefined.fleets.fleets["wakuv2.prod"]["waku-websocket"];
const nodes = Object.values(prodFleet); const nodes = Object.values(prodFleet);
describe("Predefined Prod Fleet", () => { describe("Predefined Prod Fleet", () => {

View File

@ -1,9 +1,8 @@
import { describe } from "mocha"; import { describe } from "mocha";
import { discovery } from "js-waku"; import { fleets } from "js-waku/lib/predefined_bootstrap_nodes";
import runAll from "./index.js"; import runAll from "./index.js";
const testFleet = const testFleet = fleets.fleets["wakuv2.test"]["waku-websocket"];
discovery.predefined.fleets.fleets["wakuv2.test"]["waku-websocket"];
const nodes = Object.values(testFleet); const nodes = Object.values(testFleet);
describe("Predefined Test Fleet", () => { describe("Predefined Test Fleet", () => {

8815
yarn.lock

File diff suppressed because it is too large Load Diff