Skip to content

feat: improve filter subscriptions #6377

feat: improve filter subscriptions

feat: improve filter subscriptions #6377

GitHub Actions / Test Report - node failed Jan 29, 2025 in 0s

544 passed, 3 failed and 43 skipped

Tests failed

❌ packages/tests/reports/mocha-results.json

590 tests were completed in 465s with 544 passed, 3 failed and 43 skipped.

Test suite Passed Failed Skipped Time
packages/tests/tests/connection-mananger/connection_state.spec.ts 7✅ 9s
packages/tests/tests/connection-mananger/dials.spec.ts 5✅ 8s
packages/tests/tests/connection-mananger/events.spec.ts 6✅ 654ms
packages/tests/tests/connection-mananger/methods.spec.ts 9✅ 41s
packages/tests/tests/dns-peer-discovery.spec.ts 7✅ 3⚪ 16s
packages/tests/tests/enr.node.spec.ts 3✅ 5s
packages/tests/tests/ephemeral.node.spec.ts 4✅ 2s
packages/tests/tests/filter/ping.node.spec.ts 8✅ 2s
packages/tests/tests/filter/push.node.spec.ts 50✅ 4⚪ 18s
packages/tests/tests/filter/single_node/multiple_pubsub.node.spec.ts 11✅ 7s
packages/tests/tests/filter/single_node/ping.node.spec.ts 4✅ 1s
packages/tests/tests/filter/single_node/push.node.spec.ts 26✅ 2⚪ 9s
packages/tests/tests/filter/single_node/subscribe.node.spec.ts 29✅ 26s
packages/tests/tests/filter/single_node/unsubscribe.node.spec.ts 6✅ 11s
packages/tests/tests/filter/subscribe.node.spec.ts 58✅ 49s
packages/tests/tests/filter/unsubscribe.node.spec.ts 12✅ 23s
packages/tests/tests/health-manager/node.spec.ts 16⚪ 0ms
packages/tests/tests/health-manager/protocols.spec.ts 8⚪ 0ms
packages/tests/tests/light-push/index.node.spec.ts 43✅ 5s
packages/tests/tests/light-push/single_node/index.node.spec.ts 43✅ 7s
packages/tests/tests/light-push/single_node/multiple_pubsub.node.spec.ts 9✅ 6s
packages/tests/tests/log_file.node.spec.ts 2✅ 0ms
packages/tests/tests/metadata.spec.ts 6✅ 12s
packages/tests/tests/multiaddr.node.spec.ts 2✅ 322ms
packages/tests/tests/nwaku.node.spec.ts 1✅ 0ms
packages/tests/tests/peer-exchange/compliance.spec.ts 7✅ 65s
packages/tests/tests/peer-exchange/continuous_discovery.spec.ts 2✅ 15ms
packages/tests/tests/peer-exchange/index.spec.ts 2✅ 2⚪ 71s
packages/tests/tests/peer-exchange/query.spec.ts 4⚪ 0ms
packages/tests/tests/relay/index.node.spec.ts 2✅ 912ms
packages/tests/tests/relay/interop.node.spec.ts 4✅ 4s
packages/tests/tests/relay/multiple_pubsub.node.spec.ts 8✅ 5s
packages/tests/tests/relay/publish.node.spec.ts 28✅ 2⚪ 4s
packages/tests/tests/relay/subscribe.node.spec.ts 24✅ 2⚪ 8s
packages/tests/tests/sharding/auto_sharding.spec.ts 16✅ 14s
packages/tests/tests/sharding/peer_management.spec.ts 4✅ 140s
packages/tests/tests/sharding/static_sharding.spec.ts 15✅ 12s
packages/tests/tests/store/cursor.node.spec.ts 9✅ 5s
packages/tests/tests/store/error_handling.node.spec.ts 12✅ 165ms
packages/tests/tests/store/index.node.spec.ts 9✅ 22s
packages/tests/tests/store/multiple_pubsub.spec.ts 6✅ 3❌ 31s
packages/tests/tests/store/order.node.spec.ts 6✅ 1s
packages/tests/tests/store/page_size.node.spec.ts 8✅ 4s
packages/tests/tests/store/sorting.node.spec.ts 4✅ 1s
packages/tests/tests/store/time_filter.node.spec.ts 9✅ 676ms
packages/tests/tests/utils.spec.ts 3✅ 1s
packages/tests/tests/wait_for_remote_peer.node.spec.ts 9✅ 12s
packages/tests/tests/waku.node.spec.ts 6✅ 7s

✅ packages/tests/tests/connection-mananger/connection_state.spec.ts

Connection state
  ✅ `waku:online` between 2 js-waku relay nodes
  ✅ isConnected between 2 js-waku relay nodes
  ✅ isConnected return false after peer stops
  ✅ isConnected should return false after all peers disconnect
  ✅ isConnected should return true after first peer connects
  ✅ should emit `waku:offline` event only when all peers disconnect
  ✅ should emit `waku:online` event only when first peer is connected

✅ packages/tests/tests/connection-mananger/dials.spec.ts

Dials attemptDial method
  ✅ should be called at least once on all `peer:discovery` events
Dials dialPeer method For bootstrap peers
  ✅ should be called for bootstrap peers
  ✅ should not be called more than DEFAULT_MAX_BOOTSTRAP_PEERS_ALLOWED times for bootstrap peers
Dials dialPeer method For peer-exchange peers
  ✅ should be called for every peer with PEER_EXCHANGE tags
  ✅ should be called for peers with PEER_EXCHANGE tags

✅ packages/tests/tests/connection-mananger/events.spec.ts

