From 897dabbb7916dfa006f9f511ca0516c96ba942d4 Mon Sep 17 00:00:00 2001 From: cgeek <cem.moreau@gmail.com> Date: Sun, 25 Jun 2023 21:26:38 +0200 Subject: [PATCH] wip: fix: NoAuthor --- pallets/distance/src/mock.rs | 17 ++++++++++++++--- pallets/distance/src/tests.rs | 13 +++++++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/pallets/distance/src/mock.rs b/pallets/distance/src/mock.rs index a20f27fd1..363f410e5 100644 --- a/pallets/distance/src/mock.rs +++ b/pallets/distance/src/mock.rs @@ -15,7 +15,8 @@ // along with Duniter-v2S. If not, see <https://www.gnu.org/licenses/>. use crate::{self as pallet_distance}; -use frame_support::traits::GenesisBuild; +use codec::Decode; +use frame_support::traits::{FindAuthor, GenesisBuild}; use frame_support::{ parameter_types, sp_io, traits::{Everything, OnFinalize, OnInitialize}, @@ -30,7 +31,7 @@ use sp_runtime::{ impl_opaque_keys, testing::Header, traits::{BlakeTwo256, IdentityLookup}, - BuildStorage, MultiSignature, + BuildStorage, ConsensusEngineId, MultiSignature, }; // type AccountId = u64; @@ -205,8 +206,18 @@ impl pallet_certification::Config for Test { type ValidityPeriod = ValidityPeriod; } +pub struct AuthorGiven; +impl FindAuthor<u64> for AuthorGiven { + fn find_author<'a, I>(digests: I) -> Option<u64> + where + I: 'a + IntoIterator<Item = (ConsensusEngineId, &'a [u8])>, + { + Some(0) + } +} + impl pallet_authorship::Config for Test { - type FindAuthor = (); + type FindAuthor = AuthorGiven; type UncleGenerations = (); type FilterUncle = (); type EventHandler = (); diff --git a/pallets/distance/src/tests.rs b/pallets/distance/src/tests.rs index 44d3d2fab..93f433d18 100644 --- a/pallets/distance/src/tests.rs +++ b/pallets/distance/src/tests.rs @@ -17,6 +17,8 @@ use crate::mock::*; use crate::{pallet, Error}; use frame_support::{assert_noop, assert_ok}; +use sp_distance::ComputationResult; +use sp_runtime::Perbill; use sp_std::collections::btree_map::BTreeMap; // To enable better IDE checks @@ -25,7 +27,18 @@ type Distance = pallet::Pallet<Test, ()>; #[test] fn test_compilation() { new_test_ext().execute_with(|| { + // Session 1: we ask for evaluation run_to_block(1); assert_ok!(Distance::evaluate_distance(RuntimeOrigin::signed(0))); + // Session 2: distance is being computed + run_to_block(6); // session 2 wraps blocks [6, 10] because of SESSION_LENGTH + // Session 3: distance results are supposed to be published + run_to_block(11); // session 3 wraps blocks [11, 15] because of SESSION_LENGTH + assert_ok!(Distance::update_evaluation( + RuntimeOrigin::none(), + ComputationResult { + distances: vec![Perbill::from_percent(100)] + } + )); }); } -- GitLab