Search Apps Documentation Source Content File Folder Download Copy Actions Download

err_test.gno

1.90 Kb ยท 83 lines
 1package pkgerr
 2
 3import (
 4	"errors"
 5	"strings"
 6	"testing"
 7)
 8
 9const pkgPath = "gno.land/r/leon/test"
10
11var prefix = strings.TrimPrefix(pkgPath, "gno.land/")
12
13func TestNew(t *testing.T) {
14	err := New("my error message")
15	if err == nil {
16		t.Fatal("Expected an error, got nil")
17	}
18
19	testing.SetRealm(testing.NewCodeRealm(pkgPath))
20
21	expected := prefix + ": my error message"
22
23	if err.Error() != expected {
24		t.Errorf("Expected error message %q, got %q", expected, err.Error())
25	}
26}
27
28func TestWrap(t *testing.T) {
29	testing.SetRealm(testing.NewCodeRealm(pkgPath))
30
31	originalErr := errors.New("original error")
32	wrappedErr := Wrap(originalErr)
33	if wrappedErr == nil {
34		t.Fatal("Expected an error, got nil")
35	}
36
37	expected := prefix + ": original error"
38	if wrappedErr.Error() != expected {
39		t.Errorf("Expected error message %q, got %q", expected, wrappedErr.Error())
40	}
41}
42
43func TestUnwrap(t *testing.T) {
44	testing.SetRealm(testing.NewCodeRealm(pkgPath))
45	originalErr := errors.New("original error")
46	wrappedErr := Wrap(originalErr)
47
48	unwrappedErr := wrappedErr.(*pkgErr).Unwrap()
49	if unwrappedErr != originalErr {
50		t.Errorf("Expected unwrapped error %v, got %v", originalErr, unwrappedErr)
51	}
52}
53
54func TestErrorMethod(t *testing.T) {
55	testing.SetRealm(testing.NewCodeRealm(pkgPath))
56	originalErr := errors.New("original error")
57	pkgErr := &pkgErr{originalErr: originalErr}
58
59	expected := prefix + ": original error"
60	if pkgErr.Error() != expected {
61		t.Errorf("Expected error message %q, got %q", expected, pkgErr.Error())
62	}
63}
64
65func TestWrapNilError(t *testing.T) {
66	err := Wrap(nil)
67	if err != nil {
68		t.Errorf("Expected nil error, got %v", err)
69	}
70}
71
72func TestNewWithEmptyMessage(t *testing.T) {
73	testing.SetRealm(testing.NewCodeRealm(pkgPath))
74	err := New("")
75	if err == nil {
76		t.Fatal("Expected an error, got nil")
77	}
78
79	expected := prefix + ": "
80	if err.Error() != expected {
81		t.Errorf("Expected error message %q, got %q", expected, err.Error())
82	}
83}