setup_test.gno
1.94 Kb · 66 lines
1package craft
2
3import (
4 "chain"
5 "chain/banker"
6 "testing"
7
8 "gno.land/p/nt/testutils/v0"
9 "gno.land/r/akkadia/beta/admin"
10 "gno.land/r/akkadia/beta/equipment"
11 "gno.land/r/akkadia/beta/item"
12)
13
14var craftTest = struct {
15 Admin, Owner, Other, FeeCollector, PkgAddr address
16 SetupDone bool
17}{
18 Admin: testutils.TestAddress("craftAdmin"),
19 Owner: testutils.TestAddress("craftOwner"),
20 Other: testutils.TestAddress("craftOther"),
21 FeeCollector: testutils.TestAddress("craftFeeCollector"),
22 PkgAddr: chain.PackageAddress("gno.land/r/akkadia/beta/craft"),
23}
24
25func setupCraftTest(cur realm, t *testing.T) {
26 t.Helper()
27 resetCraftState()
28 testing.SetOriginSend(chain.Coins{})
29 if !craftTest.SetupDone {
30 originalAdmin := admin.GetAdmin()
31 testing.SetOriginCaller(originalAdmin)
32 testing.SetRealm(testing.NewUserRealm(originalAdmin))
33 admin.TransferAdmin(cross(cur), craftTest.Admin)
34 testing.SetOriginCaller(craftTest.Admin)
35 testing.SetRealm(testing.NewUserRealm(craftTest.Admin))
36 admin.AcceptAdmin(cross(cur))
37 admin.SetFeeCollector(cross(cur), craftTest.FeeCollector)
38 craftTest.SetupDone = true
39 }
40
41 testing.SetOriginCaller(craftTest.Admin)
42 testing.SetRealm(testing.NewUserRealm(craftTest.Admin))
43 item.SetMinterRealm(cross(cur), "gno.land/r/akkadia/beta/craft")
44 equipment.SetMinterRealm(cross(cur), "gno.land/r/akkadia/beta/craft")
45}
46
47func mintCraftItem(cur realm, tokenID string, amount int64) {
48 testing.SetOriginCaller(craftTest.Admin)
49 testing.SetRealm(testing.NewUserRealm(craftTest.Admin))
50 item.SafeMint(cross(cur), craftTest.Owner, tokenID, amount)
51}
52
53func defaultCraftFeeCoins() chain.Coins {
54 return chain.Coins{{"ugnot", defaultCraftFee}}
55}
56
57func payCraftFee(coins chain.Coins) {
58 if len(coins) > 0 {
59 testing.IssueCoins(craftTest.PkgAddr, coins)
60 }
61 testing.SetOriginSend(coins)
62}
63
64func ugnotBalanceForTest(addr address) int64 {
65 return banker.NewReadonlyBanker().GetCoins(addr).AmountOf("ugnot")
66}