|
1 | | -#![cfg(test)] |
2 | | - |
3 | 1 | use super::Error as ContractError; |
4 | 2 | use super::*; |
5 | 3 | use soroban_sdk::{ |
@@ -178,75 +176,6 @@ fn test_registration_ledger_key_helper_keeps_legacy_variant() { |
178 | 176 | ); |
179 | 177 | } |
180 | 178 |
|
181 | | -#[test] |
182 | | -fn test_update_creator_id_authorized() { |
183 | | - let env = Env::default(); |
184 | | - env.mock_all_auths(); |
185 | | - |
186 | | - let contract_id = env.register_contract(None, CreatorRegistryContract); |
187 | | - let client = CreatorRegistryContractClient::new(&env, &contract_id); |
188 | | - let admin = Address::generate(&env); |
189 | | - let creator = Address::generate(&env); |
190 | | - |
191 | | - client.initialize(&admin); |
192 | | - client.register_creator(&creator, &creator, &111); |
193 | | - |
194 | | - client.update_creator_id(&creator, &creator, &222); |
195 | | - |
196 | | - assert_eq!(client.get_creator_id(&creator), Some(222)); |
197 | | - |
198 | | - let events = env.events().all(); |
199 | | - let found = events.iter().any(|event| { |
200 | | - let topic: soroban_sdk::Symbol = event.1.get(0).unwrap().try_into_val(&env).unwrap(); |
201 | | - topic == soroban_sdk::Symbol::new(&env, "creator_updated") |
202 | | - }); |
203 | | - assert!(found, "creator_updated event not emitted"); |
204 | | -} |
205 | | - |
206 | | -#[test] |
207 | | -fn test_update_creator_id_unauthorized_fails() { |
208 | | - let env = Env::default(); |
209 | | - env.mock_all_auths(); |
210 | | - |
211 | | - let contract_id = env.register_contract(None, CreatorRegistryContract); |
212 | | - let client = CreatorRegistryContractClient::new(&env, &contract_id); |
213 | | - let admin = Address::generate(&env); |
214 | | - let creator = Address::generate(&env); |
215 | | - let rando = Address::generate(&env); |
216 | | - |
217 | | - client.initialize(&admin); |
218 | | - client.register_creator(&creator, &creator, &111); |
219 | | - |
220 | | - let result = client.try_update_creator_id(&rando, &creator, &222); |
221 | | - assert_eq!( |
222 | | - result, |
223 | | - Err(Ok(SorobanError::from_contract_error( |
224 | | - Error::Unauthorized as u32, |
225 | | - ))) |
226 | | - ); |
227 | | -} |
228 | | - |
229 | | -#[test] |
230 | | -fn test_update_creator_id_not_registered_fails() { |
231 | | - let env = Env::default(); |
232 | | - env.mock_all_auths(); |
233 | | - |
234 | | - let contract_id = env.register_contract(None, CreatorRegistryContract); |
235 | | - let client = CreatorRegistryContractClient::new(&env, &contract_id); |
236 | | - let admin = Address::generate(&env); |
237 | | - let creator = Address::generate(&env); |
238 | | - |
239 | | - client.initialize(&admin); |
240 | | - |
241 | | - let result = client.try_update_creator_id(&admin, &creator, &222); |
242 | | - assert_eq!( |
243 | | - result, |
244 | | - Err(Ok(SorobanError::from_contract_error( |
245 | | - Error::NotRegistered as u32, |
246 | | - ))) |
247 | | - ); |
248 | | -} |
249 | | - |
250 | 179 | // ─── Rate limit boundary tests (issue #320) ─────────────────────────────────── |
251 | 180 |
|
252 | 181 | /// Advance the ledger sequence by `n` ledgers. |
@@ -399,16 +328,19 @@ fn rate_limit_is_per_caller_not_global() { |
399 | 328 | fn first_registration_is_never_rate_limited() { |
400 | 329 | let env = Env::default(); |
401 | 330 | env.mock_all_auths(); |
| 331 | + |
| 332 | + // High ledger must be set before instance storage is written: jumping here |
| 333 | + // after initialize would exceed the entry TTL and archive keys (SDK 21.7+). |
| 334 | + env.ledger().with_mut(|li| li.sequence_number = 99_999); |
| 335 | + |
402 | 336 | let contract_id = env.register_contract(None, CreatorRegistryContract); |
403 | 337 | let client = CreatorRegistryContractClient::new(&env, &contract_id); |
404 | 338 | let admin = Address::generate(&env); |
405 | 339 | let creator = Address::generate(&env); |
406 | 340 |
|
407 | 341 | client.initialize(&admin); |
408 | 342 |
|
409 | | - // Jump to a high ledger — no prior registration so limit cannot apply |
410 | | - env.ledger().with_mut(|li| li.sequence_number = 99_999); |
411 | | - |
| 343 | + // No prior registration for admin — rate limit cannot apply |
412 | 344 | client.register_creator(&admin, &creator, &99u64); |
413 | 345 |
|
414 | 346 | assert_eq!( |
|
0 commit comments