@@ -210,9 +210,20 @@ describe('OperatorStaking', function () {
210210 describe ( 'redeem' , async function ( ) {
211211 it ( 'simple redemption' , async function ( ) {
212212 await this . mock . connect ( this . delegator1 ) . deposit ( ethers . parseEther ( '1' ) , this . delegator1 ) ;
213- await this . mock
214- . connect ( this . delegator1 )
215- . requestRedeem ( await this . mock . balanceOf ( this . delegator1 ) , this . delegator1 , this . delegator1 ) ;
213+ await expect (
214+ this . mock
215+ . connect ( this . delegator1 )
216+ . requestRedeem ( await this . mock . balanceOf ( this . delegator1 ) , this . delegator1 , this . delegator1 ) ,
217+ )
218+ . to . emit ( this . mock , 'RedeemRequest' )
219+ . withArgs (
220+ this . delegator1 ,
221+ this . delegator1 ,
222+ 0 ,
223+ this . delegator1 ,
224+ ethers . parseEther ( '1' ) ,
225+ BigInt ( await time . latest ( ) ) + ( await this . protocolStaking . unstakeCooldownPeriod ( ) ) ,
226+ ) ;
216227
217228 await expect ( this . mock . pendingRedeemRequest ( 0 , this . delegator1 ) ) . to . eventually . eq ( ethers . parseEther ( '1' ) ) ;
218229 await expect ( this . mock . claimableRedeemRequest ( 0 , this . delegator1 ) ) . to . eventually . eq ( 0 ) ;
@@ -228,11 +239,13 @@ describe('OperatorStaking', function () {
228239 await expect ( this . token . balanceOf ( this . mock ) ) . to . eventually . be . eq ( 0 ) ;
229240 } ) ;
230241
231- it ( 'zero redemption should terminate early' , async function ( ) {
232- await expect ( this . mock . connect ( this . delegator1 ) . requestRedeem ( 0 , this . delegator1 , this . delegator1 ) ) . to . not . emit (
233- this . mock ,
234- 'RedeemRequest' ,
235- ) ;
242+ it ( 'should return release time' , async function ( ) {
243+ await this . mock . connect ( this . delegator1 ) . deposit ( ethers . parseEther ( '1' ) , this . delegator1 ) ;
244+ await expect (
245+ this . mock
246+ . connect ( this . delegator1 )
247+ . requestRedeem . staticCall ( await this . mock . balanceOf ( this . delegator1 ) , this . delegator1 , this . delegator1 ) ,
248+ ) . to . eventually . eq ( BigInt ( await time . latest ( ) ) + ( await this . protocolStaking . unstakeCooldownPeriod ( ) ) ) ;
236249 } ) ;
237250
238251 it ( 'should not redeem twice' , async function ( ) {
@@ -251,6 +264,18 @@ describe('OperatorStaking', function () {
251264 ) . to . not . emit ( this . token , 'Transfer' ) ;
252265 } ) ;
253266
267+ it ( 'should revert on requestRedeem 0 shares' , async function ( ) {
268+ await expect (
269+ this . mock . connect ( this . delegator1 ) . requestRedeem ( 0 , this . delegator1 , this . delegator1 ) ,
270+ ) . to . be . revertedWithCustomError ( this . mock , 'InvalidShares' ) ;
271+ } ) ;
272+
273+ it ( 'should revert on redeem 0 shares' , async function ( ) {
274+ await expect (
275+ this . mock . connect ( this . delegator1 ) . redeem ( 0 , this . delegator1 , this . delegator1 ) ,
276+ ) . to . be . revertedWithCustomError ( this . mock , 'InvalidShares' ) ;
277+ } ) ;
278+
254279 it ( 'should revert on redeem more than available' , async function ( ) {
255280 await this . mock . connect ( this . delegator1 ) . deposit ( ethers . parseEther ( '10' ) , this . delegator1 ) ;
256281 await this . mock . connect ( this . delegator1 ) . requestRedeem ( ethers . parseEther ( '1' ) , this . delegator1 , this . delegator1 ) ;
0 commit comments