Events peer:connect
  ✅ should emit `peer:connected:bootstrap` event when a peer is connected
  ✅ should emit `peer:connected:peer-exchange` event when a peer is connected
Events peer:discovery
  ✅ should emit `peer:discovery:bootstrap` event when a peer is discovered
  ✅ should emit `peer:discovery:peer-exchange` event when a peer is discovered
Events waku:connection
  ✅ should be online or offline if network state changed
  ✅ should emit events and trasition isConnected state when has peers or no peers

✅ packages/tests/tests/connection-mananger/methods.spec.ts

Public methods
  ✅ addEventListener with correct event
  ✅ addEventListener with wrong event
  ✅ dispatchEvent via connectionManager
  ✅ getPeersByDiscovery
  ✅ listenerCount
  ✅ removeEventListener with correct event
  ✅ removeEventListener with wrong event
  ✅ safeDispatchEvent
  ✅ stop

✅ packages/tests/tests/dns-peer-discovery.spec.ts

DNS Discovery: Compliance Test interface-peer-discovery compliance tests
  ✅ can start and stop the service
  ✅ can start the service
  ✅ should emit a peer event after start
  ✅ should not fail to start the service if it is already started
  ✅ should not fail to stop the service if it was not started
  ✅ should not receive a peer event after stop
  ✅ should not receive a peer event before start
DNS Node Discovery [live data]
  ⚪ passes more than one ENR URLs and attempts connection
  ⚪ should retrieve 3 multiaddrs for test.waku.nodes.status.im
  ⚪ should use DNS peer discovery with light client

✅ packages/tests/tests/enr.node.spec.ts

ENR Interop: ServiceNode
  ✅ All
  ✅ Relay
  ✅ Relay + Store

✅ packages/tests/tests/ephemeral.node.spec.ts

Waku Message Ephemeral field
  ✅ Ephemeral field is preserved - asymmetric encryption
  ✅ Ephemeral field is preserved - encoder v0
  ✅ Ephemeral field is preserved - symmetric encryption
  ✅ Ephemeral messages are not stored

✅ packages/tests/tests/filter/ping.node.spec.ts

Waku Filter V2: Ping: Multiple Nodes: Strict Checking: false
  ✅ Ping on peer without subscriptions
  ✅ Ping on subscribed peer
  ✅ Ping on unsubscribed peer
  ✅ Reopen subscription with peer with lost subscription
Waku Filter V2: Ping: Multiple Nodes: Strict Checking: true
  ✅ Ping on peer without subscriptions
  ✅ Ping on subscribed peer
  ✅ Ping on unsubscribed peer
  ✅ Reopen subscription with peer with lost subscription

✅ packages/tests/tests/filter/push.node.spec.ts

Waku Filter V2: FilterPush: Multiple Nodes: Strict Checking: false
  ✅ Check message on other pubsub topic is not received
  ⚪ Check message received after jswaku node is restarted
  ⚪ Check message received after nwaku node is restarted
  ✅ Check message with invalid timestamp is not received
  ✅ Check message with no content topic is not received
  ✅ Check message with no payload is not received
  ✅ Check message with non string payload is not received
  ✅ Check received message containing Arabic
  ✅ Check received message containing Basic HTML tag
  ✅ Check received message containing Chinese
  ✅ Check received message containing emoji
  ✅ Check received message containing escaped characters
  ✅ Check received message containing JSON
  ✅ Check received message containing long
  ✅ Check received message containing numeric
  ✅ Check received message containing Russian
  ✅ Check received message containing Script
  ✅ Check received message containing shell command
  ✅ Check received message containing short
  ✅ Check received message containing special chars
  ✅ Check received message containing SQL Injection
  ✅ Check received message containing unicode special characters
  ✅ Check received message containing XML
  ✅ Check received message with timestamp: 1649153314 
  ✅ Check received message with timestamp: 1738168896402 
  ✅ Check received message with timestamp: 1738168896402000000 
  ✅ Check received message with timestamp: 1949153314000 
Waku Filter V2: FilterPush: Multiple Nodes: Strict Checking: true
  ✅ Check message on other pubsub topic is not received
  ⚪ Check message received after jswaku node is restarted
  ⚪ Check message received after nwaku node is restarted
  ✅ Check message with invalid timestamp is not received
  ✅ Check message with no content topic is not received
  ✅ Check message with no payload is not received
  ✅ Check message with non string payload is not received
  ✅ Check received message containing Arabic
  ✅ Check received message containing Basic HTML tag
  ✅ Check received message containing Chinese
  ✅ Check received message containing emoji
  ✅ Check received message containing escaped characters
  ✅ Check received message containing JSON
  ✅ Check received message containing long
  ✅ Check received message containing numeric
  ✅ Check received message containing Russian
  ✅ Check received message containing Script
  ✅ Check received message containing shell command
  ✅ Check received message containing short
  ✅ Check received message containing special chars
  ✅ Check received message containing SQL Injection
  ✅ Check received message containing unicode special characters
  ✅ Check received message containing XML
  ✅ Check received message with timestamp: 1649153314 
  ✅ Check received message with timestamp: 1738168896402 
  ✅ Check received message with timestamp: 1738168896402000000 
  ✅ Check received message with timestamp: 1949153314000 

✅ packages/tests/tests/filter/single_node/multiple_pubsub.node.spec.ts

Waku Filter V2 (Autosharding): Multiple PubsubTopics
  ✅ Should fail to subscribe with decoder with wrong pubsubTopic
  ✅ Subscribe and receive messages from 2 nwaku nodes each with different pubsubtopics
  ✅ Subscribe and receive messages on 2 different pubsubtopics
  ✅ Subscribe and receive messages on autosharded pubsubtopic
