@@ -14,6 +14,7 @@ use subtensor_runtime_common::NetUid;
1414use subtensor_swap_interface:: Order as OrderT ;
1515
1616use super :: * ;
17+ use crate :: migrations:: fee_rate_migration:: MAX_FEE_RATE ;
1718use crate :: pallet:: swap_step:: * ;
1819use crate :: { SqrtPrice , mock:: * } ;
1920
@@ -2913,3 +2914,45 @@ fn adjust_protocol_liquidity_uses_and_sets_scrap_reservoirs() {
29132914 ) ;
29142915 } ) ;
29152916}
2917+
2918+ #[ test]
2919+ fn test_migrate_fee_rate ( ) {
2920+ new_test_ext ( ) . execute_with ( || {
2921+ let migration_name = b"migrate_fee_rate" . to_vec ( ) ;
2922+
2923+ assert ! (
2924+ !HasMigrationRun :: <Test >:: get( migration_name. clone( ) ) ,
2925+ "HasMigrationRun should be false before migration"
2926+ ) ;
2927+
2928+ let netuid1 = NetUid :: from ( 1 ) ;
2929+ let netuid2 = NetUid :: from ( 2 ) ;
2930+ let value1 = 1000u16 ;
2931+ let value2 = 2000u16 ;
2932+
2933+ FeeRate :: < Test > :: insert ( netuid1, value1) ;
2934+ FeeRate :: < Test > :: insert ( netuid2, value2) ;
2935+
2936+ // run migration
2937+ let weight = migrations:: fee_rate_migration:: migrate_fee_rate :: < Test > ( ) ;
2938+ assert ! ( !weight. is_zero( ) , "migration weight should be > 0" ) ;
2939+
2940+ // check results
2941+
2942+ assert_eq ! ( FeeRate :: <Test >:: get( netuid1) , value1) ;
2943+ assert_eq ! ( FeeRate :: <Test >:: get( netuid2) , MAX_FEE_RATE ) ;
2944+
2945+ // running the migration again should do nothing
2946+ FeeRate :: < Test > :: insert ( netuid1, value1) ;
2947+ FeeRate :: < Test > :: insert ( netuid2, value2) ;
2948+
2949+ let _weight2 = migrations:: fee_rate_migration:: migrate_fee_rate :: < Test > ( ) ;
2950+
2951+ assert ! (
2952+ HasMigrationRun :: <Test >:: get( migration_name. clone( ) ) ,
2953+ "HasMigrationRun remains true on second run"
2954+ ) ;
2955+ assert_eq ! ( FeeRate :: <Test >:: get( netuid1) , value1) ;
2956+ assert_eq ! ( FeeRate :: <Test >:: get( netuid2) , value2) ;
2957+ } ) ;
2958+ }
0 commit comments