From 3f3990d9fb699834ed5c0a3edd088cb0394574f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Pascal=20Eng=C3=A9libert?= <tuxmain@zettascript.org>
Date: Fri, 10 Jan 2025 14:43:10 +0100
Subject: [PATCH] end2end: non-member idty has UD at genesis
---
.../universal_dividend.feature | 15 +++++++++++
end2end-tests/cucumber-genesis/wot.json | 27 ++++++++++++++++++-
end2end-tests/tests/cucumber_tests.rs | 20 ++++++++++++++
3 files changed, 61 insertions(+), 1 deletion(-)
create mode 100644 end2end-tests/cucumber-features/universal_dividend.feature
diff --git a/end2end-tests/cucumber-features/universal_dividend.feature b/end2end-tests/cucumber-features/universal_dividend.feature
new file mode 100644
index 000000000..c858c5e19
--- /dev/null
+++ b/end2end-tests/cucumber-features/universal_dividend.feature
@@ -0,0 +1,15 @@
+@genesis.wot
+
+Feature: Universal Dividend
+
+ Scenario: Eligibility at genesis
+ When 2 blocks later
+
+ # Members
+ Then alice should be eligible to UD
+ Then bob should be eligible to UD
+ Then charlie should be eligible to UD
+
+ # Not members
+ Then eve should not be eligible to UD
+ Then ferdie should not be eligible to UD
diff --git a/end2end-tests/cucumber-genesis/wot.json b/end2end-tests/cucumber-genesis/wot.json
index 26042cf39..0bc2d5457 100644
--- a/end2end-tests/cucumber-genesis/wot.json
+++ b/end2end-tests/cucumber-genesis/wot.json
@@ -59,6 +59,31 @@
"membership_revokes_on": 2700000001,
"revoked": false,
"next_cert_issuable_on": 0
+ },
+ "Eve": {
+ "index": 5,
+ "balance": 1000,
+ "certs_received": {
+ "Alice": 2700000000,
+ "Bob": 2700000000
+ },
+ "owner_address": "5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw",
+ "membership_expire_on": 2700000000,
+ "membership_revokes_on": 2700000001,
+ "revoked": true,
+ "next_cert_issuable_on": 0
+ },
+ "Ferdie": {
+ "index": 6,
+ "balance": 1000,
+ "certs_received": {
+ "Alice": 2700000000
+ },
+ "owner_address": "5CiPPseXPECbkjWCa6MnjNokrgYjMqmKndv2rSnekmSK2DjL",
+ "membership_expire_on": 2700000000,
+ "membership_revokes_on": 2700000001,
+ "revoked": false,
+ "next_cert_issuable_on": 0
}
},
"parameters": {
@@ -99,7 +124,7 @@
],
"treasury_funder_pubkey": "FHNpKmJrUtusuvKPGomAygQqeiks98bdV6yD61Stb6vg",
"ud": 1000,
- "initial_monetary_mass": 4000,
+ "initial_monetary_mass": 6000,
"current_block": {
"number": 0,
"medianTime": 1700000000
diff --git a/end2end-tests/tests/cucumber_tests.rs b/end2end-tests/tests/cucumber_tests.rs
index 642779ec8..58a532b2d 100644
--- a/end2end-tests/tests/cucumber_tests.rs
+++ b/end2end-tests/tests/cucumber_tests.rs
@@ -526,6 +526,26 @@ async fn should_be_certified_by(
}
}
+#[then(regex = r"([a-zA-Z]+) should (not )?be eligible to UD")]
+async fn should_be_eligible_to_ud(
+ world: &mut DuniterWorld,
+ identity: String,
+ not: String,
+) -> Result<()> {
+ let eligible = not.is_empty();
+
+ assert_eq!(
+ identity::get_identity_value(world, identity)
+ .await
+ .expect("Identity not found")
+ .data
+ .first_eligible_ud
+ != 0,
+ eligible
+ );
+ Ok(())
+}
+
use gdev::runtime_types::pallet_identity::types::IdtyStatus;
// status from string
--
GitLab