Waku Filter V2 (Named sharding): Multiple PubsubTopics
  ✅ Should fail to subscribe with decoder with wrong pubsubTopic
  ✅ Subscribe and receive messages from 2 nwaku nodes each with different pubsubtopics
  ✅ Subscribe and receive messages on 2 different pubsubtopics
  ✅ Subscribe and receive messages on custom pubsubtopic
Waku Filter V2: Multiple PubsubTopics
  ✅ Subscribe and receive messages from 2 nwaku nodes each with different pubsubtopics
  ✅ Subscribe and receive messages on 2 different pubsubtopics
  ✅ Subscribe and receive messages on custom pubsubtopic

✅ packages/tests/tests/filter/single_node/ping.node.spec.ts

Waku Filter V2: Ping
  ✅ Ping on peer without subscriptions
  ✅ Ping on subscribed peer
  ✅ Ping on unsubscribed peer
  ✅ Reopen subscription with peer with lost subscription

✅ packages/tests/tests/filter/single_node/push.node.spec.ts

Waku Filter V2: FilterPush
  ✅ Check message on other pubsub topic is not received
  ⚪ Check message received after jswaku node is restarted
  ⚪ Check message received after nwaku node is restarted
  ✅ Check message with invalid timestamp is not received
  ✅ Check message with no content topic is not received
  ✅ Check message with no payload is not received
  ✅ Check message with no pubsub topic is not received
  ✅ Check message with non string payload is not received
  ✅ Check received message containing Arabic
  ✅ Check received message containing Basic HTML tag
  ✅ Check received message containing Chinese
  ✅ Check received message containing emoji
  ✅ Check received message containing escaped characters
  ✅ Check received message containing JSON
  ✅ Check received message containing long
  ✅ Check received message containing numeric
  ✅ Check received message containing Russian
  ✅ Check received message containing Script
  ✅ Check received message containing shell command
  ✅ Check received message containing short
  ✅ Check received message containing special chars
  ✅ Check received message containing SQL Injection
  ✅ Check received message containing unicode special characters
  ✅ Check received message containing XML
  ✅ Check received message with timestamp: 1649153314 
  ✅ Check received message with timestamp: 1738168896651 
  ✅ Check received message with timestamp: 1738168896651000000 
  ✅ Check received message with timestamp: 1949153314000 

✅ packages/tests/tests/filter/single_node/subscribe.node.spec.ts

Waku Filter V2: Subscribe: Single Service Node
  ✅ Add multiple subscription objects on single nwaku node
  ✅ Error when try to subscribe to more than 101 topics (new limit)
  ✅ Overlapping topic subscription
  ✅ Refresh subscription
  ✅ Subscribe and receive 2 messages on the same topic
  ✅ Subscribe and receive ecies encrypted messages via lightPush
  ✅ Subscribe and receive messages from multiple nwaku nodes
  ✅ Subscribe and receive messages on 2 different content topics
  ✅ Subscribe and receive messages via lightPush
  ✅ Subscribe and receive messages via waku relay post
  ✅ Subscribe and receive symmetrically encrypted messages via lightPush
  ✅ Subscribe and receives messages on 20 topics
  ✅ Subscribe to 100 topics (new limit) at once and receives messages
  ✅ Subscribe to topic containing Arabic and receive message
  ✅ Subscribe to topic containing Basic HTML tag and receive message
  ✅ Subscribe to topic containing Chinese and receive message
  ✅ Subscribe to topic containing emoji and receive message
  ✅ Subscribe to topic containing escaped characters and receive message
  ✅ Subscribe to topic containing JSON and receive message
  ✅ Subscribe to topic containing long and receive message
  ✅ Subscribe to topic containing numeric and receive message
  ✅ Subscribe to topic containing Russian and receive message
  ✅ Subscribe to topic containing Script and receive message
  ✅ Subscribe to topic containing shell command and receive message
  ✅ Subscribe to topic containing short and receive message
  ✅ Subscribe to topic containing special chars and receive message
  ✅ Subscribe to topic containing SQL Injection and receive message
  ✅ Subscribe to topic containing unicode special characters and receive message
  ✅ Subscribe to topic containing XML and receive message

✅ packages/tests/tests/filter/single_node/unsubscribe.node.spec.ts

Waku Filter V2: Unsubscribe
  ✅ Unsubscribe 1 topic - node subscribed to 1 topic
  ✅ Unsubscribe 1 topic - node subscribed to 2 topics
  ✅ Unsubscribe 2 topics - node subscribed to 2 topics
  ✅ Unsubscribe topics the node is not subscribed to
  ✅ Unsubscribes all - node subscribed to 1 topic
  ✅ Unsubscribes all - node subscribed to 10 topics

✅ packages/tests/tests/filter/subscribe.node.spec.ts

