diff --git a/.gitignore b/.gitignore index f9f3688..4c57768 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ target/ .DS_Store .soroban/ + +fix.md claude.md diff --git a/creator-keys/tests/protocol_config_initialized.rs b/creator-keys/tests/protocol_config_initialized.rs index abadc03..e555021 100644 --- a/creator-keys/tests/protocol_config_initialized.rs +++ b/creator-keys/tests/protocol_config_initialized.rs @@ -1,6 +1,9 @@ //! Tests for the is_protocol_config_initialized read-only method. -use creator_keys::{CreatorKeysContract, CreatorKeysContractClient}; +mod contract_test_env; + +use contract_test_env::{register_creator_keys, set_protocol_fee_bps, test_env_with_auths}; +use creator_keys::{ContractError, CreatorKeysContract, CreatorKeysContractClient}; use soroban_sdk::{testutils::Address as _, Env}; #[test] @@ -46,3 +49,17 @@ fn test_is_protocol_config_initialized_is_read_only() { assert_eq!(first_read, second_read); assert!(first_read); } + +#[test] +fn test_protocol_config_state_is_unchanged_after_rejected_reinitialization() { + let env = test_env_with_auths(); + let (client, _) = register_creator_keys(&env); + let admin = set_protocol_fee_bps(&env, &client, 9000u32, 1000u32); + + let result = client.try_set_fee_config(&admin, &8000u32, &1000u32); + assert_eq!(result, Err(Ok(ContractError::InvalidFeeConfig))); + + let config = client.get_fee_config().unwrap(); + assert_eq!(config.creator_bps, 9000); + assert_eq!(config.protocol_bps, 1000); +}