MCPcopy Create free account
hub / github.com/github/gh-aw / TestIsForbiddenError

Function TestIsForbiddenError

pkg/errorutil/errors_test.go:42–66  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

40}
41
42func TestIsForbiddenError(t *testing.T) {
43 tests := []struct {
44 name string
45 err error
46 want bool
47 }{
48 {name: "nil error", err: nil, want: false},
49 {name: "http 403 forbidden", err: errors.New("HTTP 403: Forbidden"), want: true},
50 {name: "parenthesized http 403", err: errors.New("gh: API rate limit exceeded (HTTP 403)"), want: true},
51 {name: "status 403", err: errors.New("request failed with status 403"), want: true},
52 {name: "wrapped http 403", err: fmt.Errorf("request failed: %w", errors.New("HTTP 403: access denied")), want: true},
53 {name: "forbidden without http status", err: errors.New("request forbidden"), want: false},
54 {name: "forbidden character", err: errors.New("invalid forbidden character in query"), want: false},
55 {name: "bare 403 in message", err: errors.New("server returned 403"), want: false},
56 {name: "404 Not Found", err: errors.New("HTTP 404: Not Found"), want: false},
57 {name: "generic error", err: errors.New("something went wrong"), want: false},
58 }
59
60 for _, tt := range tests {
61 t.Run(tt.name, func(t *testing.T) {
62 got := errorutil.IsForbiddenError(tt.err)
63 assert.Equal(t, tt.want, got, "IsForbiddenError result mismatch for subtest %s", tt.name)
64 })
65 }
66}
67
68func TestIsGoneError(t *testing.T) {
69 tests := []struct {

Callers

nothing calls this directly

Calls 3

IsForbiddenErrorFunction · 0.92
ErrorfMethod · 0.45
RunMethod · 0.45

Tested by

no test coverage detected