Waku Filter V2: Subscribe: Multiple Service Nodes: Strict Check mode: false
  ✅ Add multiple subscription objects on single nwaku node
  ✅ Error when try to subscribe to more than 101 topics (new limit)
  ✅ Overlapping topic subscription
  ✅ Refresh subscription
  ✅ Renews subscription after lossing a connection
  ✅ Subscribe and receive 2 messages on the same topic
  ✅ Subscribe and receive ecies encrypted messages via lightPush
  ✅ Subscribe and receive messages on 2 different content topics
  ✅ Subscribe and receive messages via lightPush
  ✅ Subscribe and receive messages via waku relay post
  ✅ Subscribe and receive symmetrically encrypted messages via lightPush
  ✅ Subscribe and receives messages on 20 topics
  ✅ Subscribe to 100 topics (new limit) at once and receives messages
  ✅ Subscribe to topic containing Arabic and receive message
  ✅ Subscribe to topic containing Basic HTML tag and receive message
  ✅ Subscribe to topic containing Chinese and receive message
  ✅ Subscribe to topic containing emoji and receive message
  ✅ Subscribe to topic containing escaped characters and receive message
  ✅ Subscribe to topic containing JSON and receive message
  ✅ Subscribe to topic containing long and receive message
  ✅ Subscribe to topic containing numeric and receive message
  ✅ Subscribe to topic containing Russian and receive message
  ✅ Subscribe to topic containing Script and receive message
  ✅ Subscribe to topic containing shell command and receive message
  ✅ Subscribe to topic containing short and receive message
  ✅ Subscribe to topic containing special chars and receive message
  ✅ Subscribe to topic containing SQL Injection and receive message
  ✅ Subscribe to topic containing unicode special characters and receive message
  ✅ Subscribe to topic containing XML and receive message
Waku Filter V2: Subscribe: Multiple Service Nodes: Strict Check mode: true
  ✅ Add multiple subscription objects on single nwaku node
  ✅ Error when try to subscribe to more than 101 topics (new limit)
  ✅ Overlapping topic subscription
  ✅ Refresh subscription
  ✅ Renews subscription after lossing a connection
  ✅ Subscribe and receive 2 messages on the same topic
  ✅ Subscribe and receive ecies encrypted messages via lightPush
  ✅ Subscribe and receive messages on 2 different content topics
  ✅ Subscribe and receive messages via lightPush
  ✅ Subscribe and receive messages via waku relay post
  ✅ Subscribe and receive symmetrically encrypted messages via lightPush
  ✅ Subscribe and receives messages on 20 topics
  ✅ Subscribe to 100 topics (new limit) at once and receives messages
  ✅ Subscribe to topic containing Arabic and receive message
  ✅ Subscribe to topic containing Basic HTML tag and receive message
  ✅ Subscribe to topic containing Chinese and receive message
  ✅ Subscribe to topic containing emoji and receive message
  ✅ Subscribe to topic containing escaped characters and receive message
  ✅ Subscribe to topic containing JSON and receive message
  ✅ Subscribe to topic containing long and receive message
  ✅ Subscribe to topic containing numeric and receive message
  ✅ Subscribe to topic containing Russian and receive message
  ✅ Subscribe to topic containing Script and receive message
  ✅ Subscribe to topic containing shell command and receive message
  ✅ Subscribe to topic containing short and receive message
  ✅ Subscribe to topic containing special chars and receive message
  ✅ Subscribe to topic containing SQL Injection and receive message
  ✅ Subscribe to topic containing unicode special characters and receive message
  ✅ Subscribe to topic containing XML and receive message

✅ packages/tests/tests/filter/unsubscribe.node.spec.ts

Waku Filter V2: Unsubscribe: Multiple Nodes: Strict Checking: false
  ✅ Unsubscribe 1 topic - node subscribed to 1 topic
  ✅ Unsubscribe 1 topic - node subscribed to 2 topics
  ✅ Unsubscribe 2 topics - node subscribed to 2 topics
  ✅ Unsubscribe topics the node is not subscribed to
  ✅ Unsubscribes all - node subscribed to 1 topic
  ✅ Unsubscribes all - node subscribed to 10 topics
Waku Filter V2: Unsubscribe: Multiple Nodes: Strict Checking: true
  ✅ Unsubscribe 1 topic - node subscribed to 1 topic
  ✅ Unsubscribe 1 topic - node subscribed to 2 topics
  ✅ Unsubscribe 2 topics - node subscribed to 2 topics
  ✅ Unsubscribe topics the node is not subscribed to
  ✅ Unsubscribes all - node subscribed to 1 topic
  ✅ Unsubscribes all - node subscribed to 10 topics

✅ packages/tests/tests/health-manager/node.spec.ts

Node Health Status Matrix Tests
  ⚪ LightPush: 0 peers, Filter: 0 peers
  ⚪ LightPush: 0 peers, Filter: 1 peers
  ⚪ LightPush: 0 peers, Filter: 2 peers
  ⚪ LightPush: 0 peers, Filter: 3 peers
  ⚪ LightPush: 1 peers, Filter: 0 peers
  ⚪ LightPush: 1 peers, Filter: 1 peers
  ⚪ LightPush: 1 peers, Filter: 2 peers
  ⚪ LightPush: 1 peers, Filter: 3 peers
  ⚪ LightPush: 2 peers, Filter: 0 peers
  ⚪ LightPush: 2 peers, Filter: 1 peers
  ⚪ LightPush: 2 peers, Filter: 2 peers
  ⚪ LightPush: 2 peers, Filter: 3 peers
  ⚪ LightPush: 3 peers, Filter: 0 peers
  ⚪ LightPush: 3 peers, Filter: 1 peers
  ⚪ LightPush: 3 peers, Filter: 2 peers
  ⚪ LightPush: 3 peers, Filter: 3 peers

✅ packages/tests/tests/health-manager/protocols.spec.ts

Health Manager Should update the health status for protocols
  ⚪ Filter with 0 connections
  ⚪ Filter with 1 connections
  ⚪ Filter with 2 connections
  ⚪ Filter with 3 connections
  ⚪ LightPush with 0 connections
  ⚪ LightPush with 1 connections
  ⚪ LightPush with 2 connections
  ⚪ LightPush with 3 connections

✅ packages/tests/tests/light-push/index.node.spec.ts

