Skip to content

test(functional): add #7132 community control node transfer test#7584

Open
AYAHASSAN287 wants to merge 25 commits into
developfrom
test/CommunityControlNodeTransfer
Open

test(functional): add #7132 community control node transfer test#7584
AYAHASSAN287 wants to merge 25 commits into
developfrom
test/CommunityControlNodeTransfer

Conversation

@AYAHASSAN287

@AYAHASSAN287 AYAHASSAN287 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Adds a functional test for community control-node transfer across an owner’s paired devices.

The test covers issue #7132:

  • Owner creates a token-gated community.
  • A member joins the community.
  • Owner pairs a second device to the same account.
  • Device 2 is promoted to control node.
  • The test verifies that community updates sync between both owner devices and the member.

Changes

  • Adds tests-functional/tests/test_wakuext_community_control_node_transfer.py

  • Adds tests-functional/steps/community_control_node.py

  • Adds wakuext client methods:

    • promoteSelfToControlNode
    • registerReceivedOwnershipNotification

Current status

The two test scenarios are currently marked as xfail(run=False) and are not executed in CI.

Both scenarios are implemented, but each is blocked by a separate issue:

  1. test_control_node_transfer_across_devices

    Uses logout/login to simulate Device 2 going offline.

    Blocked by bug: LoginAccount does not restore custom networks, causing token-gated community events to be dropped #7615: LoginAccount does not restore custom networks, so Device 2 loses the Anvil network and drops token-gated community events.

  2. test_control_node_transfer_across_devices_with_container_pause

    Uses container pause/unpause to simulate Device 2 going offline, avoiding the LoginAccount network reset.

    Blocked by Community update is not applied after paired control-node container pause/unpause #7619: after pause/unpause, Device 2 comes back online but does not apply the missed community update.

Closes #7132

@github-actions

Copy link
Copy Markdown

⚠️ Companion PR Required

Add a link to your status-app PR in this PR's description.

Example: https://github.com/status-im/status-app/pull/123

@status-im-auto

status-im-auto commented Jun 30, 2026

Copy link
Copy Markdown
Member

Jenkins Builds

