diff --git a/crates/cdk/src/mint/mod.rs b/crates/cdk/src/mint/mod.rs index 566d0cb0..b9fe6a97 100644 --- a/crates/cdk/src/mint/mod.rs +++ b/crates/cdk/src/mint/mod.rs @@ -1498,4 +1498,37 @@ mod tests { Ok(()) } + + #[tokio::test] + async fn mint_mod_rotate_keyset() -> Result<(), Error> { + let config: MintConfig = Default::default(); + let mint = create_mint(config).await?; + + let keysets = mint.keysets().await.unwrap(); + assert!(keysets.keysets.is_empty()); + + // generate the first keyset and set it to active + mint.rotate_keyset(CurrencyUnit::default(), 0, 1, 1).await?; + + let keysets = mint.keysets().await.unwrap(); + assert!(keysets.keysets.len().eq(&1)); + assert!(keysets.keysets[0].active); + let first_keyset_id = keysets.keysets[0].id; + + // set the first keyset to inactive and generate a new keyset + mint.rotate_keyset(CurrencyUnit::default(), 1, 1, 1).await?; + + let keysets = mint.keysets().await.unwrap(); + + assert!(keysets.keysets.len().eq(&2)); + for keyset in &keysets.keysets { + if keyset.id == first_keyset_id { + assert!(!keyset.active); + } else { + assert!(keyset.active); + } + } + + Ok(()) + } }