Waku Light Push: Multiple Nodes: Strict Check: true
  ✅ Fails to push message bigger that 1MB
  ✅ Fails to push message with empty content topic
  ✅ Fails to push message with large meta
  ✅ Push 30 different messages
  ✅ Push message equal or less that 1MB
  ✅ Push message with Arabic payload
  ✅ Push message with Basic HTML tag payload
  ✅ Push message with Chinese payload
  ✅ Push message with content topic containing Arabic
  ✅ Push message with content topic containing Basic HTML tag
  ✅ Push message with content topic containing Chinese
  ✅ Push message with content topic containing emoji
  ✅ Push message with content topic containing escaped characters
  ✅ Push message with content topic containing JSON
  ✅ Push message with content topic containing long
  ✅ Push message with content topic containing numeric
  ✅ Push message with content topic containing Russian
  ✅ Push message with content topic containing Script
  ✅ Push message with content topic containing shell command
  ✅ Push message with content topic containing short
  ✅ Push message with content topic containing special chars
  ✅ Push message with content topic containing SQL Injection
  ✅ Push message with content topic containing unicode special characters
  ✅ Push message with content topic containing XML
  ✅ Push message with custom timestamp: 1707410561733
  ✅ Push message with custom timestamp: 1738165361733
  ✅ Push message with custom timestamp: 1738172561733
  ✅ Push message with emoji payload
  ✅ Push message with escaped characters payload
  ✅ Push message with JSON payload
  ✅ Push message with long payload
  ✅ Push message with meta
  ✅ Push message with numeric payload
  ✅ Push message with rate limit
  ✅ Push message with Russian payload
  ✅ Push message with Script payload
  ✅ Push message with shell command payload
  ✅ Push message with short payload
  ✅ Push message with special chars payload
  ✅ Push message with SQL Injection payload
  ✅ Push message with unicode special characters payload
  ✅ Push message with XML payload
  ✅ Throws when trying to push message with empty payload

✅ packages/tests/tests/light-push/single_node/index.node.spec.ts

Waku Light Push: Single Node
  ✅ Fails to push message bigger that 1MB
  ✅ Fails to push message with empty content topic
  ✅ Fails to push message with large meta
  ✅ Push 30 different messages
  ✅ Push message equal or less that 1MB
  ✅ Push message with Arabic payload
  ✅ Push message with Basic HTML tag payload
  ✅ Push message with Chinese payload
  ✅ Push message with content topic containing Arabic
  ✅ Push message with content topic containing Basic HTML tag
  ✅ Push message with content topic containing Chinese
  ✅ Push message with content topic containing emoji
  ✅ Push message with content topic containing escaped characters
  ✅ Push message with content topic containing JSON
  ✅ Push message with content topic containing long
  ✅ Push message with content topic containing numeric
  ✅ Push message with content topic containing Russian
  ✅ Push message with content topic containing Script
  ✅ Push message with content topic containing shell command
  ✅ Push message with content topic containing short
  ✅ Push message with content topic containing special chars
  ✅ Push message with content topic containing SQL Injection
  ✅ Push message with content topic containing unicode special characters
  ✅ Push message with content topic containing XML
  ✅ Push message with custom timestamp: 1707410596086
  ✅ Push message with custom timestamp: 1738165396086
  ✅ Push message with custom timestamp: 1738172596086
  ✅ Push message with emoji payload
  ✅ Push message with escaped characters payload
  ✅ Push message with JSON payload
  ✅ Push message with long payload
  ✅ Push message with meta
  ✅ Push message with numeric payload
  ✅ Push message with rate limit
  ✅ Push message with Russian payload
  ✅ Push message with Script payload
  ✅ Push message with shell command payload
  ✅ Push message with short payload
  ✅ Push message with special chars payload
  ✅ Push message with SQL Injection payload
  ✅ Push message with unicode special characters payload
  ✅ Push message with XML payload
  ✅ Throws when trying to push message with empty payload

✅ packages/tests/tests/light-push/single_node/multiple_pubsub.node.spec.ts

Waku Light Push : Multiple PubsubTopics
  ✅ Light push messages to 2 nwaku nodes each with different pubsubtopics
  ✅ Push message on custom pubsubTopic
  ✅ Subscribe and receive messages on 2 different pubsubtopics
Waku Light Push (Autosharding): Multiple PubsubTopics
  ✅ Light push messages to 2 nwaku nodes each with different pubsubtopics
  ✅ Push message on custom pubsubTopic
  ✅ Subscribe and receive messages on 2 different pubsubtopics
Waku Light Push (named sharding): Multiple PubsubTopics
  ✅ Light push messages to 2 nwaku nodes each with different pubsubtopics
  ✅ Push message on custom pubsubTopic
  ✅ Subscribe and receive messages on 2 different pubsubtopics

✅ packages/tests/tests/log_file.node.spec.ts

This Is
  ✅ A test
This Is also
  ✅ A test

✅ packages/tests/tests/metadata.spec.ts

Metadata Protocol
  ✅ PeerStore has remote peer's shard info after successful connection
  ✅ receiving a ping from a peer does not overwrite shard info
Metadata Protocol connections
  ✅ different cluster, different shard: nodes don't connect
  ✅ different cluster, same shard: nodes don't connect
  ✅ same cluster, different shard: nodes connect
  ✅ same cluster, same shard: nodes connect

✅ packages/tests/tests/multiaddr.node.spec.ts

multiaddr: dialing
  ✅ can dial TLS multiaddrs
multiaddr: dialing does not attempt the same peer discovered multiple times more than once
  ✅ through manual discovery

