@@ -1618,20 +1618,47 @@ fn test_refund_succeeds() {
16181618}
16191619
16201620#[ test]
1621- fn test_refund_fails_if_bad_origin ( ) {
1622- TestState :: default ( ) . build_and_execute ( || {
1623- let crowdloan_id: CrowdloanId = 0 ;
1621+ fn test_refund_fails_if_bad_or_invalid_origin ( ) {
1622+ TestState :: default ( )
1623+ . with_balance ( U256 :: from ( 1 ) , 100 )
1624+ . build_and_execute ( || {
1625+ // create a crowdloan
1626+ let crowdloan_id: CrowdloanId = 0 ;
1627+ let creator: AccountOf < Test > = U256 :: from ( 1 ) ;
1628+ let initial_deposit: BalanceOf < Test > = 50 ;
1629+ let min_contribution: BalanceOf < Test > = 10 ;
1630+ let cap: BalanceOf < Test > = 300 ;
1631+ let end: BlockNumberFor < Test > = 50 ;
1632+ assert_ok ! ( Crowdloan :: create(
1633+ RuntimeOrigin :: signed( creator) ,
1634+ initial_deposit,
1635+ min_contribution,
1636+ cap,
1637+ end,
1638+ Some ( noop_call( ) ) ,
1639+ None ,
1640+ ) ) ;
16241641
1625- assert_err ! (
1626- Crowdloan :: refund( RuntimeOrigin :: none( ) , crowdloan_id) ,
1627- DispatchError :: BadOrigin
1628- ) ;
1642+ assert_err ! (
1643+ Crowdloan :: refund( RuntimeOrigin :: none( ) , crowdloan_id) ,
1644+ DispatchError :: BadOrigin
1645+ ) ;
16291646
1630- assert_err ! (
1631- Crowdloan :: refund( RuntimeOrigin :: root( ) , crowdloan_id) ,
1632- DispatchError :: BadOrigin
1633- ) ;
1634- } ) ;
1647+ assert_err ! (
1648+ Crowdloan :: refund( RuntimeOrigin :: root( ) , crowdloan_id) ,
1649+ DispatchError :: BadOrigin
1650+ ) ;
1651+
1652+ // run some blocks
1653+ run_to_block ( 60 ) ;
1654+
1655+ // try to refund
1656+ let unknown_contributor: AccountOf < Test > = U256 :: from ( 2 ) ;
1657+ assert_err ! (
1658+ Crowdloan :: refund( RuntimeOrigin :: signed( unknown_contributor) , crowdloan_id) ,
1659+ pallet_crowdloan:: Error :: <Test >:: InvalidOrigin ,
1660+ ) ;
1661+ } ) ;
16351662}
16361663
16371664#[ test]
0 commit comments