1 package assert_test
2
3 import (
4 "fmt"
5 "io"
6 "testing"
7
8 simpleassert "cdr.dev/slog/internal/assert"
9 "cdr.dev/slog/sloggers/slogtest/assert"
10 )
11
12 func TestEqual(t *testing.T) {
13 t.Parallel()
14
15 tb := &fakeTB{}
16 assert.Equal(tb, "meow", 3, 3)
17
18 defer func() {
19 recover()
20 simpleassert.Equal(t, "fatals", 1, tb.fatals)
21 }()
22 assert.Equal(tb, "meow", 3, 4)
23 }
24
25 func TestEqual_error(t *testing.T) {
26 t.Parallel()
27
28 tb := &fakeTB{}
29 assert.Equal(tb, "meow", io.EOF, fmt.Errorf("failed: %w", io.EOF))
30
31 defer func() {
32 recover()
33 simpleassert.Equal(t, "fatals", 1, tb.fatals)
34 }()
35 assert.Equal(tb, "meow", io.ErrClosedPipe, fmt.Errorf("failed: %w", io.EOF))
36 }
37
38 func TestErrorContains(t *testing.T) {
39 t.Parallel()
40
41 tb := &fakeTB{}
42 assert.ErrorContains(tb, "meow", io.EOF, "eof")
43
44 defer func() {
45 recover()
46 simpleassert.Equal(t, "fatals", 1, tb.fatals)
47
48 }()
49 assert.ErrorContains(tb, "meow", io.ErrClosedPipe, "eof")
50
51 }
52 func TestSuccess(t *testing.T) {
53 t.Parallel()
54
55 tb := &fakeTB{}
56 assert.Success(tb, "meow", nil)
57
58 defer func() {
59 recover()
60 simpleassert.Equal(t, "fatals", 1, tb.fatals)
61 }()
62 assert.Success(tb, "meow", io.EOF)
63 }
64
65 func TestTrue(t *testing.T) {
66 t.Parallel()
67
68 tb := &fakeTB{}
69 assert.True(tb, "meow", true)
70
71 defer func() {
72 recover()
73 simpleassert.Equal(t, "fatals", 1, tb.fatals)
74 }()
75 assert.True(tb, "meow", false)
76 }
77
78 func TestFalse(t *testing.T) {
79 t.Parallel()
80
81 tb := &fakeTB{}
82 assert.False(tb, "woof", false)
83
84 defer func() {
85 recover()
86 simpleassert.Equal(t, "fatals", 1, tb.fatals)
87 }()
88 assert.False(tb, "woof", true)
89 }
90
91 func TestError(t *testing.T) {
92 t.Parallel()
93
94 tb := &fakeTB{}
95 assert.Error(tb, "meow", io.EOF)
96
97 defer func() {
98 recover()
99 simpleassert.Equal(t, "fatals", 1, tb.fatals)
100 }()
101 assert.Error(tb, "meow", nil)
102 }
103
104 type fakeTB struct {
105 testing.TB
106
107 errors int
108 fatals int
109 }
110
111 func (tb *fakeTB) Helper() {}
112
113 func (tb *fakeTB) Log(v ...interface{}) {}
114
115 func (tb *fakeTB) Error(v ...interface{}) {
116 tb.errors++
117 }
118
119 func (tb *fakeTB) Fatal(v ...interface{}) {
120 tb.fatals++
121 panic(fmt.Sprint(v...))
122 }
123
View as plain text