✅ packages/tests/tests/nwaku.node.spec.ts

nwaku
  ✅ Correctly serialized arguments

✅ packages/tests/tests/peer-exchange/compliance.spec.ts

Peer Exchange Compliance Test interface-peer-discovery compliance tests
  ✅ can start and stop the service
  ✅ can start the service
  ✅ should emit a peer event after start
  ✅ should not fail to start the service if it is already started
  ✅ should not fail to stop the service if it was not started
  ✅ should not receive a peer event after stop
  ✅ should not receive a peer event before start

✅ packages/tests/tests/peer-exchange/continuous_discovery.spec.ts

Peer Exchange Continuous Discovery
  ✅ Should update multiaddrs
  ✅ Should update shard info

✅ packages/tests/tests/peer-exchange/index.spec.ts

Peer Exchange
  ✅ getPeersByDiscovery
  ⚪ new peer added after a peer was already found
  ✅ peerDiscovery without wakuPeerExchangeDiscovery
  ⚪ wrong wakuPeerExchangeDiscovery pubsub topic

✅ packages/tests/tests/peer-exchange/query.spec.ts

Peer Exchange Query
  ⚪ connected peers and dial
  ⚪ less peers than existing
  ⚪ more peers than existing
  ⚪ non connected peers

✅ packages/tests/tests/relay/index.node.spec.ts

Waku Relay
  ✅ Decrypt messages
  ✅ Delete observer

✅ packages/tests/tests/relay/interop.node.spec.ts

Waku Relay, Interop
  ✅ Js publishes, other Js receives
  ✅ Nwaku publishes
  ✅ nwaku subscribes
  ✅ Publishes to nwaku

✅ packages/tests/tests/relay/multiple_pubsub.node.spec.ts

Waku Relay (Autosharding), multiple pubsub topics
  ✅ 3 nodes on /waku/2/rs/7/0 topic
  ✅ 3 nodes on /waku/2/rs/7/1 topic
  ✅ n1 and n2 uses a custom pubsub, n3 uses the default pubsub
  ✅ Nodes with multiple pubsub topic
Waku Relay, multiple pubsub topics
  ✅ 3 nodes on /waku/2/rs/3/1 topic
  ✅ 3 nodes on /waku/2/rs/3/2 topic
  ✅ n1 and n2 uses a custom pubsub, n3 uses the default pubsub
  ✅ Nodes with multiple pubsub topic

✅ packages/tests/tests/relay/publish.node.spec.ts

Waku Relay, Publish
  ⚪ Check publish message after client node is restarted
  ⚪ Check publish message after service node is restarted
  ✅ Check publish message containing Arabic
  ✅ Check publish message containing Basic HTML tag
  ✅ Check publish message containing Chinese
  ✅ Check publish message containing emoji
  ✅ Check publish message containing escaped characters
  ✅ Check publish message containing JSON
  ✅ Check publish message containing long
  ✅ Check publish message containing numeric
  ✅ Check publish message containing Russian
  ✅ Check publish message containing Script
  ✅ Check publish message containing shell command
  ✅ Check publish message containing short
  ✅ Check publish message containing special chars
  ✅ Check publish message containing SQL Injection
  ✅ Check publish message containing unicode special characters
  ✅ Check publish message containing XML
  ✅ Fails to publish duplicate message
  ✅ Fails to publish message with empty text
  ✅ Fails to publish message with size larger than 1 MB
  ✅ Fails to publish message with size larger than 1 MB
  ✅ Fails to publish message with wrong content topic
  ✅ Fails to publish message with wrong pubsubtopic
  ✅ Publish message with custom timestamp: Sun Dec 17 1995 03:24:00 GMT+0000 (Coordinated Universal Time)
  ✅ Publish message with custom timestamp: Thu Feb 08 2024 16:45:26 GMT+0000 (Coordinated Universal Time)
  ✅ Publish message with custom timestamp: Wed Jan 29 2025 15:45:26 GMT+0000 (Coordinated Universal Time)
  ✅ Publish message with custom timestamp: Wed Jan 29 2025 17:45:26 GMT+0000 (Coordinated Universal Time)
  ✅ Publish message with large meta
  ✅ Publish message with rate limit

✅ packages/tests/tests/relay/subscribe.node.spec.ts

Waku Relay, Subscribe
  ✅ Mutual subscription
  ⚪ Overlapping topic subscription
  ✅ Publish without waiting for remote peer
  ⚪ Refresh subscription
  ✅ Register correct protocols
  ✅ Subscribe and publish 10000 messages on the same topic
  ✅ Subscribe and publish message
  ✅ Subscribe and publish messages on 2 different content topics
  ✅ Subscribe at once to 10000 topics and publish messages
  ✅ Subscribe one by one to 100 topics and publish messages
  ✅ Subscribe to topic containing Arabic and publish message
  ✅ Subscribe to topic containing Basic HTML tag and publish message
  ✅ Subscribe to topic containing Chinese and publish message
  ✅ Subscribe to topic containing emoji and publish message
  ✅ Subscribe to topic containing escaped characters and publish message
  ✅ Subscribe to topic containing JSON and publish message
  ✅ Subscribe to topic containing long and publish message
  ✅ Subscribe to topic containing numeric and publish message
  ✅ Subscribe to topic containing Russian and publish message
  ✅ Subscribe to topic containing Script and publish message
  ✅ Subscribe to topic containing shell command and publish message
  ✅ Subscribe to topic containing short and publish message
  ✅ Subscribe to topic containing special chars and publish message
  ✅ Subscribe to topic containing SQL Injection and publish message
  ✅ Subscribe to topic containing unicode special characters and publish message
  ✅ Subscribe to topic containing XML and publish message

