Skip to content

Commit 7ea8724

Browse files
author
root28root
committed
minimarket: add basic unit tests (pos/neg)
1 parent 8007fc6 commit 7ea8724

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

minimarket/sources/minimarket.move

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,3 +146,41 @@ module minimarket::minimarket {
146146
withdraw_fees(admin, admin_addr);
147147
}
148148
}
149+
150+
#[test_only]
151+
module minimarket::minimarket_tests {
152+
use std::signer;
153+
use minimarket::minimarket;
154+
155+
#[test(admin = @0xA)]
156+
public entry fun test_init_ok(admin: &signer) {
157+
minimarket::init(admin, 250); // 2.5%
158+
}
159+
160+
#[test(admin = @0xB)]
161+
#[expected_failure(abort_code = 1)] // E_ALREADY_INITIALIZED
162+
public entry fun test_init_twice_fail(admin: &signer) {
163+
minimarket::init(admin, 0);
164+
minimarket::init(admin, 0);
165+
}
166+
167+
#[test(s = @0xC)]
168+
public entry fun test_list_buy_withdraw(s: &signer) {
169+
let a = signer::address_of(s);
170+
minimarket::init(s, 1000); // 10% комиссия
171+
minimarket::list(s, a, 0, 10_000); // новый слот
172+
minimarket::buy(s, a, 0, 10_000); // покупка
173+
minimarket::withdraw_fees(s, a); // админ = продавец
174+
let bal = minimarket::view_balance(a, a);
175+
assert!(bal == 10_000, 0);
176+
}
177+
178+
#[test(admin = @0xD)]
179+
#[expected_failure(abort_code = 8)] // E_PRICE_MISMATCH
180+
public entry fun test_buy_price_mismatch(admin: &signer) {
181+
let a = signer::address_of(admin);
182+
minimarket::init(admin, 250);
183+
minimarket::list(admin, a, 0, 10_000);
184+
minimarket::buy(admin, a, 0, 9_999);
185+
}
186+
}

0 commit comments

Comments
 (0)