snapshot of https://github.com/ory/kratos.git (master, 2026-09-15; blobs > 131072B omitted)
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
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
This commit is contained in:
104
test/e2e/cypress/helpers/index.ts
Normal file
104
test/e2e/cypress/helpers/index.ts
Normal file
@@ -0,0 +1,104 @@
|
||||
// Copyright © 2023 Ory Corp
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
export const email = () => Math.random().toString(36) + "@ory.sh"
|
||||
export const blockedEmail = () =>
|
||||
Math.random().toString(36) + "_blocked" + "@ory.sh"
|
||||
|
||||
export const password = () => Math.random().toString(36)
|
||||
|
||||
export const assertVerifiableAddress =
|
||||
({ isVerified, email }) =>
|
||||
(session) => {
|
||||
const { identity } = session
|
||||
expect(identity).to.have.property("verifiable_addresses")
|
||||
expect(identity.verifiable_addresses).to.have.length(1)
|
||||
|
||||
const address = identity.verifiable_addresses[0]
|
||||
expect(address.id).to.not.be.empty
|
||||
expect(address.verified).to.equal(isVerified)
|
||||
expect(address.value).to.equal(email)
|
||||
|
||||
if (isVerified) {
|
||||
expect(address.verified_at).to.not.be.null
|
||||
} else {
|
||||
expect(address).to.not.have.property("verified_at")
|
||||
}
|
||||
}
|
||||
|
||||
export const assertRecoveryAddress =
|
||||
({ email }) =>
|
||||
({ identity }) => {
|
||||
expect(identity).to.have.property("recovery_addresses")
|
||||
expect(identity.recovery_addresses).to.have.length(1)
|
||||
|
||||
const address = identity.recovery_addresses[0]
|
||||
expect(address.id).to.not.be.empty
|
||||
expect(address.value).to.equal(email)
|
||||
}
|
||||
|
||||
export const parseHtml = (html: string) =>
|
||||
new DOMParser().parseFromString(html, "text/html")
|
||||
|
||||
export const APP_URL = (
|
||||
Cypress.env("app_url") || "http://localhost:4455"
|
||||
).replace(/\/$/, "")
|
||||
|
||||
export const MOBILE_URL = (
|
||||
Cypress.env("mobile_url") || "http://localhost:19006"
|
||||
).replace(/\/$/, "")
|
||||
export const SPA_URL = (
|
||||
Cypress.env("react_url") || "http://localhost:4455"
|
||||
).replace(/\/$/, "")
|
||||
export const KRATOS_ADMIN = (
|
||||
Cypress.env("kratos_admin") || "http://localhost:4434"
|
||||
)
|
||||
.replace()
|
||||
.replace(/\/$/, "")
|
||||
|
||||
export const KRATOS_PUBLIC = (
|
||||
Cypress.env("kratos_public") || "http://localhost:4433"
|
||||
)
|
||||
.replace()
|
||||
.replace(/\/$/, "")
|
||||
|
||||
export const MAIL_API = (
|
||||
Cypress.env("mail_url") || "http://localhost:4437"
|
||||
).replace(/\/$/, "")
|
||||
|
||||
export const website = "https://www.ory.sh/"
|
||||
|
||||
export const gen = {
|
||||
email,
|
||||
blockedEmail,
|
||||
password,
|
||||
identity: () => ({ email: email(), password: password() }),
|
||||
identityWithWebsite: () => ({
|
||||
email: email(),
|
||||
password: password(),
|
||||
fields: { "traits.website": "https://www.ory.sh" },
|
||||
}),
|
||||
}
|
||||
|
||||
// Format is
|
||||
export const verifyHrefPattern =
|
||||
/^http:.*\/self-service\/verification\?(((&|)code|(&|)token|(&|)flow)=([\-a-zA-Z0-9]+)){2}$/
|
||||
|
||||
// intervals define how long to wait for something,
|
||||
export const pollInterval = 250 // how long to wait before retry
|
||||
|
||||
// Adding 1+ second on top because MySQL doesn't do millisecs.
|
||||
export const verifyLifespan = 5000 + 1000
|
||||
export const privilegedLifespan = 5000 + 1000
|
||||
|
||||
export const appPrefix = (app) => `[data-testid="app-${app}"] `
|
||||
|
||||
export const codeRegex = /(\d{6})/
|
||||
|
||||
export function extractOTPCode(body: string): string | null {
|
||||
const result = codeRegex.exec(body)
|
||||
if (result != null && result.length > 0) {
|
||||
return result[0]
|
||||
}
|
||||
return null
|
||||
}
|
||||
Reference in New Issue
Block a user