diff --git a/pallets/distance/src/lib.rs b/pallets/distance/src/lib.rs index 48ad748feb1e751196bde559c2d4e193abbe88ed..ae755b7c86bb6ce17d4871af181251f7e8dccab7 100644 --- a/pallets/distance/src/lib.rs +++ b/pallets/distance/src/lib.rs @@ -43,7 +43,9 @@ type IdtyIndex = u64; #[frame_support::pallet] pub mod pallet { use super::*; - use frame_support::{pallet_prelude::*, traits::ReservableCurrency, BoundedBTreeSet}; + use frame_support::{ + assert_ok, pallet_prelude::*, traits::ReservableCurrency, BoundedBTreeSet, + }; use frame_system::pallet_prelude::*; use sp_runtime::Perbill; use std::collections::BTreeMap; @@ -210,6 +212,9 @@ pub mod pallet { pub fn evaluate_distance(origin: OriginFor<T>) -> DispatchResultWithPostInfo { let who = ensure_signed(origin)?; + pallet_identity::IdentityIndexOf::<T>::iter_values().for_each(|item| { + frame_support::log::info!("{}", item); + }); let idty = pallet_identity::IdentityIndexOf::<T>::get(&who) .ok_or(Error::<T, I>::NoIdentity)?; @@ -288,7 +293,7 @@ pub mod pallet { current_pool .0 .try_push((idty_index, median::MedianAcc::new())) - .map_err(|_| Error::<T, I>::QueueFull)?; + .map_err(|_| Error::<T, I>::QueueFull)?; // TODO: never raised because of preceding ensure!()? Ok(()) }, diff --git a/pallets/distance/src/mock.rs b/pallets/distance/src/mock.rs index 9da97c156aeab6759ccd621bb229a02fdfd60e41..a20f27fd120cf528ce5fd13db84bfbe679bba6b5 100644 --- a/pallets/distance/src/mock.rs +++ b/pallets/distance/src/mock.rs @@ -112,8 +112,8 @@ impl frame_support::traits::EnsureOrigin<(RuntimeOrigin, IdtyIndex, IdtyIndex)> impl pallet_distance::Config for Test { type RuntimeEvent = RuntimeEvent; type Currency = (); - type EvaluationPrice = (); - type MaxEvaluationsPerSession = (); + type EvaluationPrice = ConstU32<100>; + type MaxEvaluationsPerSession = ConstU32<10>; type MaxEvaluatorsPerSession = (); type MinAccessibleReferees = (); type ResultExpiration = (); @@ -278,6 +278,27 @@ pub fn new_test_ext() -> sp_io::TestExternalities { .assimilate_storage(&mut t) .unwrap(); + // Identities + let initial_identities_len = initial_authorities_len; + pallet_identity::GenesisConfig::<Test> { + identities: (1..=initial_identities_len) + .map(|i| pallet_identity::GenesisIdty { + index: i, + name: pallet_identity::IdtyName::from(format!("name_{}", i).as_str()), + value: pallet_identity::IdtyValue { + data: (), + next_creatable_identity_on: 0, + owner_key: i - 1 as u64, + old_owner_key: None, + removable_on: 0, + status: pallet_identity::IdtyStatus::Validated, + }, + }) + .collect(), + } + .assimilate_storage(&mut t) + .unwrap(); + sp_io::TestExternalities::new(t) // GenesisConfig { diff --git a/pallets/distance/src/tests.rs b/pallets/distance/src/tests.rs index 8832089611e933f67a7260ad6655de6e6a11946e..44d3d2fab6c1117beea68b4a29eeb3dfba120e5a 100644 --- a/pallets/distance/src/tests.rs +++ b/pallets/distance/src/tests.rs @@ -15,19 +15,17 @@ // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>. use crate::mock::*; -use crate::Error; +use crate::{pallet, Error}; use frame_support::{assert_noop, assert_ok}; use sp_std::collections::btree_map::BTreeMap; +// To enable better IDE checks +type Distance = pallet::Pallet<Test, ()>; + #[test] fn test_compilation() { new_test_ext().execute_with(|| { run_to_block(1); - run_to_block(5); - assert_eq!( - Distance::evaluate_distance(RuntimeOrigin::signed(0)), - Err(Error::<Test, _>::NoIdentity.into()) - ); - assert_eq!(true, true); + assert_ok!(Distance::evaluate_distance(RuntimeOrigin::signed(0))); }); } diff --git a/pallets/identity/src/lib.rs b/pallets/identity/src/lib.rs index 06514db7121b3129749770de06ff6521450dc892..d155b56845d41dedfffa76775b35bdb9368229a4 100644 --- a/pallets/identity/src/lib.rs +++ b/pallets/identity/src/lib.rs @@ -120,6 +120,7 @@ pub mod pallet { #[cfg_attr(feature = "std", derive(serde::Deserialize, serde::Serialize))] #[derive(Encode, Decode, Clone, PartialEq, Eq)] pub struct GenesisIdty<T: Config> { + /// The order of the identity in the genesis — to ensure some consistency with AccountId, IdtyIndex, etc. pub index: T::IdtyIndex, pub name: IdtyName, pub value: IdtyValue<T::BlockNumber, T::AccountId, T::IdtyData>,