Skip to content

Commit 265540e

Browse files
test: add auction double closure regression (#351)
* test: add auction double closure regression * Fix contract formatting
1 parent 8914fb3 commit 265540e

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

  • contract/contracts/ticket_payment/src

contract/contracts/ticket_payment/src/test.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4465,6 +4465,46 @@ fn test_close_auction_rejects_when_no_bids_exist() {
44654465
assert!(!auction_closed);
44664466
}
44674467

4468+
#[test]
4469+
fn test_close_auction_rejects_double_closure() {
4470+
let env = Env::default();
4471+
env.mock_all_auths();
4472+
4473+
let (client, _admin, usdc_id, _, _) = setup_auction_test(&env);
4474+
let usdc_token = token::StellarAssetClient::new(&env, &usdc_id);
4475+
4476+
let bidder = Address::generate(&env);
4477+
let funded_amount = 20_000_000_000i128;
4478+
usdc_token.mint(&bidder, &funded_amount);
4479+
token::Client::new(&env, &usdc_id).approve(&bidder, &client.address, &funded_amount, &99999);
4480+
4481+
let event_id = String::from_str(&env, "event_1");
4482+
let tier_id = String::from_str(&env, "tier_1");
4483+
let first_payment_id = String::from_str(&env, "payment_1");
4484+
let second_payment_id = String::from_str(&env, "payment_2");
4485+
4486+
client.place_bid(&event_id, &tier_id, &bidder, &usdc_id, &1100_0000000i128);
4487+
4488+
env.ledger().set_timestamp(1001);
4489+
4490+
let first_close = client.try_close_auction(&first_payment_id, &event_id, &tier_id);
4491+
assert_eq!(first_close, Ok(Ok(())));
4492+
4493+
let second_close = client.try_close_auction(&second_payment_id, &event_id, &tier_id);
4494+
assert_eq!(second_close, Err(Ok(TicketPaymentError::AuctionEnded)));
4495+
4496+
let auction_closed = env.as_contract(&client.address, || {
4497+
is_auction_closed(&env, event_id.clone(), tier_id.clone())
4498+
});
4499+
assert!(auction_closed);
4500+
4501+
let payment = client.get_payment_status(&first_payment_id).unwrap();
4502+
assert_eq!(payment.payment_id, first_payment_id);
4503+
assert_eq!(payment.buyer_address, bidder);
4504+
assert_eq!(payment.status, PaymentStatus::Confirmed);
4505+
assert_eq!(client.get_payment_status(&second_payment_id), None);
4506+
}
4507+
44684508
#[test]
44694509
fn test_governance_rejects_slippage_above_fifty_percent() {
44704510
let env = Env::default();

0 commit comments

Comments
 (0)