(t *testing.T)
| 66 | } |
| 67 | |
| 68 | func TestIsGoneError(t *testing.T) { |
| 69 | tests := []struct { |
| 70 | name string |
| 71 | err error |
| 72 | want bool |
| 73 | }{ |
| 74 | {name: "nil error", err: nil, want: false}, |
| 75 | {name: "http 410 gone", err: errors.New("HTTP 410: Gone"), want: true}, |
| 76 | {name: "parenthesized http 410", err: errors.New("gh: workflow logs expired (HTTP 410)"), want: true}, |
| 77 | {name: "status 410", err: errors.New("request failed with status 410"), want: true}, |
| 78 | {name: "wrapped http 410", err: fmt.Errorf("request failed: %w", errors.New("HTTP 410: logs unavailable")), want: true}, |
| 79 | {name: "gone without http status", err: errors.New("artifact gone"), want: false}, |
| 80 | {name: "gone away", err: errors.New("connection has gone away"), want: false}, |
| 81 | {name: "bare 410 in message", err: errors.New("server returned 410"), want: false}, |
| 82 | {name: "403 Forbidden", err: errors.New("HTTP 403: Forbidden"), want: false}, |
| 83 | {name: "generic error", err: errors.New("something went wrong"), want: false}, |
| 84 | } |
| 85 | |
| 86 | for _, tt := range tests { |
| 87 | t.Run(tt.name, func(t *testing.T) { |
| 88 | got := errorutil.IsGoneError(tt.err) |
| 89 | assert.Equal(t, tt.want, got, "IsGoneError result mismatch for subtest %s", tt.name) |
| 90 | }) |
| 91 | } |
| 92 | } |
nothing calls this directly
no test coverage detected