Click to see older builds (182)
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 6e7f198 1 2026-06-30 17:15:37 ~4 min linux/status-go 📦zip
✔️ 6e7f198 1 2026-06-30 17:16:52 ~5 min windows/status-go 📦zip
✔️ 6e7f198 1 2026-06-30 17:16:57 ~5 min macos/status-go 📦zip
✔️ 6e7f198 1 2026-06-30 17:22:27 ~10 min tests 📄log
✖️ 6e7f198 1 2026-06-30 17:43:18 ~31 min tests-rpc 📄log
✖️ 6e7f198 1 2026-06-30 18:01:03 ~49 min tests-rpc-compat 📄log
✔️ 0cdb973 2 2026-07-04 16:09:53 ~5 min windows/status-go 📦zip
✔️ 0cdb973 2 2026-07-04 16:10:31 ~6 min macos/status-go 📦zip
✔️ 0cdb973 2 2026-07-04 16:23:45 ~19 min tests 📄log
✔️ 0f3a40e 3 2026-07-04 17:03:57 ~5 min windows/status-go 📦zip
✔️ 0f3a40e 3 2026-07-04 17:04:55 ~6 min macos/status-go 📦zip
✔️ 0f3a40e 3 2026-07-04 17:08:00 ~9 min linux/status-go 📦zip
✔️ 0f3a40e 3 2026-07-04 17:08:58 ~10 min tests 📄log
✔️ 2b73cf6 4 2026-07-04 17:09:20 ~5 min windows/status-go 📦zip
✔️ 2b73cf6 4 2026-07-04 17:11:40 ~6 min macos/status-go 📦zip
✔️ 2b73cf6 4 2026-07-04 17:13:16 ~5 min linux/status-go 📦zip
✔️ 2b73cf6 4 2026-07-04 17:20:06 ~11 min tests 📄log
✖️ 2b73cf6 4 2026-07-04 18:19:11 ~29 min tests-rpc 📄log
✖️ 2b73cf6 3 2026-07-04 18:29:30 ~53 min tests-rpc-compat 📄log
✔️ c27a8ab 5 2026-07-06 18:10:20 ~4 min linux/status-go 📦zip
✔️ c27a8ab 5 2026-07-06 18:12:31 ~6 min macos/status-go 📦zip
✔️ c27a8ab 5 2026-07-06 18:15:48 ~9 min windows/status-go 📦zip
✔️ c27a8ab 5 2026-07-06 18:21:04 ~14 min tests 📄log
✖️ c27a8ab 5 2026-07-06 18:40:53 ~34 min tests-rpc 📄log
✔️ c27a8ab 4 2026-07-06 18:56:43 ~50 min tests-rpc-compat 📄log
✔️ 7c9d9d1 6 2026-07-07 14:07:02 ~5 min windows/status-go 📦zip
✔️ 7c9d9d1 6 2026-07-07 14:08:43 ~7 min macos/status-go 📦zip
✔️ 7c9d9d1 6 2026-07-07 14:16:58 ~15 min tests 📄log
✔️ 7c9d9d1 5 2026-07-07 14:39:17 ~37 min tests-rpc-compat 📄log
✖️ 7c9d9d1 6 2026-07-07 14:44:08 ~42 min tests-rpc 📄log
✔️ ddbb4c8 7 2026-07-07 15:33:59 ~4 min linux/status-go 📦zip
✔️ ddbb4c8 7 2026-07-07 15:35:09 ~5 min windows/status-go 📦zip
✔️ ddbb4c8 7 2026-07-07 15:39:01 ~9 min macos/status-go 📦zip
✔️ ddbb4c8 7 2026-07-07 15:42:33 ~12 min tests 📄log
✔️ ddbb4c8 6 2026-07-07 16:26:57 ~57 min tests-rpc-compat 📄log
✔️ 2b0589a 8 2026-07-07 18:26:32 ~4 min linux/status-go 📦zip
2b0589a 8 2026-07-07 18:27:27 ~4 min windows/status-go 📄log
✔️ 2b0589a 8 2026-07-07 18:30:03 ~7 min macos/status-go 📦zip
✔️ 2b0589a 8 2026-07-07 18:35:31 ~12 min tests 📄log
✖️ 2b0589a 8 2026-07-07 18:47:06 ~24 min tests-rpc 📄log
✔️ 2b0589a 7 2026-07-07 19:04:20 ~41 min tests-rpc-compat 📄log
✔️ 463e3e1 9 2026-07-07 18:34:14 ~5 min windows/status-go 📦zip
✔️ 463e3e1 9 2026-07-07 18:36:40 ~7 min linux/status-go 📦zip
✔️ 463e3e1 9 2026-07-07 18:36:40 ~6 min macos/status-go 📦zip
✔️ 463e3e1 9 2026-07-07 18:45:48 ~10 min tests 📄log
✖️ 463e3e1 9 2026-07-07 19:28:42 ~41 min tests-rpc 📄log
✔️ 463e3e1 8 2026-07-07 19:41:40 ~37 min tests-rpc-compat 📄log
✔️ d05d12e 10 2026-07-07 20:23:39 ~4 min linux/status-go 📦zip
✔️ d05d12e 10 2026-07-07 20:26:44 ~7 min macos/status-go 📦zip
✔️ d05d12e 10 2026-07-07 20:27:46 ~8 min windows/status-go 📦zip
✔️ ae9c628 11 2026-07-07 21:46:09 ~5 min windows/status-go 📦zip
✔️ ae9c628 11 2026-07-07 21:46:53 ~6 min linux/status-go 📦zip
✔️ ae9c628 11 2026-07-07 21:51:37 ~10 min macos/status-go 📦zip
✔️ ae9c628 11 2026-07-07 21:59:07 ~18 min tests 📄log
✔️ ae9c628 10 2026-07-07 22:18:34 ~37 min tests-rpc-compat 📄log
✔️ df67ae3 12 2026-07-08 13:28:31 ~5 min windows/status-go 📦zip
✔️ df67ae3 12 2026-07-08 13:28:36 ~5 min linux/status-go 📦zip
✔️ df67ae3 12 2026-07-08 13:32:21 ~9 min macos/status-go 📦zip
✔️ df67ae3 12 2026-07-08 13:46:10 ~22 min tests 📄log
✔️ df67ae3 11 2026-07-08 14:08:12 ~44 min tests-rpc-compat 📄log
✖️ df67ae3 12 2026-07-08 14:08:44 ~45 min tests-rpc 📄log
✔️ 472c5c7 13 2026-07-08 18:43:22 ~4 min linux/status-go 📦zip
✔️ 472c5c7 13 2026-07-08 18:45:55 ~7 min macos/status-go 📦zip
✔️ 472c5c7 13 2026-07-08 18:51:05 ~12 min windows/status-go 📦zip
✔️ 472c5c7 13 2026-07-08 18:51:09 ~12 min tests 📄log
✔️ 472c5c7 12 2026-07-08 19:36:09 ~57 min tests-rpc-compat 📄log
✔️ d4666f8 14 2026-07-08 18:54:26 ~4 min linux/status-go 📦zip
✔️ d4666f8 14 2026-07-08 18:56:03 ~6 min macos/status-go 📦zip
✔️ d4666f8 14 2026-07-08 18:57:03 ~5 min windows/status-go 📦zip
✔️ d4666f8 14 2026-07-08 19:01:41 ~10 min tests 📄log
✖️ d4666f8 14 2026-07-08 20:01:31 ~31 min tests-rpc 📄log
✔️ d4666f8 13 2026-07-08 20:09:16 ~32 min tests-rpc-compat 📄log
✔️ c224fce 15 2026-07-08 20:57:20 ~4 min linux/status-go 📦zip
✔️ c224fce 15 2026-07-08 20:58:25 ~5 min windows/status-go 📦zip
✔️ c224fce 15 2026-07-08 20:59:24 ~6 min macos/status-go 📦zip
✔️ c224fce 15 2026-07-08 21:03:13 ~10 min tests 📄log
✔️ c224fce 14 2026-07-08 21:41:12 ~48 min tests-rpc-compat 📄log
✔️ 36e7905 16 2026-07-08 22:10:55 ~4 min linux/status-go 📦zip
✔️ 36e7905 16 2026-07-08 22:12:12 ~5 min windows/status-go 📦zip
✔️ 36e7905 16 2026-07-08 22:13:40 ~6 min macos/status-go 📦zip
✔️ 36e7905 16 2026-07-08 22:16:40 ~9 min tests 📄log
✔️ 36e7905 15 2026-07-08 22:46:02 ~39 min tests-rpc-compat 📄log
✖️ 36e7905 16 2026-07-08 22:49:43 ~42 min tests-rpc 📄log
✔️ fafc112 17 2026-07-08 23:42:19 ~4 min linux/status-go 📦zip
✔️ fafc112 17 2026-07-08 23:43:35 ~5 min windows/status-go 📦zip
✔️ fafc112 17 2026-07-08 23:45:11 ~6 min macos/status-go 📦zip
✔️ fafc112 17 2026-07-08 23:48:02 ~9 min tests 📄log
✔️ fafc112 16 2026-07-09 00:24:09 ~45 min tests-rpc-compat 📄log
✖️ fafc112 17 2026-07-09 00:26:42 ~48 min tests-rpc 📄log
✔️ 2322d39 18 2026-07-09 11:33:04 ~4 min linux/status-go 📦zip
✔️ 2322d39 18 2026-07-09 11:34:19 ~5 min windows/status-go 📦zip
✔️ 2322d39 18 2026-07-09 11:36:07 ~7 min macos/status-go 📦zip
✖️ 2322d39 18 2026-07-09 11:42:44 ~13 min tests 📄log
✔️ 2322d39 17 2026-07-09 12:07:59 ~39 min tests-rpc-compat 📄log
✖️ 2322d39 18 2026-07-09 12:11:49 ~42 min tests-rpc 📄log
✔️ 212ff33 19 2026-07-09 15:31:00 ~3 min linux/status-go 📦zip
✖️ 212ff33 19 2026-07-09 15:31:06 ~3 min tests 📄log
✔️ 212ff33 19 2026-07-09 15:33:55 ~6 min macos/status-go 📦zip
✔️ 212ff33 19 2026-07-09 15:36:10 ~8 min windows/status-go 📦zip
✔️ 212ff33 18 2026-07-09 16:10:47 ~43 min tests-rpc-compat 📄log
✔️ f90c3b3 20 2026-07-09 16:43:11 ~3 min linux/status-go 📦zip
✔️ f90c3b3 20 2026-07-09 16:44:42 ~5 min windows/status-go 📦zip
✔️ f90c3b3 20 2026-07-09 16:46:15 ~6 min macos/status-go 📦zip
✔️ f90c3b3 20 2026-07-09 16:49:22 ~9 min tests 📄log
✖️ f90c3b3 20 2026-07-09 17:22:29 ~43 min tests-rpc 📄log
✔️ f90c3b3 19 2026-07-09 17:26:14 ~46 min tests-rpc-compat 📄log
✔️ 8e26074 21 2026-07-09 19:45:28 ~4 min linux/status-go 📦zip
✔️ 8e26074 21 2026-07-09 19:47:19 ~5 min macos/status-go 📦zip
✔️ 8e26074 21 2026-07-09 19:49:51 ~8 min windows/status-go 📦zip
✔️ 8e26074 21 2026-07-09 19:51:09 ~9 min tests 📄log
✔️ 8e26074 20 2026-07-09 20:34:44 ~53 min tests-rpc-compat 📄log
✔️ 48275ff 22 2026-07-09 20:51:40 ~3 min linux/status-go 📦zip
✔️ 48275ff 22 2026-07-09 20:54:07 ~6 min macos/status-go 📦zip
✔️ 48275ff 22 2026-07-09 20:56:24 ~8 min windows/status-go 📦zip
✔️ 48275ff 22 2026-07-09 21:01:27 ~13 min tests 📄log
✔️ 48275ff 21 2026-07-09 21:22:54 ~35 min tests-rpc-compat 📄log
✖️ 48275ff 22 2026-07-09 21:30:57 ~43 min tests-rpc 📄log
✔️ b64c9ad 23 2026-07-10 11:44:39 ~5 min windows/status-go 📦zip
✔️ b64c9ad 23 2026-07-10 11:46:25 ~7 min linux/status-go 📦zip
✔️ b64c9ad 23 2026-07-10 11:46:36 ~7 min macos/status-go 📦zip
✔️ b64c9ad 23 2026-07-10 11:51:01 ~11 min tests 📄log
✔️ 5cc6bd3 24 2026-07-10 14:53:34 ~4 min linux/status-go 📦zip
✔️ 5cc6bd3 24 2026-07-10 14:54:41 ~5 min windows/status-go 📦zip
✔️ 5cc6bd3 24 2026-07-10 14:56:18 ~6 min macos/status-go 📦zip
✔️ 5cc6bd3 24 2026-07-10 15:07:47 ~18 min tests 📄log
✖️ 5cc6bd3 23 2026-07-10 15:44:38 ~55 min tests-rpc-compat 📄log
✔️ 49d216f 25 2026-07-10 16:57:18 ~4 min linux/status-go 📦zip
✔️ 49d216f 25 2026-07-10 16:59:46 ~6 min macos/status-go 📦zip
✔️ 49d216f 25 2026-07-10 17:00:54 ~7 min windows/status-go 📦zip
✔️ 49d216f 25 2026-07-10 17:02:45 ~9 min tests 📄log
✖️ 49d216f 25 2026-07-10 17:16:58 ~23 min tests-rpc 📄log
✔️ 49d216f 24 2026-07-10 17:40:03 ~47 min tests-rpc-compat 📄log
✔️ 96dac3a 26 2026-07-10 18:07:53 ~4 min linux/status-go 📦zip
96dac3a 26 2026-07-10 18:10:14 ~6 min windows/status-go 📄log
✔️ 96dac3a 26 2026-07-10 18:10:54 ~6 min macos/status-go 📦zip
✔️ 96dac3a 26 2026-07-10 18:14:18 ~10 min tests 📄log
✔️ 065ba52 27 2026-07-10 20:33:09 ~3 min linux/status-go 📦zip
✔️ 065ba52 27 2026-07-10 20:34:49 ~5 min windows/status-go 📦zip
✔️ 065ba52 27 2026-07-10 20:35:59 ~6 min macos/status-go 📦zip
✔️ 065ba52 27 2026-07-10 20:40:22 ~10 min tests 📄log
✖️ 065ba52 27 2026-07-10 20:51:06 ~21 min tests-rpc 📄log
✖️ 065ba52 25 2026-07-10 21:34:05 ~1 hr 4 min tests-rpc-compat 📄log
✔️ b383081 28 2026-07-10 21:11:42 ~4 min linux/status-go 📦zip
✔️ b383081 28 2026-07-10 21:14:45 ~7 min macos/status-go 📦zip
✔️ b383081 28 2026-07-10 21:17:15 ~9 min windows/status-go 📦zip
✔️ b383081 28 2026-07-10 21:17:29 ~9 min tests 📄log
✖️ b383081 28 2026-07-10 21:48:16 ~40 min tests-rpc 📄log
✔️ b383081 26 2026-07-10 22:07:42 ~33 min tests-rpc-compat 📄log
✔️ 5cd4b22 29 2026-07-10 23:05:21 ~4 min linux/status-go 📦zip
✔️ 5cd4b22 29 2026-07-10 23:06:38 ~5 min windows/status-go 📦zip
✔️ 5cd4b22 29 2026-07-10 23:08:07 ~7 min macos/status-go 📦zip
✖️ 5cd4b22 29 2026-07-10 23:08:11 ~6 min tests 📄log
✖️ 5cd4b22 29 2026-07-10 23:25:13 ~23 min tests-rpc 📄log
✔️ 5cd4b22 27 2026-07-10 23:49:34 ~48 min tests-rpc-compat 📄log
✔️ ade4109 30 2026-07-11 00:05:51 ~5 min windows/status-go 📦zip
✔️ ade4109 30 2026-07-11 00:06:59 ~6 min macos/status-go 📦zip
✔️ ade4109 28 2026-07-11 00:43:33 ~43 min tests-rpc-compat 📄log
✔️ 0fe437a 31 2026-07-12 16:39:13 ~4 min macos/status-go 📦zip
✔️ 0fe437a 31 2026-07-12 16:40:03 ~5 min windows/status-go 📦zip
✖️ 31b53b1 32 2026-07-13 20:35:36 ~1 min tests 📄log
✖️ 31b53b1 30 2026-07-13 20:35:46 ~2 min tests-rpc-compat 📄log
✖️ 31b53b1 32 2026-07-13 20:35:49 ~2 min tests-rpc 📄log
✔️ 31b53b1 32 2026-07-13 20:37:52 ~4 min linux/status-go 📦zip
✔️ 31b53b1 32 2026-07-13 20:41:38 ~7 min windows/status-go 📦zip
✔️ 31b53b1 32 2026-07-13 20:45:04 ~11 min macos/status-go 📦zip
✔️ 31b53b1 33 2026-07-13 22:11:47 ~9 min tests 📄log
✔️ 31b53b1 33 2026-07-13 22:20:19 ~18 min tests-rpc 📄log
✔️ 31b53b1 31 2026-07-13 22:39:36 ~37 min tests-rpc-compat 📄log
✔️ 5a6fca9 33 2026-07-14 08:55:13 ~5 min macos/status-go 📦zip
✔️ 5a6fca9 33 2026-07-14 08:55:42 ~5 min windows/status-go 📦zip
✖️ 5a6fca9 34 2026-07-14 09:12:57 ~22 min tests 📄log
✔️ 5a6fca9 34 2026-07-14 09:27:58 ~37 min tests-rpc 📄log
✔️ 5a6fca9 32 2026-07-14 09:50:57 ~1 hr 0 min tests-rpc-compat 📄log
✔️ 5a6fca9 34 2026-07-14 12:45:47 ~3 min linux/status-go 📦zip
✔️ 5a6fca9 35 2026-07-14 12:51:33 ~9 min tests 📄log
✔️ 124af58 34 2026-07-15 17:24:37 ~4 min macos/status-go 📦zip
✔️ 124af58 34 2026-07-15 17:25:33 ~5 min windows/status-go 📦zip
✔️ 124af58 35 2026-07-15 17:30:17 ~10 min linux/status-go 📦zip
✔️ 124af58 36 2026-07-15 17:30:31 ~10 min tests 📄log
✔️ 124af58 35 2026-07-15 17:43:34 ~23 min tests-rpc 📄log
✖️ 124af58 33 2026-07-15 18:16:46 ~56 min tests-rpc-compat 📄log
✔️ 124af58 34 2026-07-15 20:02:26 ~38 min tests-rpc-compat 📄log
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ b484347 35 2026-07-16 09:35:04 ~5 min macos/status-go 📦zip
✖️ b484347 35 2026-07-16 09:35:47 ~6 min tests-rpc-compat 📄log
✔️ b484347 35 2026-07-16 09:35:53 ~6 min windows/status-go 📦zip
✖️ b484347 37 2026-07-16 09:36:52 ~7 min tests 📄log
✔️ b484347 36 2026-07-16 09:44:01 ~14 min linux/status-go 📦zip
✔️ b484347 36 2026-07-16 09:54:25 ~24 min tests-rpc 📄log

