diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/gobang.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/gobang.go b/tests/gobang.go index be33eb4..9d42ca9 100644 --- a/tests/gobang.go +++ b/tests/gobang.go @@ -3,6 +3,7 @@ package gobang import ( "encoding/json" "errors" + "fmt" "log/slog" "os" "strings" @@ -48,6 +49,32 @@ func test_ValidateSQLTablePrefix() { }) } +func test_WrapErrors() { + TestStart("WrapErrors()") + + Testing("nil for empty args", func() { + TAssertEqual(WrapErrors(), nil) + }) + + Testing("nil when all args are nil", func() { + TAssertEqual(WrapErrors(nil, nil, nil), nil) + }) + + Testing("if only 1 is an error, return it", func() { + err := errors.New("my error") + TAssertEqual(WrapErrors(nil, nil, err), err) + }) + + Testing("otherwise wrap them, from right to left", func() { + err1 := errors.New("error 1") + err2 := errors.New("error 2") + expected1 := fmt.Errorf("error %w on top of %w", err1, err2) + expected2 := fmt.Errorf("error %w on top of %w", err2, err1) + TAssertEqual(WrapErrors(nil, err1, nil, err2), expected1) + TAssertEqual(WrapErrors(err2, nil, nil, err1), expected2) + }) +} + func test_SomeError() { TestStart("SomeError()") @@ -763,8 +790,10 @@ func test_setHostname() { } + func MainTest() { test_ValidateSQLTablePrefix() + test_WrapErrors() test_SomeError() test_SomeFnError() test_Random() |