-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patherror_test.go
More file actions
139 lines (108 loc) · 2.64 KB
/
error_test.go
File metadata and controls
139 lines (108 loc) · 2.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package assert_test
import (
"errors"
"fmt"
"sync"
"testing"
"go.arcalot.io/assert"
)
func TestNoError(externalT *testing.T) {
var internalT1 testing.T // Should fail
var internalT2 testing.T // Should not fail
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
// Should fail
assert.NoError(&internalT1, errors.New("This is an error"))
}()
go func() {
defer wg.Done()
// Should not fail
assert.NoError(&internalT2, nil)
}()
wg.Wait()
if !internalT1.Failed() {
externalT.Fatalf("NoError() should have failed, but didn't.")
}
if internalT2.Failed() {
externalT.Fatalf("NoError() should not have failed, but did.")
}
}
func TestNoErrorR(externalT *testing.T) {
var internalT1 testing.T // Should fail
var internalT2 testing.T // Should not fail
var wg sync.WaitGroup
wg.Add(2)
returned1 := false
returned2 := false
go func() {
defer wg.Done()
// Should fail
returned1 = assert.NoErrorR[bool](&internalT1)(true, errors.New("This is an error"))
}()
go func() {
defer wg.Done()
// Should not fail
returned2 = assert.NoErrorR[bool](&internalT2)(true, nil)
}()
wg.Wait()
if !internalT1.Failed() {
externalT.Fatalf("NoErrorR() should have failed, but didn't.")
}
if returned1 != false {
externalT.Fatalf("NoErrorR() didn't properly fail, resulting in a returned value.")
}
if internalT2.Failed() {
externalT.Fatalf("NoErrorR() should not have failed, but did.")
}
if returned2 == false {
externalT.Fatalf("NoErrorR() should have returned a value, but it didn't.")
}
}
func TestError(externalT *testing.T) {
var internalT1 testing.T // Should fail
var internalT2 testing.T // Should not fail
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
// Should fail
assert.Error(&internalT1, nil)
}()
go func() {
defer wg.Done()
// Should not fail
assert.Error(&internalT2, fmt.Errorf("this is an error"))
}()
wg.Wait()
if !internalT1.Failed() {
externalT.Fatalf("Error() should have failed, but didn't.")
}
if internalT2.Failed() {
externalT.Fatalf("Error() should not have failed, but did.")
}
}
func TestErrorR(externalT *testing.T) {
var internalT1 testing.T // Should fail
var internalT2 testing.T // Should not fail
var wg sync.WaitGroup
wg.Add(2)
go func() {
defer wg.Done()
// Should fail
assert.ErrorR(&internalT1)(true, nil)
}()
go func() {
defer wg.Done()
// Should not fail
assert.ErrorR(&internalT2)(true, errors.New("This is an error"))
}()
wg.Wait()
if !internalT1.Failed() {
externalT.Fatalf("ErrorR() should have failed, but didn't.")
}
if internalT2.Failed() {
externalT.Fatalf("ErrorR() should not have failed, but did.")
}
}