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