Merge pull request #4 from waku-org/js-waku-0.25.0
This commit is contained in:
commit
611d1357dc
|
@ -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
|
Binary file not shown.
53
index.js
53
index.js
|
@ -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");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
13
package.json
13
package.json
|
@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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", () => {
|
||||||
|
|
|
@ -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", () => {
|
||||||
|
|
Loading…
Reference in New Issue