25 lines
730 B
Go
25 lines
730 B
Go
package executor
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"testing"
|
|
)
|
|
|
|
func TestUpstreamWebsocketReplayRequiredError(t *testing.T) {
|
|
err := NewUpstreamWebsocketReplayRequiredError()
|
|
if !IsUpstreamWebsocketReplayRequired(err) {
|
|
t.Fatal("replay error was not recognized")
|
|
}
|
|
if !IsUpstreamWebsocketReplayRequired(fmt.Errorf("wrapped: %w", err)) {
|
|
t.Fatal("wrapped replay error was not recognized")
|
|
}
|
|
statusErr, ok := err.(interface{ StatusCode() int })
|
|
if !ok || statusErr.StatusCode() != http.StatusUpgradeRequired {
|
|
t.Fatalf("replay error = %T %v, want status 426", err, err)
|
|
}
|
|
requestErr, ok := err.(RequestScopedError)
|
|
if !ok || !requestErr.IsRequestScoped() {
|
|
t.Fatalf("replay error = %T, want request scoped", err)
|
|
}
|
|
}
|