✅ packages/tests/tests/sharding/auto_sharding.spec.ts

Autosharding: Running Nodes Different clusters and topics
  ✅ Cluster ID 0 - Default/Global Cluster
  ✅ Non TWN Cluster
  ✅ random auto sharding 1 - Cluster ID: 10, Content Topic: /app74/2/topic797/utf8
  ✅ random auto sharding 10 - Cluster ID: 10, Content Topic: /app20/1/topic260/proto
  ✅ random auto sharding 2 - Cluster ID: 10, Content Topic: /app55/7/topic173/xml
  ✅ random auto sharding 3 - Cluster ID: 10, Content Topic: /app1/4/topic936/json
  ✅ random auto sharding 4 - Cluster ID: 10, Content Topic: /app59/4/topic834/xml
  ✅ random auto sharding 5 - Cluster ID: 10, Content Topic: /app6/2/topic871/test.js
  ✅ random auto sharding 6 - Cluster ID: 10, Content Topic: /app61/9/topic84/xml
  ✅ random auto sharding 7 - Cluster ID: 10, Content Topic: /app48/9/topic587/utf8
  ✅ random auto sharding 8 - Cluster ID: 10, Content Topic: /app68/2/topic433/test.js
  ✅ random auto sharding 9 - Cluster ID: 10, Content Topic: /app17/7/topic595/xml
  ✅ Wrong topic
Autosharding: Running Nodes Others
  ✅ configure the node with multiple content topics
  ✅ start node with empty content topic
  ✅ using a protocol with unconfigured pubsub topic should fail

✅ packages/tests/tests/sharding/peer_management.spec.ts

Autosharding: Peer Management Peer Exchange
  ✅ all px service nodes subscribed to the shard topic should be dialed
  ✅ px service nodes not subscribed to the shard should not be dialed
Static Sharding: Peer Management Peer Exchange
  ✅ all px service nodes subscribed to the shard topic should be dialed
  ✅ px service nodes not subscribed to the shard should not be dialed

✅ packages/tests/tests/sharding/static_sharding.spec.ts

Static Sharding: Running Nodes Different clusters and shards
  ✅ Cluster ID 0 - Default/Global Cluster
  ✅ random static sharding 1 - Cluster ID: 965, Shard ID: 818
  ✅ random static sharding 10 - Cluster ID: 901, Shard ID: 969
  ✅ random static sharding 2 - Cluster ID: 896, Shard ID: 778
  ✅ random static sharding 3 - Cluster ID: 977, Shard ID: 951
  ✅ random static sharding 4 - Cluster ID: 429, Shard ID: 60
  ✅ random static sharding 5 - Cluster ID: 481, Shard ID: 689
  ✅ random static sharding 6 - Cluster ID: 287, Shard ID: 17
  ✅ random static sharding 7 - Cluster ID: 857, Shard ID: 719
  ✅ random static sharding 8 - Cluster ID: 370, Shard ID: 944
  ✅ random static sharding 9 - Cluster ID: 676, Shard ID: 891
  ✅ shard 0
Static Sharding: Running Nodes Others
  ✅ configure the node with multiple pubsub topics
  ✅ start node with empty shard should fail
  ✅ using a protocol with unconfigured pubsub topic should fail

✅ packages/tests/tests/store/cursor.node.spec.ts

Waku Store, cursor
  ✅ Passing a valid cursor at 0 index when there are 20 messages
  ✅ Passing a valid cursor at 10 index when there are 40 messages
  ✅ Passing a valid cursor at 110 index when there are 120 messages
  ✅ Passing a valid cursor at 19 index when there are 20 messages
  ✅ Passing a valid cursor at 19 index when there are 50 messages
  ✅ Passing a valid cursor at 2 index when there are 4 messages
  ✅ Passing cursor with wrong pubsubTopic
  ✅ Passing invalid cursor
  ✅ Reusing cursor across nodes

✅ packages/tests/tests/store/error_handling.node.spec.ts

Waku Store, error handling
  ✅ Query Generator, Multiple PubsubTopics
  ✅ Query Generator, No Decoder
  ✅ Query Generator, No message returned
  ✅ Query Generator, Wrong PubsubTopic
  ✅ Query with Ordered Callback, Multiple PubsubTopics
  ✅ Query with Ordered Callback, No Decoder
  ✅ Query with Ordered Callback, No message returned
  ✅ Query with Ordered Callback, Wrong PubsubTopic
  ✅ Query with Promise Callback, Multiple PubsubTopics
  ✅ Query with Promise Callback, No Decoder
  ✅ Query with Promise Callback, No message returned
  ✅ Query with Promise Callback, Wrong PubsubTopic

✅ packages/tests/tests/store/index.node.spec.ts

Waku Store, general
  ✅ Callback on promise
  ✅ Callback on promise, aborts when callback returns true
  ✅ Generator, with asymmetric & symmetric encrypted messages
  ✅ Ordered callback, aborts when callback returns true
  ✅ Query generator for 2000 messages
  ✅ Query generator for multiple messages
  ✅ Query generator for multiple messages with different content topic format
  ✅ Query generator for multiple messages with different message text format
  ✅ Query generator for multiple messages with multiple decoders

❌ packages/tests/tests/store/multiple_pubsub.spec.ts

Waku Store (Autosharding), custom pubsub topic
  ✅ Generator, 2 different pubsubtopics
  ❌ Generator, 2 nwaku nodes each with different pubsubtopics
	Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/js-waku/js-waku/packages/tests/tests/store/multiple_pubsub.spec.ts)
  ✅ Generator, custom pubsub topic