@codecov

codecov Bot commented Jun 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 62.25%. Comparing base (c1e1886) to head (124af58).

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #7584      +/-   ##
===========================================
- Coverage    62.33%   62.25%   -0.09%     
===========================================
  Files          868      868              
  Lines       119812   119812              
===========================================
- Hits         74684    74583     -101     
- Misses       37531    37618      +87     
- Partials      7597     7611      +14     
Flag Coverage Δ
functional 42.16% <ø> (-0.21%) ⬇️
unit 55.97% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 27 files with indirect coverage changes

@AYAHASSAN287
AYAHASSAN287 force-pushed the test/CommunityControlNodeTransfer branch from 6e7f198 to 0cdb973 Compare July 4, 2026 16:04
@AYAHASSAN287 AYAHASSAN287 changed the title Test/community control node transfer test(functional): add #7132 community control node transfer test Jul 4, 2026

@fbarbu15 fbarbu15 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AYAHASSAN287
AYAHASSAN287 force-pushed the test/CommunityControlNodeTransfer branch from c27a8ab to 7c9d9d1 Compare July 7, 2026 14:01
@AYAHASSAN287
AYAHASSAN287 force-pushed the test/CommunityControlNodeTransfer branch from ae9c628 to df67ae3 Compare July 8, 2026 13:22
@at0m1x19
at0m1x19 force-pushed the test/CommunityControlNodeTransfer branch from 0fe437a to 31b53b1 Compare July 13, 2026 20:33

@at0m1x19 at0m1x19 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@AYAHASSAN287
AYAHASSAN287 requested a review from fbarbu15 July 15, 2026 19:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Community Control Node Transfer Functional Test

4 participants