mirror of
https://github.com/coder/coder.git
synced 2025-07-18 14:17:22 +00:00
fix: use negative deadline to ensure timeout in TestWebhook/timeout
(#14498)
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
package dispatch_test
|
package dispatch_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -41,10 +42,10 @@ func TestWebhook(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
serverURL string
|
serverURL string
|
||||||
serverTimeout time.Duration
|
serverDeadline time.Time
|
||||||
serverFn func(uuid.UUID, http.ResponseWriter, *http.Request)
|
serverFn func(uuid.UUID, http.ResponseWriter, *http.Request)
|
||||||
|
|
||||||
expectSuccess bool
|
expectSuccess bool
|
||||||
expectRetryable bool
|
expectRetryable bool
|
||||||
@ -76,10 +77,13 @@ func TestWebhook(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "timeout",
|
name: "timeout",
|
||||||
serverTimeout: time.Nanosecond,
|
serverDeadline: time.Now().Add(-time.Hour),
|
||||||
expectSuccess: false,
|
expectSuccess: false,
|
||||||
expectRetryable: true,
|
expectRetryable: true,
|
||||||
expectErr: "request timeout",
|
serverFn: func(u uuid.UUID, writer http.ResponseWriter, request *http.Request) {
|
||||||
|
t.Fatalf("should not get here")
|
||||||
|
},
|
||||||
|
expectErr: "request timeout",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "non-200 response",
|
name: "non-200 response",
|
||||||
@ -99,14 +103,20 @@ func TestWebhook(t *testing.T) {
|
|||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
timeout := testutil.WaitLong
|
var (
|
||||||
if tc.serverTimeout > 0 {
|
ctx context.Context
|
||||||
timeout = tc.serverTimeout
|
cancel context.CancelFunc
|
||||||
|
)
|
||||||
|
|
||||||
|
if !tc.serverDeadline.IsZero() {
|
||||||
|
ctx, cancel = context.WithDeadline(context.Background(), tc.serverDeadline)
|
||||||
|
} else {
|
||||||
|
ctx, cancel = context.WithTimeout(context.Background(), testutil.WaitLong)
|
||||||
}
|
}
|
||||||
|
t.Cleanup(cancel)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
err error
|
err error
|
||||||
ctx = testutil.Context(t, timeout)
|
|
||||||
msgID = uuid.New()
|
msgID = uuid.New()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user