value_test.gno
4.13 Kb ยท 126 lines
1package expect_test
2
3import (
4 "errors"
5 "testing"
6
7 "gno.land/p/jeronimoalbi/expect"
8)
9
10func TestValue(t *testing.T) {
11 t.Run("equal", func(t *testing.T) {
12 t.Parallel()
13
14 expect.Value(t, "foo").ToEqual("foo")
15 expect.Value(t, []byte("foo")).ToEqual([]byte("foo"))
16 expect.Value(t, stringer("foo")).ToEqual(stringer("foo"))
17 expect.Value(t, true).ToEqual(true)
18 expect.Value(t, float32(1)).ToEqual(float32(1))
19 expect.Value(t, float64(1)).ToEqual(float64(1))
20 expect.Value(t, uint(1)).ToEqual(uint(1))
21 expect.Value(t, uint8(1)).ToEqual(uint8(1))
22 expect.Value(t, uint16(1)).ToEqual(uint16(1))
23 expect.Value(t, uint32(1)).ToEqual(uint32(1))
24 expect.Value(t, uint64(1)).ToEqual(uint64(1))
25 expect.Value(t, int(1)).ToEqual(int(1))
26 expect.Value(t, int8(1)).ToEqual(int8(1))
27 expect.Value(t, int16(1)).ToEqual(int16(1))
28 expect.Value(t, int32(1)).ToEqual(int32(1))
29 expect.Value(t, int64(1)).ToEqual(int64(1))
30 expect.Value(t, errors.New("foo")).ToEqual(errors.New("foo"))
31 expect.Value(t, errors.New("foo bar")).ToContainErrorString("foo")
32 })
33
34 t.Run("not to equal", func(t *testing.T) {
35 t.Parallel()
36
37 expect.Value(t, "foo").Not().ToEqual("bar")
38 expect.Value(t, []byte("foo")).Not().ToEqual([]byte("bar"))
39 expect.Value(t, stringer("foo")).Not().ToEqual(stringer("bar"))
40 expect.Value(t, true).Not().ToEqual(false)
41 expect.Value(t, float32(1)).Not().ToEqual(float32(2))
42 expect.Value(t, float64(1)).Not().ToEqual(float64(2))
43 expect.Value(t, uint(1)).Not().ToEqual(uint(2))
44 expect.Value(t, uint8(1)).Not().ToEqual(uint8(2))
45 expect.Value(t, uint16(1)).Not().ToEqual(uint16(2))
46 expect.Value(t, uint32(1)).Not().ToEqual(uint32(2))
47 expect.Value(t, uint64(1)).Not().ToEqual(uint64(2))
48 expect.Value(t, int(1)).Not().ToEqual(int(2))
49 expect.Value(t, int8(1)).Not().ToEqual(int8(2))
50 expect.Value(t, int16(1)).Not().ToEqual(int16(2))
51 expect.Value(t, int32(1)).Not().ToEqual(int32(2))
52 expect.Value(t, int64(1)).Not().ToEqual(int64(2))
53 expect.Value(t, errors.New("foo")).Not().ToEqual(errors.New("bar"))
54 expect.Value(t, errors.New("foo")).Not().ToContainErrorString("bar")
55 })
56
57 t.Run("to be nil", func(t *testing.T) {
58 t.Parallel()
59 expect.Value(t, nil).ToBeNil()
60 expect.Value(t, (*int)(nil)).ToBeNil() // typed nil
61 })
62
63 t.Run("not to be nil", func(t *testing.T) {
64 t.Parallel()
65 expect.Value(t, "").Not().ToBeNil()
66 })
67
68 t.Run("to be truthy", func(t *testing.T) {
69 t.Parallel()
70
71 expect.Value(t, "true").AsBoolean().ToBeTruthy()
72 expect.Value(t, "TRUE").AsBoolean().ToBeTruthy()
73 expect.Value(t, "t").AsBoolean().ToBeTruthy()
74 expect.Value(t, "1").AsBoolean().ToBeTruthy()
75 expect.Value(t, []byte("true")).AsBoolean().ToBeTruthy()
76 })
77
78 t.Run("not to be truthy", func(t *testing.T) {
79 t.Parallel()
80
81 expect.Value(t, "").AsBoolean().Not().ToBeTruthy()
82 expect.Value(t, "false").AsBoolean().Not().ToBeTruthy()
83 expect.Value(t, "FALSE").AsBoolean().Not().ToBeTruthy()
84 expect.Value(t, "f").AsBoolean().Not().ToBeTruthy()
85 expect.Value(t, "0").AsBoolean().Not().ToBeTruthy()
86 expect.Value(t, []byte(nil)).AsBoolean().Not().ToBeTruthy()
87 expect.Value(t, []byte("false")).AsBoolean().Not().ToBeTruthy()
88 })
89
90 t.Run("to be falsy", func(t *testing.T) {
91 t.Parallel()
92
93 expect.Value(t, "false").AsBoolean().ToBeFalsy()
94 expect.Value(t, "FALSE").AsBoolean().ToBeFalsy()
95 expect.Value(t, "f").AsBoolean().ToBeFalsy()
96 expect.Value(t, "0").AsBoolean().ToBeFalsy()
97 expect.Value(t, "").AsBoolean().ToBeFalsy()
98 expect.Value(t, []byte(nil)).AsBoolean().ToBeFalsy()
99 })
100
101 t.Run("not to be falsy", func(t *testing.T) {
102 t.Parallel()
103
104 expect.Value(t, "true").AsBoolean().Not().ToBeFalsy()
105 expect.Value(t, "TRUE").AsBoolean().Not().ToBeFalsy()
106 expect.Value(t, "t").AsBoolean().Not().ToBeFalsy()
107 expect.Value(t, "1").AsBoolean().Not().ToBeFalsy()
108 expect.Value(t, []byte("true")).AsBoolean().Not().ToBeFalsy()
109 })
110
111 t.Run("to equal stringer", func(t *testing.T) {
112 t.Parallel()
113
114 expect.Value(t, address("foo")).AsString().ToEqual("foo")
115 })
116
117 t.Run("not to equal stringer", func(t *testing.T) {
118 t.Parallel()
119
120 expect.Value(t, address("foo")).AsString().Not().ToEqual("bar")
121 })
122}
123
124type stringer string
125
126func (s stringer) String() string { return string(s) }