Some checks failed
CI / Run tests and lints (push) Failing after 29s
CI / Build CLI docs (push) Has been skipped
CI / Run Playwright end-to-end tests (mysql) (push) Failing after 3s
CI / Run Playwright end-to-end tests (postgres) (push) Failing after 2s
CI / Run Playwright end-to-end tests (sqlite) (push) Failing after 3s
CodeQL / Analyze (go) (push) Failing after 4s
CodeQL / Analyze (javascript) (push) Failing after 3s
Docker Image Scanners / scanners (push) Failing after 4s
Synchronize Issue Labels / Synchronize Issue Labels (push) Has been skipped
CI / Run end-to-end tests (postgres) (push) Failing after 19s
CI / Run end-to-end tests (sqlite) (push) Failing after 2s
CI / Run Playwright end-to-end tests (cockroach) (push) Failing after 2s
CI / Draft newsletter (push) Has been skipped
CI / Generate release (push) Has been skipped
CI / Pending approval Slack notification (push) Has been skipped
CI / Send newsletter (push) Has been skipped
35 lines
819 B
TypeScript
35 lines
819 B
TypeScript
// Copyright © 2024 Ory Corp
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
import { APIResponse } from "playwright-core"
|
|
import { expect } from "../fixtures"
|
|
import { OperationOptions } from "retry"
|
|
|
|
export type RetryOptions = OperationOptions
|
|
|
|
export const retryOptions: RetryOptions = {
|
|
retries: 20,
|
|
factor: 1,
|
|
maxTimeout: 500,
|
|
minTimeout: 250,
|
|
randomize: false,
|
|
}
|
|
|
|
export async function expectJSONResponse<T>(
|
|
res: APIResponse,
|
|
{ statusCode = 200, message }: { statusCode?: number; message?: string } = {},
|
|
): Promise<T> {
|
|
await expect(res).toMatchResponseData({
|
|
statusCode,
|
|
failureHint: message,
|
|
})
|
|
try {
|
|
return (await res.json()) as T
|
|
} catch (e) {
|
|
const body = await res.text()
|
|
throw Error(
|
|
`Expected to be able to parse body as json: ${e} (body: ${body})`,
|
|
)
|
|
}
|
|
}
|