@@ -70,3 +70,34 @@ func TestErrorUnwrap(t *testing.T) {
7070 require .True (t , errors .Is (unwrapped , io .EOF ))
7171 })
7272}
73+
74+ func TestErrorIs (t * testing.T ) {
75+ t .Run ("Trivial" , func (t * testing.T ) {
76+ err := testType .NewWithNoMessage ()
77+ require .True (t , errors .Is (err , testType .NewWithNoMessage ()))
78+ require .False (t , errors .Is (err , testTypeBar1 .NewWithNoMessage ()))
79+ })
80+
81+ t .Run ("Wrap" , func (t * testing.T ) {
82+ err := testTypeBar1 .Wrap (testType .NewWithNoMessage (),"" )
83+ require .False (t , errors .Is (err , testType .NewWithNoMessage ()))
84+ require .True (t , errors .Is (err , testTypeBar1 .NewWithNoMessage ()))
85+ })
86+
87+ t .Run ("Supertype" , func (t * testing.T ) {
88+ err := testSubtype0 .Wrap (testTypeBar1 .NewWithNoMessage (),"" )
89+ require .True (t , errors .Is (err , testType .NewWithNoMessage ()))
90+ require .True (t , errors .Is (err , testSubtype0 .NewWithNoMessage ()))
91+ require .False (t , errors .Is (err , testTypeBar1 .NewWithNoMessage ()))
92+ })
93+
94+ t .Run ("Decorate" , func (t * testing.T ) {
95+ err := Decorate (testType .NewWithNoMessage (),"" )
96+ require .True (t , errors .Is (err , testType .NewWithNoMessage ()))
97+ })
98+
99+ t .Run ("DecorateForeign" , func (t * testing.T ) {
100+ err := Decorate (io .EOF ,"" )
101+ require .True (t , errors .Is (err , io .EOF ))
102+ })
103+ }
0 commit comments