grc20reg_test.gno
1.79 Kb ยท 55 lines
1package grc20reg
2
3import (
4 "std"
5 "strings"
6 "testing"
7
8 "gno.land/p/demo/tokens/grc20"
9 "gno.land/p/nt/urequire"
10)
11
12func TestRegistry(t *testing.T) {
13 testing.SetRealm(std.NewCodeRealm("gno.land/r/demo/foo"))
14 realmAddr := std.CurrentRealm().PkgPath()
15 token, ledger := grc20.NewToken("TestToken", "TST", 4)
16 ledger.Mint(std.CurrentRealm().Address(), 1234567)
17 // register
18 Register(cross, token, "")
19 regToken := Get(realmAddr)
20 urequire.True(t, regToken != nil, "expected to find a token") // fixme: use urequire.NotNil
21 urequire.Equal(t, regToken.GetSymbol(), "TST")
22
23 expected := `- **TestToken** - [gno.land/r/demo/foo](/r/demo/foo) - [info](/r/demo/grc20reg:gno.land/r/demo/foo)
24`
25 got := Render("")
26 urequire.True(t, strings.Contains(got, expected))
27 // 404
28 invalidToken := Get("0xdeadbeef")
29 urequire.True(t, invalidToken == nil)
30
31 // register with a slug
32 Register(cross, token, "mySlug")
33 regToken = Get(realmAddr + ".mySlug")
34 urequire.True(t, regToken != nil, "expected to find a token") // fixme: use urequire.NotNil
35 urequire.Equal(t, regToken.GetSymbol(), "TST")
36
37 // override
38 Register(cross, token, "")
39 regToken = Get(realmAddr + "")
40 urequire.True(t, regToken != nil, "expected to find a token") // fixme: use urequire.NotNil
41 urequire.Equal(t, regToken.GetSymbol(), "TST")
42
43 got = Render("")
44 urequire.True(t, strings.Contains(got, `- **TestToken** - [gno.land/r/demo/foo](/r/demo/foo) - [info](/r/demo/grc20reg:gno.land/r/demo/foo)`))
45 urequire.True(t, strings.Contains(got, `- **TestToken** - [gno.land/r/demo/foo](/r/demo/foo).mySlug - [info](/r/demo/grc20reg:gno.land/r/demo/foo.mySlug)`))
46
47 expected = `# TestToken
48- symbol: **TST**
49- realm: [gno.land/r/demo/foo](/r/demo/foo).mySlug
50- decimals: 4
51- total supply: 1234567
52`
53 got = Render("gno.land/r/demo/foo.mySlug")
54 urequire.Equal(t, expected, got)
55}