Waku Store (named sharding), custom pubsub topic
  ✅ Generator, 2 different pubsubtopics
  ❌ Generator, 2 nwaku nodes each with different pubsubtopics
	Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/js-waku/js-waku/packages/tests/tests/store/multiple_pubsub.spec.ts)
  ✅ Generator, custom pubsub topic
Waku Store, custom pubsub topic
  ✅ Generator, 2 different pubsubtopics
  ❌ Generator, 2 nwaku nodes each with different pubsubtopics
	Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/js-waku/js-waku/packages/tests/tests/store/multiple_pubsub.spec.ts)
  ✅ Generator, custom pubsub topic

✅ packages/tests/tests/store/order.node.spec.ts

Waku Store, order
  ✅ Ordered Callback - false
  ✅ Ordered Callback - true
  ✅ Promise Callback  - false
  ✅ Promise Callback  - true
  ✅ Query Generator  - false
  ✅ Query Generator  - true

✅ packages/tests/tests/store/page_size.node.spec.ts

Waku Store, page size
  ✅ Default pageSize
  ✅ Passing page size 0 when there are 110 messages
  ✅ Passing page size 1 when there are 4 messages
  ✅ Passing page size 10 when there are 10 messages
  ✅ Passing page size 11 when there are 10 messages
  ✅ Passing page size 110 when there are 120 messages
  ✅ Passing page size 19 when there are 20 messages
  ✅ Passing page size 3 when there are 20 messages

✅ packages/tests/tests/store/sorting.node.spec.ts

Waku Store, sorting
  ✅ Ordered Callback sorting by timestamp while page direction is false
  ✅ Ordered Callback sorting by timestamp while page direction is true
  ✅ Query Generator sorting by timestamp while page direction is false
  ✅ Query Generator sorting by timestamp while page direction is true

✅ packages/tests/tests/store/time_filter.node.spec.ts

Waku Store, time filter
  ✅ msgTime: -19000 ms from now, startTime: -18990, endTime: -19010
  ✅ msgTime: -19000 ms from now, startTime: -18999, endTime: -18996
  ✅ msgTime: -19000 ms from now, startTime: -19000, endTime: -18000
  ✅ msgTime: -19000 ms from now, startTime: -19002, endTime: -19001
  ✅ msgTime: -19000 ms from now, startTime: -19010, endTime: -18990
  ✅ msgTime: -19000 ms from now, startTime: -20000, endTime: -19000
  ✅ msgTime: 19000 ms from now, startTime: 18990, endTime: 19010
  ✅ Timestamp too far from node time: -20000 ms from now
  ✅ Timestamp too far from node time: 40000 ms from now

✅ packages/tests/tests/utils.spec.ts

Util: toAsyncIterator: Filter
  ✅ creates an iterator
  ✅ handles multiple messages
  ✅ unsubscribes

✅ packages/tests/tests/wait_for_remote_peer.node.spec.ts

Wait for remote peer
  ✅ Filter
  ✅ Light Node - default protocols
  ✅ LightPush
  ✅ Privacy Node - default protocol
  ✅ Relay - dialed after
  ✅ Relay - dialed first
  ✅ Relay - times out
  ✅ Store - dialed after - with timeout
  ✅ Store - dialed first

✅ packages/tests/tests/waku.node.spec.ts

Decryption Keys
  ✅ Used by Waku Relay
User Agent
  ✅ Sets default value correctly
Waku Dial [node only] Bootstrap
  ✅ Passing an array
  ✅ Using a function
Waku Dial [node only] Interop: ServiceNode
  ✅ connects to nwaku
  ✅ Does not throw an exception when node disconnects

Annotations

Check failure on line 0 in packages/tests/reports/mocha-results.json

See this annotation in the file changed.

@github-actions github-actions / Test Report - node

packages/tests/tests/store/multiple_pubsub.spec.ts ► Waku Store (Autosharding), custom pubsub topic ► Generator, 2 nwaku nodes each with different pubsubtopics

Failed test found in:
  packages/tests/reports/mocha-results.json
Error:
  Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/js-waku/js-waku/packages/tests/tests/store/multiple_pubsub.spec.ts)
Raw output
Error: Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/js-waku/js-waku/packages/tests/tests/store/multiple_pubsub.spec.ts)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)

Check failure on line 0 in packages/tests/reports/mocha-results.json

See this annotation in the file changed.

@github-actions github-actions / Test Report - node

packages/tests/tests/store/multiple_pubsub.spec.ts ► Waku Store (named sharding), custom pubsub topic ► Generator, 2 nwaku nodes each with different pubsubtopics

Failed test found in:
  packages/tests/reports/mocha-results.json
Error:
  Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/js-waku/js-waku/packages/tests/tests/store/multiple_pubsub.spec.ts)
Raw output
Error: Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/js-waku/js-waku/packages/tests/tests/store/multiple_pubsub.spec.ts)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)

Check failure on line 0 in packages/tests/reports/mocha-results.json

See this annotation in the file changed.

@github-actions github-actions / Test Report - node

packages/tests/tests/store/multiple_pubsub.spec.ts ► Waku Store, custom pubsub topic ► Generator, 2 nwaku nodes each with different pubsubtopics

Failed test found in:
  packages/tests/reports/mocha-results.json
Error:
  Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/js-waku/js-waku/packages/tests/tests/store/multiple_pubsub.spec.ts)
Raw output
Error: Timeout of 10000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/home/runner/work/js-waku/js-waku/packages/tests/tests/store/multiple_pubsub.spec.ts)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)