Skip to content

Commit 3183db3

Browse files
authored
Create vesting_tests.move
1 parent 496cdcc commit 3183db3

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

vesting/tests/vesting_tests.move

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#[test_only]
2+
module 0xb35962eed27b9a272d82673f2b7a99e7257b7b1a9af02c1a09143dacbaf498bd::vesting_tests {
3+
use Vesting::vesting;
4+
5+
#[test(admin = @0xA, ben = @0xB)]
6+
public entry fun test_linear_release_ok(admin: &signer, ben: &signer) {
7+
let admin_addr = @0xA;
8+
let ben_addr = @0xB;
9+
10+
vesting::init(admin);
11+
vesting::create(admin, ben_addr, /*total*/ 100, /*start*/ 0, /*end*/ 100);
12+
13+
// t=30 -> 30
14+
vesting::claim(ben, admin_addr, 0, 30);
15+
assert!(vesting::view_balance(admin_addr, ben_addr) == 30, 0);
16+
17+
// t=80 -> стало 80 (доклеймится +50)
18+
vesting::claim(ben, admin_addr, 0, 80);
19+
assert!(vesting::view_balance(admin_addr, ben_addr) == 80, 1);
20+
21+
// t=200 -> стало 100 (доклеймится +20)
22+
vesting::claim(ben, admin_addr, 0, 200);
23+
assert!(vesting::view_balance(admin_addr, ben_addr) == 100, 2);
24+
}
25+
26+
// Негатив: клеймит не бенефициар -> E_NOT_BENEFICIARY = 4
27+
#[test(admin = @0xA, ben = @0xB)]
28+
#[expected_failure(abort_code = 4, location = Vesting::vesting)]
29+
public entry fun test_wrong_beneficiary_fails(admin: &signer, ben: &signer) {
30+
let admin_addr = @0xA;
31+
let ben_addr = @0xB;
32+
33+
vesting::init(admin);
34+
vesting::create(admin, ben_addr, 50, 0, 10);
35+
// Пытается клеймить админ вместо бенефициара
36+
vesting::claim(admin, admin_addr, 0, 5);
37+
}
38+
39+
// Негатив: плохое время в create -> E_BAD_TIME = 3
40+
#[test(admin = @0xA)]
41+
#[expected_failure(abort_code = 3, location = Vesting::vesting)]
42+
public entry fun test_bad_time_fails(admin: &signer) {
43+
vesting::init(admin);
44+
vesting::create(admin, @0xB, 100, /*start*/ 50, /*end*/ 50);
45+
}
46+
}

0 commit comments

Comments
 (0)