vizerror_test.go 887 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // Copyright (c) Tailscale Inc & AUTHORS
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. package vizerror
  4. import (
  5. "errors"
  6. "fmt"
  7. "io/fs"
  8. "testing"
  9. )
  10. func TestNew(t *testing.T) {
  11. err := New("abc")
  12. if err.Error() != "abc" {
  13. t.Errorf(`New("abc").Error() = %q, want %q`, err.Error(), "abc")
  14. }
  15. }
  16. func TestErrorf(t *testing.T) {
  17. err := Errorf("%w", fs.ErrNotExist)
  18. if got, want := err.Error(), "file does not exist"; got != want {
  19. t.Errorf("Errorf().Error() = %q, want %q", got, want)
  20. }
  21. // ensure error wrapping still works
  22. if !errors.Is(err, fs.ErrNotExist) {
  23. t.Errorf("error chain does not contain fs.ErrNotExist")
  24. }
  25. }
  26. func TestAs(t *testing.T) {
  27. verr := New("visible error")
  28. err := fmt.Errorf("wrap: %w", verr)
  29. got, ok := As(err)
  30. if !ok {
  31. t.Errorf("As() return false, want true")
  32. }
  33. if got != verr {
  34. t.Errorf("As() returned error %v, want %v", got, verr)
  35. }
  36. }