Skip to content
Snippets Groups Projects
Commit a1307555 authored by Hugo Trentesaux's avatar Hugo Trentesaux Committed by Hugo Trentesaux
Browse files

test refund behavior on reaped account

parent d0627122
No related branches found
No related tags found
1 merge request!253Fix #196 forbid empty linked account
Pipeline #36414 passed
...@@ -22,6 +22,7 @@ mod common; ...@@ -22,6 +22,7 @@ mod common;
use common::*; use common::*;
use frame_support::assert_ok; use frame_support::assert_ok;
use frame_support::traits::OnIdle; use frame_support::traits::OnIdle;
use frame_support::traits::StoredMap;
use gdev_runtime::*; use gdev_runtime::*;
use sp_core::Encode; use sp_core::Encode;
use sp_core::Pair; use sp_core::Pair;
...@@ -191,3 +192,49 @@ fn test_no_refund() { ...@@ -191,3 +192,49 @@ fn test_no_refund() {
assert_eq!(Balances::free_balance(Treasury::account_id()), 100 + 3); assert_eq!(Balances::free_balance(Treasury::account_id()), 100 + 3);
}) })
} }
/// test refund on_idle when linked account is reaped
#[test]
fn test_refund_reaped_linked_account() {
ExtBuilder::new(1, 3, 4)
.with_initial_balances(vec![
(AccountKeyring::Alice.to_account_id(), 10_000),
(AccountKeyring::Ferdie.to_account_id(), 10_000),
])
.build()
.execute_with(|| {
let genesis_hash = System::block_hash(0);
let alice = AccountKeyring::Alice.to_account_id();
let ferdie = AccountKeyring::Ferdie.to_account_id();
let payload = (b"link", genesis_hash, 1u32, ferdie.clone()).encode();
let signature = AccountKeyring::Ferdie.sign(&payload);
// Ferdie's account can be linked to Alice identity
assert_ok!(Identity::link_account(
frame_system::RawOrigin::Signed(alice.clone()).into(),
ferdie.clone(),
signature.into()
));
assert_eq!(
frame_system::Pallet::<Runtime>::get(&ferdie).linked_idty,
Some(1)
);
// transfer_all call to extrinsic
let call = RuntimeCall::Balances(BalancesCall::transfer_all {
dest: AccountKeyring::Alice.to_account_id().into(),
keep_alive: false,
});
let xt = get_unchecked_extrinsic(call, 4u64, 8u64, AccountKeyring::Ferdie, 0u64);
assert_ok!(Executive::apply_extrinsic(xt));
assert_eq!(Balances::free_balance(ferdie.clone()), 0);
// During reaping the account is unlinked
assert!(frame_system::Pallet::<Runtime>::get(&ferdie)
.linked_idty
.is_none());
// since the account is reaped, it is not linked anymore and no refund is added to queue
assert!(pallet_quota::RefundQueue::<Runtime>::get().is_empty());
})
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment