This commit is contained in:
Elio Bischof
2025-06-20 14:22:42 +02:00
parent 74923f798c
commit 28e0cbf278
29 changed files with 174 additions and 164 deletions

View File

@@ -24,7 +24,6 @@ public/dist
Makefile Makefile
docker-bake.hcl docker-bake.hcl
docker-bake-ci.hcl **/*.md
*.md **/*.gitignore
.gitignore .git
_temp

View File

@@ -47,6 +47,9 @@ login-test-unit:
login-test-integration-build: login-test-integration-build:
$(BAKE_CLI_WITH_COMMON_ARGS) core-mock login-test-integration login-standalone $(BAKE_CLI_WITH_COMMON_ARGS) core-mock login-test-integration login-standalone
login-test-integration-dev:
$(BAKE_CLI_WITH_COMMON_ARGS) core-mock && docker compose --file ./apps/login-test-integration/docker-compose.yaml run --service-ports --rm core-mock
login-test-integration-run: login-test-integration-cleanup login-test-integration-run: login-test-integration-cleanup
docker compose --file ./apps/login-test-integration/docker-compose.yaml run --rm integration docker compose --file ./apps/login-test-integration/docker-compose.yaml run --rm integration

View File

@@ -0,0 +1,6 @@
*
!idp
!oidcrp
!samlsp
!setup
!sink

View File

@@ -25,18 +25,18 @@ export default defineConfig({
timeout: 300 * 1000, // 5 minutes timeout: 300 * 1000, // 5 minutes
globalTimeout: 30 * 60_000, // 30 minutes globalTimeout: 30 * 60_000, // 30 minutes
/* Reporter to use. See https://playwright.dev/docs/test-reporters */ /* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: [["line"], ["html", { open: process.env.CI ? "never" : "on-failure" , host: "0.0.0.0" }]], reporter: [["line"], ["html", { open: process.env.CI ? "never" : "on-failure", host: "0.0.0.0" }]],
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: { use: {
/* Base URL to use in actions like `await page.goto('/')`. */ /* Base URL to use in actions like `await page.goto('/')`. */
baseURL: process.env.LOGIN_BASE_URL || "http://127.0.0.1:3000", baseURL: process.env.LOGIN_BASE_URL || "http://127.0.0.1:3000",
trace: "retain-on-failure", trace: "retain-on-failure",
headless: true, headless: true,
screenshot: 'only-on-failure', screenshot: "only-on-failure",
video: 'retain-on-failure', video: "retain-on-failure",
ignoreHTTPSErrors: true, ignoreHTTPSErrors: true,
}, },
outputDir: 'test-results', outputDir: "test-results",
/* Configure projects for major browsers */ /* Configure projects for major browsers */
projects: [ projects: [
@@ -79,7 +79,7 @@ export default defineConfig({
/* Run local dev server before starting the tests */ /* Run local dev server before starting the tests */
/* webServer: { /* webServer: {
command: "pnpm start:built", command: "pnpm start:built",
url: process.env.LOGIN_BASE_URL || "http://127.0.0.1:3000", url: process.env.LOGIN_BASE_URL || "http://127.0.0.1:3000",
reuseExistingServer: !!process.env.LOGIN_BASE_URL, reuseExistingServer: !!process.env.LOGIN_BASE_URL,

View File

@@ -4,7 +4,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with Apple IDP", async ({ page }) => { test("login with Apple IDP", async ({ page }) => {
test.skip() test.skip();
// Given an Apple IDP is configured on the organization // Given an Apple IDP is configured on the organization
// Given the user has an Apple added as auth method // Given the user has an Apple added as auth method
// User authenticates with Apple // User authenticates with Apple
@@ -13,7 +13,7 @@ test("login with Apple IDP", async ({ page }) => {
}); });
test("login with Apple IDP - error", async ({ page }) => { test("login with Apple IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given an Apple IDP is configured on the organization // Given an Apple IDP is configured on the organization
// Given the user has an Apple added as auth method // Given the user has an Apple added as auth method
// User is redirected to Apple // User is redirected to Apple
@@ -23,7 +23,7 @@ test("login with Apple IDP - error", async ({ page }) => {
}); });
test("login with Apple IDP, no user existing - auto register", async ({ page }) => { test("login with Apple IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp Apple is configure on the organization as only authencation method // Given idp Apple is configure on the organization as only authencation method
// Given idp Apple is configure with account creation alloweed, and automatic creation enabled // Given idp Apple is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -35,7 +35,7 @@ test("login with Apple IDP, no user existing - auto register", async ({ page })
}); });
test("login with Apple IDP, no user existing - auto register not possible", async ({ page }) => { test("login with Apple IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Apple is configure on the organization as only authencation method // Given idp Apple is configure on the organization as only authencation method
// Given idp Apple is configure with account creation alloweed, and automatic creation enabled // Given idp Apple is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -53,7 +53,7 @@ test("login with Apple IDP, no user existing - auto register not possible", asyn
test("login with Apple IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with Apple IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp Apple is configure on the organization as only authencation method // Given idp Apple is configure on the organization as only authencation method
// Given idp Apple is configure with account creation not allowed, and automatic creation enabled // Given idp Apple is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -65,7 +65,7 @@ test("login with Apple IDP, no user existing - auto register enabled - manual cr
}); });
test("login with Apple IDP, no user linked - auto link", async ({ page }) => { test("login with Apple IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp Apple is configure on the organization as only authencation method // Given idp Apple is configure on the organization as only authencation method
// Given idp Apple is configure with account linking allowed, and linking set to existing email // Given idp Apple is configure with account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com exists // Given user with email address user@zitadel.com exists
@@ -77,7 +77,7 @@ test("login with Apple IDP, no user linked - auto link", async ({ page }) => {
}); });
test("login with Apple IDP, no user linked, linking not possible", async ({ page }) => { test("login with Apple IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Apple is configure on the organization as only authencation method // Given idp Apple is configure on the organization as only authencation method
// Given idp Apple is configure with manually account linking not allowed, and linking set to existing email // Given idp Apple is configure with manually account linking not allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists
@@ -89,7 +89,7 @@ test("login with Apple IDP, no user linked, linking not possible", async ({ page
}); });
test("login with Apple IDP, no user linked, user link successful", async ({ page }) => { test("login with Apple IDP, no user linked, user link successful", async ({ page }) => {
test.skip() test.skip();
// Given idp Apple is configure on the organization as only authencation method // Given idp Apple is configure on the organization as only authencation method
// Given idp Apple is configure with manually account linking allowed, and linking set to existing email // Given idp Apple is configure with manually account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists

View File

@@ -1,7 +1,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with Generic JWT IDP", async ({ page }) => { test("login with Generic JWT IDP", async ({ page }) => {
test.skip() test.skip();
// Given a Generic JWT IDP is configured on the organization // Given a Generic JWT IDP is configured on the organization
// Given the user has Generic JWT IDP added as auth method // Given the user has Generic JWT IDP added as auth method
// User authenticates with the Generic JWT IDP // User authenticates with the Generic JWT IDP
@@ -10,7 +10,7 @@ test("login with Generic JWT IDP", async ({ page }) => {
}); });
test("login with Generic JWT IDP - error", async ({ page }) => { test("login with Generic JWT IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given the Generic JWT IDP is configured on the organization // Given the Generic JWT IDP is configured on the organization
// Given the user has Generic JWT IDP added as auth method // Given the user has Generic JWT IDP added as auth method
// User is redirected to the Generic JWT IDP // User is redirected to the Generic JWT IDP
@@ -20,7 +20,7 @@ test("login with Generic JWT IDP - error", async ({ page }) => {
}); });
test("login with Generic JWT IDP, no user existing - auto register", async ({ page }) => { test("login with Generic JWT IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic JWT is configure on the organization as only authencation method // Given idp Generic JWT is configure on the organization as only authencation method
// Given idp Generic JWT is configure with account creation alloweed, and automatic creation enabled // Given idp Generic JWT is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -32,7 +32,7 @@ test("login with Generic JWT IDP, no user existing - auto register", async ({ pa
}); });
test("login with Generic JWT IDP, no user existing - auto register not possible", async ({ page }) => { test("login with Generic JWT IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic JWT is configure on the organization as only authencation method // Given idp Generic JWT is configure on the organization as only authencation method
// Given idp Generic JWT is configure with account creation alloweed, and automatic creation enabled // Given idp Generic JWT is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -50,7 +50,7 @@ test("login with Generic JWT IDP, no user existing - auto register not possible"
test("login with Generic JWT IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with Generic JWT IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp Generic JWT is configure on the organization as only authencation method // Given idp Generic JWT is configure on the organization as only authencation method
// Given idp Generic JWT is configure with account creation not allowed, and automatic creation enabled // Given idp Generic JWT is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -62,7 +62,7 @@ test("login with Generic JWT IDP, no user existing - auto register enabled - man
}); });
test("login with Generic JWT IDP, no user linked - auto link", async ({ page }) => { test("login with Generic JWT IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic JWT is configure on the organization as only authencation method // Given idp Generic JWT is configure on the organization as only authencation method
// Given idp Generic JWT is configure with account linking allowed, and linking set to existing email // Given idp Generic JWT is configure with account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com exists // Given user with email address user@zitadel.com exists
@@ -74,7 +74,7 @@ test("login with Generic JWT IDP, no user linked - auto link", async ({ page })
}); });
test("login with Generic JWT IDP, no user linked, linking not possible", async ({ page }) => { test("login with Generic JWT IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic JWT is configure on the organization as only authencation method // Given idp Generic JWT is configure on the organization as only authencation method
// Given idp Generic JWT is configure with manually account linking not allowed, and linking set to existing email // Given idp Generic JWT is configure with manually account linking not allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists
@@ -86,7 +86,7 @@ test("login with Generic JWT IDP, no user linked, linking not possible", async (
}); });
test("login with Generic JWT IDP, no user linked, linking successful", async ({ page }) => { test("login with Generic JWT IDP, no user linked, linking successful", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic JWT is configure on the organization as only authencation method // Given idp Generic JWT is configure on the organization as only authencation method
// Given idp Generic JWT is configure with manually account linking allowed, and linking set to existing email // Given idp Generic JWT is configure with manually account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists

View File

@@ -1,7 +1,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with Generic OAuth IDP", async ({ page }) => { test("login with Generic OAuth IDP", async ({ page }) => {
test.skip() test.skip();
// Given a Generic OAuth IDP is configured on the organization // Given a Generic OAuth IDP is configured on the organization
// Given the user has Generic OAuth IDP added as auth method // Given the user has Generic OAuth IDP added as auth method
// User authenticates with the Generic OAuth IDP // User authenticates with the Generic OAuth IDP
@@ -10,7 +10,7 @@ test("login with Generic OAuth IDP", async ({ page }) => {
}); });
test("login with Generic OAuth IDP - error", async ({ page }) => { test("login with Generic OAuth IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given the Generic OAuth IDP is configured on the organization // Given the Generic OAuth IDP is configured on the organization
// Given the user has Generic OAuth IDP added as auth method // Given the user has Generic OAuth IDP added as auth method
// User is redirected to the Generic OAuth IDP // User is redirected to the Generic OAuth IDP
@@ -20,7 +20,7 @@ test("login with Generic OAuth IDP - error", async ({ page }) => {
}); });
test("login with Generic OAuth IDP, no user existing - auto register", async ({ page }) => { test("login with Generic OAuth IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic OAuth is configure on the organization as only authencation method // Given idp Generic OAuth is configure on the organization as only authencation method
// Given idp Generic OAuth is configure with account creation alloweed, and automatic creation enabled // Given idp Generic OAuth is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -32,7 +32,7 @@ test("login with Generic OAuth IDP, no user existing - auto register", async ({
}); });
test("login with Generic OAuth IDP, no user existing - auto register not possible", async ({ page }) => { test("login with Generic OAuth IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic OAuth is configure on the organization as only authencation method // Given idp Generic OAuth is configure on the organization as only authencation method
// Given idp Generic OAuth is configure with account creation alloweed, and automatic creation enabled // Given idp Generic OAuth is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -50,7 +50,7 @@ test("login with Generic OAuth IDP, no user existing - auto register not possibl
test("login with Generic OAuth IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with Generic OAuth IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp Generic OAuth is configure on the organization as only authencation method // Given idp Generic OAuth is configure on the organization as only authencation method
// Given idp Generic OAuth is configure with account creation not allowed, and automatic creation enabled // Given idp Generic OAuth is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -62,7 +62,7 @@ test("login with Generic OAuth IDP, no user existing - auto register enabled - m
}); });
test("login with Generic OAuth IDP, no user linked - auto link", async ({ page }) => { test("login with Generic OAuth IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic OAuth is configure on the organization as only authencation method // Given idp Generic OAuth is configure on the organization as only authencation method
// Given idp Generic OAuth is configure with account linking allowed, and linking set to existing email // Given idp Generic OAuth is configure with account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com exists // Given user with email address user@zitadel.com exists
@@ -74,7 +74,7 @@ test("login with Generic OAuth IDP, no user linked - auto link", async ({ page }
}); });
test("login with Generic OAuth IDP, no user linked, linking not possible", async ({ page }) => { test("login with Generic OAuth IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic OAuth is configure on the organization as only authencation method // Given idp Generic OAuth is configure on the organization as only authencation method
// Given idp Generic OAuth is configure with manually account linking not allowed, and linking set to existing email // Given idp Generic OAuth is configure with manually account linking not allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists
@@ -86,7 +86,7 @@ test("login with Generic OAuth IDP, no user linked, linking not possible", async
}); });
test("login with Generic OAuth IDP, no user linked, linking successful", async ({ page }) => { test("login with Generic OAuth IDP, no user linked, linking successful", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic OAuth is configure on the organization as only authencation method // Given idp Generic OAuth is configure on the organization as only authencation method
// Given idp Generic OAuth is configure with manually account linking allowed, and linking set to existing email // Given idp Generic OAuth is configure with manually account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists

View File

@@ -3,7 +3,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with Generic OIDC IDP", async ({ page }) => { test("login with Generic OIDC IDP", async ({ page }) => {
test.skip() test.skip();
// Given a Generic OIDC IDP is configured on the organization // Given a Generic OIDC IDP is configured on the organization
// Given the user has Generic OIDC IDP added as auth method // Given the user has Generic OIDC IDP added as auth method
// User authenticates with the Generic OIDC IDP // User authenticates with the Generic OIDC IDP
@@ -12,7 +12,7 @@ test("login with Generic OIDC IDP", async ({ page }) => {
}); });
test("login with Generic OIDC IDP - error", async ({ page }) => { test("login with Generic OIDC IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given the Generic OIDC IDP is configured on the organization // Given the Generic OIDC IDP is configured on the organization
// Given the user has Generic OIDC IDP added as auth method // Given the user has Generic OIDC IDP added as auth method
// User is redirected to the Generic OIDC IDP // User is redirected to the Generic OIDC IDP
@@ -22,7 +22,7 @@ test("login with Generic OIDC IDP - error", async ({ page }) => {
}); });
test("login with Generic OIDC IDP, no user existing - auto register", async ({ page }) => { test("login with Generic OIDC IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic OIDC is configure on the organization as only authencation method // Given idp Generic OIDC is configure on the organization as only authencation method
// Given idp Generic OIDC is configure with account creation alloweed, and automatic creation enabled // Given idp Generic OIDC is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -34,7 +34,7 @@ test("login with Generic OIDC IDP, no user existing - auto register", async ({ p
}); });
test("login with Generic OIDC IDP, no user existing - auto register not possible", async ({ page }) => { test("login with Generic OIDC IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic OIDC is configure on the organization as only authencation method // Given idp Generic OIDC is configure on the organization as only authencation method
// Given idp Generic OIDC is configure with account creation alloweed, and automatic creation enabled // Given idp Generic OIDC is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -52,7 +52,7 @@ test("login with Generic OIDC IDP, no user existing - auto register not possible
test("login with Generic OIDC IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with Generic OIDC IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp Generic OIDC is configure on the organization as only authencation method // Given idp Generic OIDC is configure on the organization as only authencation method
// Given idp Generic OIDC is configure with account creation not allowed, and automatic creation enabled // Given idp Generic OIDC is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -64,7 +64,7 @@ test("login with Generic OIDC IDP, no user existing - auto register enabled - ma
}); });
test("login with Generic OIDC IDP, no user linked - auto link", async ({ page }) => { test("login with Generic OIDC IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic OIDC is configure on the organization as only authencation method // Given idp Generic OIDC is configure on the organization as only authencation method
// Given idp Generic OIDC is configure with account linking allowed, and linking set to existing email // Given idp Generic OIDC is configure with account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com exists // Given user with email address user@zitadel.com exists
@@ -76,7 +76,7 @@ test("login with Generic OIDC IDP, no user linked - auto link", async ({ page })
}); });
test("login with Generic OIDC IDP, no user linked, linking not possible", async ({ page }) => { test("login with Generic OIDC IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic OIDC is configure on the organization as only authencation method // Given idp Generic OIDC is configure on the organization as only authencation method
// Given idp Generic OIDC is configure with manually account linking not allowed, and linking set to existing email // Given idp Generic OIDC is configure with manually account linking not allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists
@@ -88,7 +88,7 @@ test("login with Generic OIDC IDP, no user linked, linking not possible", async
}); });
test("login with Generic OIDC IDP, no user linked, linking successful", async ({ page }) => { test("login with Generic OIDC IDP, no user linked, linking successful", async ({ page }) => {
test.skip() test.skip();
// Given idp Generic OIDC is configure on the organization as only authencation method // Given idp Generic OIDC is configure on the organization as only authencation method
// Given idp Generic OIDC is configure with manually account linking allowed, and linking set to existing email // Given idp Generic OIDC is configure with manually account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists

View File

@@ -1,7 +1,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with GitHub Enterprise IDP", async ({ page }) => { test("login with GitHub Enterprise IDP", async ({ page }) => {
test.skip() test.skip();
// Given a GitHub Enterprise IDP is configured on the organization // Given a GitHub Enterprise IDP is configured on the organization
// Given the user has GitHub Enterprise IDP added as auth method // Given the user has GitHub Enterprise IDP added as auth method
// User authenticates with the GitHub Enterprise IDP // User authenticates with the GitHub Enterprise IDP
@@ -10,7 +10,7 @@ test("login with GitHub Enterprise IDP", async ({ page }) => {
}); });
test("login with GitHub Enterprise IDP - error", async ({ page }) => { test("login with GitHub Enterprise IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given the GitHub Enterprise IDP is configured on the organization // Given the GitHub Enterprise IDP is configured on the organization
// Given the user has GitHub Enterprise IDP added as auth method // Given the user has GitHub Enterprise IDP added as auth method
// User is redirected to the GitHub Enterprise IDP // User is redirected to the GitHub Enterprise IDP
@@ -20,7 +20,7 @@ test("login with GitHub Enterprise IDP - error", async ({ page }) => {
}); });
test("login with GitHub Enterprise IDP, no user existing - auto register", async ({ page }) => { test("login with GitHub Enterprise IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp GitHub Enterprise is configure on the organization as only authencation method // Given idp GitHub Enterprise is configure on the organization as only authencation method
// Given idp GitHub Enterprise is configure with account creation alloweed, and automatic creation enabled // Given idp GitHub Enterprise is configure with account creation alloweed, and automatic creation enabled
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -33,7 +33,7 @@ test("login with GitHub Enterprise IDP, no user existing - auto register", async
}); });
test("login with GitHub Enterprise IDP, no user existing - auto register not possible", async ({ page }) => { test("login with GitHub Enterprise IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp GitHub Enterprise is configure on the organization as only authencation method // Given idp GitHub Enterprise is configure on the organization as only authencation method
// Given idp GitHub Enterprise is configure with account creation alloweed, and automatic creation enabled // Given idp GitHub Enterprise is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -51,7 +51,7 @@ test("login with GitHub Enterprise IDP, no user existing - auto register not pos
test("login with GitHub Enterprise IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with GitHub Enterprise IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp GitHub Enterprise is configure on the organization as only authencation method // Given idp GitHub Enterprise is configure on the organization as only authencation method
// Given idp GitHub Enterprise is configure with account creation not allowed, and automatic creation enabled // Given idp GitHub Enterprise is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -63,7 +63,7 @@ test("login with GitHub Enterprise IDP, no user existing - auto register enabled
}); });
test("login with GitHub Enterprise IDP, no user linked - auto link", async ({ page }) => { test("login with GitHub Enterprise IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp GitHub Enterprise is configure on the organization as only authencation method // Given idp GitHub Enterprise is configure on the organization as only authencation method
// Given idp GitHub Enterprise is configure with account linking allowed, and linking set to existing email // Given idp GitHub Enterprise is configure with account linking allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -76,7 +76,7 @@ test("login with GitHub Enterprise IDP, no user linked - auto link", async ({ pa
}); });
test("login with GitHub Enterprise IDP, no user linked, linking not possible", async ({ page }) => { test("login with GitHub Enterprise IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp GitHub Enterprise is configure on the organization as only authencation method // Given idp GitHub Enterprise is configure on the organization as only authencation method
// Given idp GitHub Enterprise is configure with manually account linking not allowed, and linking set to existing email // Given idp GitHub Enterprise is configure with manually account linking not allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -89,7 +89,7 @@ test("login with GitHub Enterprise IDP, no user linked, linking not possible", a
}); });
test("login with GitHub Enterprise IDP, no user linked, linking successful", async ({ page }) => { test("login with GitHub Enterprise IDP, no user linked, linking successful", async ({ page }) => {
test.skip() test.skip();
// Given idp GitHub Enterprise is configure on the organization as only authencation method // Given idp GitHub Enterprise is configure on the organization as only authencation method
// Given idp GitHub Enterprise is configure with manually account linking allowed, and linking set to existing email // Given idp GitHub Enterprise is configure with manually account linking allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information

View File

@@ -1,7 +1,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with GitHub IDP", async ({ page }) => { test("login with GitHub IDP", async ({ page }) => {
test.skip() test.skip();
// Given a GitHub IDP is configured on the organization // Given a GitHub IDP is configured on the organization
// Given the user has GitHub IDP added as auth method // Given the user has GitHub IDP added as auth method
// User authenticates with the GitHub IDP // User authenticates with the GitHub IDP
@@ -10,7 +10,7 @@ test("login with GitHub IDP", async ({ page }) => {
}); });
test("login with GitHub IDP - error", async ({ page }) => { test("login with GitHub IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given the GitHub IDP is configured on the organization // Given the GitHub IDP is configured on the organization
// Given the user has GitHub IDP added as auth method // Given the user has GitHub IDP added as auth method
// User is redirected to the GitHub IDP // User is redirected to the GitHub IDP
@@ -20,7 +20,7 @@ test("login with GitHub IDP - error", async ({ page }) => {
}); });
test("login with GitHub IDP, no user existing - auto register", async ({ page }) => { test("login with GitHub IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp GitHub is configure on the organization as only authencation method // Given idp GitHub is configure on the organization as only authencation method
// Given idp GitHub is configure with account creation alloweed, and automatic creation enabled // Given idp GitHub is configure with account creation alloweed, and automatic creation enabled
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -33,7 +33,7 @@ test("login with GitHub IDP, no user existing - auto register", async ({ page })
}); });
test("login with GitHub IDP, no user existing - auto register not possible", async ({ page }) => { test("login with GitHub IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp GitHub is configure on the organization as only authencation method // Given idp GitHub is configure on the organization as only authencation method
// Given idp GitHub is configure with account creation alloweed, and automatic creation enabled // Given idp GitHub is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -51,7 +51,7 @@ test("login with GitHub IDP, no user existing - auto register not possible", asy
test("login with GitHub IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with GitHub IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp GitHub is configure on the organization as only authencation method // Given idp GitHub is configure on the organization as only authencation method
// Given idp GitHub is configure with account creation not allowed, and automatic creation enabled // Given idp GitHub is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -63,7 +63,7 @@ test("login with GitHub IDP, no user existing - auto register enabled - manual c
}); });
test("login with GitHub IDP, no user linked - auto link", async ({ page }) => { test("login with GitHub IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp GitHub is configure on the organization as only authencation method // Given idp GitHub is configure on the organization as only authencation method
// Given idp GitHub is configure with account linking allowed, and linking set to existing email // Given idp GitHub is configure with account linking allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -76,7 +76,7 @@ test("login with GitHub IDP, no user linked - auto link", async ({ page }) => {
}); });
test("login with GitHub IDP, no user linked, linking not possible", async ({ page }) => { test("login with GitHub IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp GitHub is configure on the organization as only authencation method // Given idp GitHub is configure on the organization as only authencation method
// Given idp GitHub is configure with manually account linking not allowed, and linking set to existing email // Given idp GitHub is configure with manually account linking not allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -89,7 +89,7 @@ test("login with GitHub IDP, no user linked, linking not possible", async ({ pag
}); });
test("login with GitHub IDP, no user linked, linking successful", async ({ page }) => { test("login with GitHub IDP, no user linked, linking successful", async ({ page }) => {
test.skip() test.skip();
// Given idp GitHub is configure on the organization as only authencation method // Given idp GitHub is configure on the organization as only authencation method
// Given idp GitHub is configure with manually account linking allowed, and linking set to existing email // Given idp GitHub is configure with manually account linking allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information

View File

@@ -1,7 +1,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with GitLab Self-Hosted IDP", async ({ page }) => { test("login with GitLab Self-Hosted IDP", async ({ page }) => {
test.skip() test.skip();
// Given a GitLab Self-Hosted IDP is configured on the organization // Given a GitLab Self-Hosted IDP is configured on the organization
// Given the user has GitLab Self-Hosted IDP added as auth method // Given the user has GitLab Self-Hosted IDP added as auth method
// User authenticates with the GitLab Self-Hosted IDP // User authenticates with the GitLab Self-Hosted IDP
@@ -10,7 +10,7 @@ test("login with GitLab Self-Hosted IDP", async ({ page }) => {
}); });
test("login with GitLab Self-Hosted IDP - error", async ({ page }) => { test("login with GitLab Self-Hosted IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given the GitLab Self-Hosted IDP is configured on the organization // Given the GitLab Self-Hosted IDP is configured on the organization
// Given the user has GitLab Self-Hosted IDP added as auth method // Given the user has GitLab Self-Hosted IDP added as auth method
// User is redirected to the GitLab Self-Hosted IDP // User is redirected to the GitLab Self-Hosted IDP
@@ -20,7 +20,7 @@ test("login with GitLab Self-Hosted IDP - error", async ({ page }) => {
}); });
test("login with Gitlab Self-Hosted IDP, no user existing - auto register", async ({ page }) => { test("login with Gitlab Self-Hosted IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp Gitlab Self-Hosted is configure on the organization as only authencation method // Given idp Gitlab Self-Hosted is configure on the organization as only authencation method
// Given idp Gitlab Self-Hosted is configure with account creation alloweed, and automatic creation enabled // Given idp Gitlab Self-Hosted is configure with account creation alloweed, and automatic creation enabled
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -33,7 +33,7 @@ test("login with Gitlab Self-Hosted IDP, no user existing - auto register", asyn
}); });
test("login with Gitlab Self-Hosted IDP, no user existing - auto register not possible", async ({ page }) => { test("login with Gitlab Self-Hosted IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Gitlab Self-Hosted is configure on the organization as only authencation method // Given idp Gitlab Self-Hosted is configure on the organization as only authencation method
// Given idp Gitlab Self-Hosted is configure with account creation alloweed, and automatic creation enabled // Given idp Gitlab Self-Hosted is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -51,7 +51,7 @@ test("login with Gitlab Self-Hosted IDP, no user existing - auto register not po
test("login with Gitlab Self-Hosted IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with Gitlab Self-Hosted IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp Gitlab Self-Hosted is configure on the organization as only authencation method // Given idp Gitlab Self-Hosted is configure on the organization as only authencation method
// Given idp Gitlab Self-Hosted is configure with account creation not allowed, and automatic creation enabled // Given idp Gitlab Self-Hosted is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -63,7 +63,7 @@ test("login with Gitlab Self-Hosted IDP, no user existing - auto register enable
}); });
test("login with Gitlab Self-Hosted IDP, no user linked - auto link", async ({ page }) => { test("login with Gitlab Self-Hosted IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp Gitlab Self-Hosted is configure on the organization as only authencation method // Given idp Gitlab Self-Hosted is configure on the organization as only authencation method
// Given idp Gitlab Self-Hosted is configure with account linking allowed, and linking set to existing email // Given idp Gitlab Self-Hosted is configure with account linking allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -76,7 +76,7 @@ test("login with Gitlab Self-Hosted IDP, no user linked - auto link", async ({ p
}); });
test("login with Gitlab Self-Hosted IDP, no user linked, linking not possible", async ({ page }) => { test("login with Gitlab Self-Hosted IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Gitlab Self-Hosted is configure on the organization as only authencation method // Given idp Gitlab Self-Hosted is configure on the organization as only authencation method
// Given idp Gitlab Self-Hosted is configure with manually account linking not allowed, and linking set to existing email // Given idp Gitlab Self-Hosted is configure with manually account linking not allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -89,7 +89,7 @@ test("login with Gitlab Self-Hosted IDP, no user linked, linking not possible",
}); });
test("login with Gitlab Self-Hosted IDP, no user linked, linking successful", async ({ page }) => { test("login with Gitlab Self-Hosted IDP, no user linked, linking successful", async ({ page }) => {
test.skip() test.skip();
// Given idp Gitlab Self-Hosted is configure on the organization as only authencation method // Given idp Gitlab Self-Hosted is configure on the organization as only authencation method
// Given idp Gitlab Self-Hosted is configure with manually account linking allowed, and linking set to existing email // Given idp Gitlab Self-Hosted is configure with manually account linking allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information

View File

@@ -1,7 +1,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with GitLab IDP", async ({ page }) => { test("login with GitLab IDP", async ({ page }) => {
test.skip() test.skip();
// Given a GitLab IDP is configured on the organization // Given a GitLab IDP is configured on the organization
// Given the user has GitLab IDP added as auth method // Given the user has GitLab IDP added as auth method
// User authenticates with the GitLab IDP // User authenticates with the GitLab IDP
@@ -10,7 +10,7 @@ test("login with GitLab IDP", async ({ page }) => {
}); });
test("login with GitLab IDP - error", async ({ page }) => { test("login with GitLab IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given the GitLab IDP is configured on the organization // Given the GitLab IDP is configured on the organization
// Given the user has GitLab IDP added as auth method // Given the user has GitLab IDP added as auth method
// User is redirected to the GitLab IDP // User is redirected to the GitLab IDP
@@ -20,7 +20,7 @@ test("login with GitLab IDP - error", async ({ page }) => {
}); });
test("login with Gitlab IDP, no user existing - auto register", async ({ page }) => { test("login with Gitlab IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp Gitlab is configure on the organization as only authencation method // Given idp Gitlab is configure on the organization as only authencation method
// Given idp Gitlab is configure with account creation alloweed, and automatic creation enabled // Given idp Gitlab is configure with account creation alloweed, and automatic creation enabled
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -33,7 +33,7 @@ test("login with Gitlab IDP, no user existing - auto register", async ({ page })
}); });
test("login with Gitlab IDP, no user existing - auto register not possible", async ({ page }) => { test("login with Gitlab IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Gitlab is configure on the organization as only authencation method // Given idp Gitlab is configure on the organization as only authencation method
// Given idp Gitlab is configure with account creation alloweed, and automatic creation enabled // Given idp Gitlab is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -51,7 +51,7 @@ test("login with Gitlab IDP, no user existing - auto register not possible", asy
test("login with Gitlab IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with Gitlab IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp Gitlab is configure on the organization as only authencation method // Given idp Gitlab is configure on the organization as only authencation method
// Given idp Gitlab is configure with account creation not allowed, and automatic creation enabled // Given idp Gitlab is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -63,7 +63,7 @@ test("login with Gitlab IDP, no user existing - auto register enabled - manual c
}); });
test("login with Gitlab IDP, no user linked - auto link", async ({ page }) => { test("login with Gitlab IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp Gitlab is configure on the organization as only authencation method // Given idp Gitlab is configure on the organization as only authencation method
// Given idp Gitlab is configure with account linking allowed, and linking set to existing email // Given idp Gitlab is configure with account linking allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -76,7 +76,7 @@ test("login with Gitlab IDP, no user linked - auto link", async ({ page }) => {
}); });
test("login with Gitlab IDP, no user linked, linking not possible", async ({ page }) => { test("login with Gitlab IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Gitlab is configure on the organization as only authencation method // Given idp Gitlab is configure on the organization as only authencation method
// Given idp Gitlab is configure with manually account linking not allowed, and linking set to existing email // Given idp Gitlab is configure with manually account linking not allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -89,7 +89,7 @@ test("login with Gitlab IDP, no user linked, linking not possible", async ({ pag
}); });
test("login with Gitlab IDP, no user linked, linking successful", async ({ page }) => { test("login with Gitlab IDP, no user linked, linking successful", async ({ page }) => {
test.skip() test.skip();
// Given idp Gitlab is configure on the organization as only authencation method // Given idp Gitlab is configure on the organization as only authencation method
// Given idp Gitlab is configure with manually account linking allowed, and linking set to existing email // Given idp Gitlab is configure with manually account linking allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information

View File

@@ -1,7 +1,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with Google IDP", async ({ page }) => { test("login with Google IDP", async ({ page }) => {
test.skip() test.skip();
// Given a Google IDP is configured on the organization // Given a Google IDP is configured on the organization
// Given the user has Google IDP added as auth method // Given the user has Google IDP added as auth method
// User authenticates with the Google IDP // User authenticates with the Google IDP
@@ -10,7 +10,7 @@ test("login with Google IDP", async ({ page }) => {
}); });
test("login with Google IDP - error", async ({ page }) => { test("login with Google IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given the Google IDP is configured on the organization // Given the Google IDP is configured on the organization
// Given the user has Google IDP added as auth method // Given the user has Google IDP added as auth method
// User is redirected to the Google IDP // User is redirected to the Google IDP
@@ -20,7 +20,7 @@ test("login with Google IDP - error", async ({ page }) => {
}); });
test("login with Google IDP, no user existing - auto register", async ({ page }) => { test("login with Google IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp Google is configure on the organization as only authencation method // Given idp Google is configure on the organization as only authencation method
// Given idp Google is configure with account creation alloweed, and automatic creation enabled // Given idp Google is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -32,7 +32,7 @@ test("login with Google IDP, no user existing - auto register", async ({ page })
}); });
test("login with Google IDP, no user existing - auto register not possible", async ({ page }) => { test("login with Google IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Google is configure on the organization as only authencation method // Given idp Google is configure on the organization as only authencation method
// Given idp Google is configure with account creation alloweed, and automatic creation enabled // Given idp Google is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -50,7 +50,7 @@ test("login with Google IDP, no user existing - auto register not possible", asy
test("login with Google IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with Google IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp Google is configure on the organization as only authencation method // Given idp Google is configure on the organization as only authencation method
// Given idp Google is configure with account creation not allowed, and automatic creation enabled // Given idp Google is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -62,7 +62,7 @@ test("login with Google IDP, no user existing - auto register enabled - manual c
}); });
test("login with Google IDP, no user linked - auto link", async ({ page }) => { test("login with Google IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp Google is configure on the organization as only authencation method // Given idp Google is configure on the organization as only authencation method
// Given idp Google is configure with account linking allowed, and linking set to existing email // Given idp Google is configure with account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com exists // Given user with email address user@zitadel.com exists
@@ -74,7 +74,7 @@ test("login with Google IDP, no user linked - auto link", async ({ page }) => {
}); });
test("login with Google IDP, no user linked, linking not possible", async ({ page }) => { test("login with Google IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Google is configure on the organization as only authencation method // Given idp Google is configure on the organization as only authencation method
// Given idp Google is configure with manually account linking not allowed, and linking set to existing email // Given idp Google is configure with manually account linking not allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists
@@ -86,7 +86,7 @@ test("login with Google IDP, no user linked, linking not possible", async ({ pag
}); });
test("login with Google IDP, no user linked, linking successful", async ({ page }) => { test("login with Google IDP, no user linked, linking successful", async ({ page }) => {
test.skip() test.skip();
// Given idp Google is configure on the organization as only authencation method // Given idp Google is configure on the organization as only authencation method
// Given idp Google is configure with manually account linking allowed, and linking set to existing email // Given idp Google is configure with manually account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists

View File

@@ -1,7 +1,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with LDAP IDP", async ({ page }) => { test("login with LDAP IDP", async ({ page }) => {
test.skip() test.skip();
// Given a LDAP IDP is configured on the organization // Given a LDAP IDP is configured on the organization
// Given the user has LDAP IDP added as auth method // Given the user has LDAP IDP added as auth method
// User authenticates with the LDAP IDP // User authenticates with the LDAP IDP
@@ -10,7 +10,7 @@ test("login with LDAP IDP", async ({ page }) => {
}); });
test("login with LDAP IDP - error", async ({ page }) => { test("login with LDAP IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given the LDAP IDP is configured on the organization // Given the LDAP IDP is configured on the organization
// Given the user has LDAP IDP added as auth method // Given the user has LDAP IDP added as auth method
// User is redirected to the LDAP IDP // User is redirected to the LDAP IDP
@@ -20,7 +20,7 @@ test("login with LDAP IDP - error", async ({ page }) => {
}); });
test("login with LDAP IDP, no user existing - auto register", async ({ page }) => { test("login with LDAP IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp LDAP is configure on the organization as only authencation method // Given idp LDAP is configure on the organization as only authencation method
// Given idp LDAP is configure with account creation alloweed, and automatic creation enabled // Given idp LDAP is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -32,7 +32,7 @@ test("login with LDAP IDP, no user existing - auto register", async ({ page }) =
}); });
test("login with LDAP IDP, no user existing - auto register not possible", async ({ page }) => { test("login with LDAP IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp LDAP is configure on the organization as only authencation method // Given idp LDAP is configure on the organization as only authencation method
// Given idp LDAP is configure with account creation alloweed, and automatic creation enabled // Given idp LDAP is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -50,7 +50,7 @@ test("login with LDAP IDP, no user existing - auto register not possible", async
test("login with LDAP IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with LDAP IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp LDAP is configure on the organization as only authencation method // Given idp LDAP is configure on the organization as only authencation method
// Given idp LDAP is configure with account creation not allowed, and automatic creation enabled // Given idp LDAP is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -62,7 +62,7 @@ test("login with LDAP IDP, no user existing - auto register enabled - manual cre
}); });
test("login with LDAP IDP, no user linked - auto link", async ({ page }) => { test("login with LDAP IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp LDAP is configure on the organization as only authencation method // Given idp LDAP is configure on the organization as only authencation method
// Given idp LDAP is configure with account linking allowed, and linking set to existing email // Given idp LDAP is configure with account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com exists // Given user with email address user@zitadel.com exists
@@ -74,7 +74,7 @@ test("login with LDAP IDP, no user linked - auto link", async ({ page }) => {
}); });
test("login with LDAP IDP, no user linked, linking not possible", async ({ page }) => { test("login with LDAP IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp LDAP is configure on the organization as only authencation method // Given idp LDAP is configure on the organization as only authencation method
// Given idp LDAP is configure with manually account linking not allowed, and linking set to existing email // Given idp LDAP is configure with manually account linking not allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists
@@ -86,7 +86,7 @@ test("login with LDAP IDP, no user linked, linking not possible", async ({ page
}); });
test("login with LDAP IDP, no user linked, linking successful", async ({ page }) => { test("login with LDAP IDP, no user linked, linking successful", async ({ page }) => {
test.skip() test.skip();
// Given idp LDAP is configure on the organization as only authencation method // Given idp LDAP is configure on the organization as only authencation method
// Given idp LDAP is configure with manually account linking allowed, and linking set to existing email // Given idp LDAP is configure with manually account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists

View File

@@ -4,7 +4,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with Microsoft IDP", async ({ page }) => { test("login with Microsoft IDP", async ({ page }) => {
test.skip() test.skip();
// Given a Microsoft IDP is configured on the organization // Given a Microsoft IDP is configured on the organization
// Given the user has Microsoft IDP added as auth method // Given the user has Microsoft IDP added as auth method
// User authenticates with the Microsoft IDP // User authenticates with the Microsoft IDP
@@ -13,7 +13,7 @@ test("login with Microsoft IDP", async ({ page }) => {
}); });
test("login with Microsoft IDP - error", async ({ page }) => { test("login with Microsoft IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given the Microsoft IDP is configured on the organization // Given the Microsoft IDP is configured on the organization
// Given the user has Microsoft IDP added as auth method // Given the user has Microsoft IDP added as auth method
// User is redirected to the Microsoft IDP // User is redirected to the Microsoft IDP
@@ -23,7 +23,7 @@ test("login with Microsoft IDP - error", async ({ page }) => {
}); });
test("login with Microsoft IDP, no user existing - auto register", async ({ page }) => { test("login with Microsoft IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp Microsoft is configure on the organization as only authencation method // Given idp Microsoft is configure on the organization as only authencation method
// Given idp Microsoft is configure with account creation alloweed, and automatic creation enabled // Given idp Microsoft is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -35,7 +35,7 @@ test("login with Microsoft IDP, no user existing - auto register", async ({ page
}); });
test("login with Microsoft IDP, no user existing - auto register not possible", async ({ page }) => { test("login with Microsoft IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Microsoft is configure on the organization as only authencation method // Given idp Microsoft is configure on the organization as only authencation method
// Given idp Microsoft is configure with account creation alloweed, and automatic creation enabled // Given idp Microsoft is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -53,7 +53,7 @@ test("login with Microsoft IDP, no user existing - auto register not possible",
test("login with Microsoft IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with Microsoft IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp Microsoft is configure on the organization as only authencation method // Given idp Microsoft is configure on the organization as only authencation method
// Given idp Microsoft is configure with account creation not allowed, and automatic creation enabled // Given idp Microsoft is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -65,7 +65,7 @@ test("login with Microsoft IDP, no user existing - auto register enabled - manua
}); });
test("login with Microsoft IDP, no user linked - auto link", async ({ page }) => { test("login with Microsoft IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp Microsoft is configure on the organization as only authencation method // Given idp Microsoft is configure on the organization as only authencation method
// Given idp Microsoft is configure with account linking allowed, and linking set to existing email // Given idp Microsoft is configure with account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com exists // Given user with email address user@zitadel.com exists
@@ -77,7 +77,7 @@ test("login with Microsoft IDP, no user linked - auto link", async ({ page }) =>
}); });
test("login with Microsoft IDP, no user linked, linking not possible", async ({ page }) => { test("login with Microsoft IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp Microsoft is configure on the organization as only authencation method // Given idp Microsoft is configure on the organization as only authencation method
// Given idp Microsoft is configure with manually account linking not allowed, and linking set to existing email // Given idp Microsoft is configure with manually account linking not allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists
@@ -89,7 +89,7 @@ test("login with Microsoft IDP, no user linked, linking not possible", async ({
}); });
test("login with Microsoft IDP, no user linked, linking successful", async ({ page }) => { test("login with Microsoft IDP, no user linked, linking successful", async ({ page }) => {
test.skip() test.skip();
// Given idp Microsoft is configure on the organization as only authencation method // Given idp Microsoft is configure on the organization as only authencation method
// Given idp Microsoft is configure with manually account linking allowed, and linking set to existing email // Given idp Microsoft is configure with manually account linking allowed, and linking set to existing email
// Given user with email address user@zitadel.com doesn't exists // Given user with email address user@zitadel.com doesn't exists

View File

@@ -1,7 +1,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with SAML IDP", async ({ page }) => { test("login with SAML IDP", async ({ page }) => {
test.skip() test.skip();
// Given a SAML IDP is configured on the organization // Given a SAML IDP is configured on the organization
// Given the user has SAML IDP added as auth method // Given the user has SAML IDP added as auth method
// User authenticates with the SAML IDP // User authenticates with the SAML IDP
@@ -10,7 +10,7 @@ test("login with SAML IDP", async ({ page }) => {
}); });
test("login with SAML IDP - error", async ({ page }) => { test("login with SAML IDP - error", async ({ page }) => {
test.skip() test.skip();
// Given the SAML IDP is configured on the organization // Given the SAML IDP is configured on the organization
// Given the user has SAML IDP added as auth method // Given the user has SAML IDP added as auth method
// User is redirected to the SAML IDP // User is redirected to the SAML IDP
@@ -20,7 +20,7 @@ test("login with SAML IDP - error", async ({ page }) => {
}); });
test("login with SAML IDP, no user existing - auto register", async ({ page }) => { test("login with SAML IDP, no user existing - auto register", async ({ page }) => {
test.skip() test.skip();
// Given idp SAML is configure on the organization as only authencation method // Given idp SAML is configure on the organization as only authencation method
// Given idp SAML is configure with account creation alloweed, and automatic creation enabled // Given idp SAML is configure with account creation alloweed, and automatic creation enabled
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -33,7 +33,7 @@ test("login with SAML IDP, no user existing - auto register", async ({ page }) =
}); });
test("login with SAML IDP, no user existing - auto register not possible", async ({ page }) => { test("login with SAML IDP, no user existing - auto register not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp SAML is configure on the organization as only authencation method // Given idp SAML is configure on the organization as only authencation method
// Given idp SAML is configure with account creation alloweed, and automatic creation enabled // Given idp SAML is configure with account creation alloweed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -51,7 +51,7 @@ test("login with SAML IDP, no user existing - auto register not possible", async
test("login with SAML IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({ test("login with SAML IDP, no user existing - auto register enabled - manual creation disabled, creation not possible", async ({
page, page,
}) => { }) => {
test.skip() test.skip();
// Given idp SAML is configure on the organization as only authencation method // Given idp SAML is configure on the organization as only authencation method
// Given idp SAML is configure with account creation not allowed, and automatic creation enabled // Given idp SAML is configure with account creation not allowed, and automatic creation enabled
// Given no user exists yet // Given no user exists yet
@@ -63,7 +63,7 @@ test("login with SAML IDP, no user existing - auto register enabled - manual cre
}); });
test("login with SAML IDP, no user linked - auto link", async ({ page }) => { test("login with SAML IDP, no user linked - auto link", async ({ page }) => {
test.skip() test.skip();
// Given idp SAML is configure on the organization as only authencation method // Given idp SAML is configure on the organization as only authencation method
// Given idp SAML is configure with account linking allowed, and linking set to existing email // Given idp SAML is configure with account linking allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -76,7 +76,7 @@ test("login with SAML IDP, no user linked - auto link", async ({ page }) => {
}); });
test("login with SAML IDP, no user linked, linking not possible", async ({ page }) => { test("login with SAML IDP, no user linked, linking not possible", async ({ page }) => {
test.skip() test.skip();
// Given idp SAML is configure on the organization as only authencation method // Given idp SAML is configure on the organization as only authencation method
// Given idp SAML is configure with manually account linking not allowed, and linking set to existing email // Given idp SAML is configure with manually account linking not allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information
@@ -89,7 +89,7 @@ test("login with SAML IDP, no user linked, linking not possible", async ({ page
}); });
test("login with SAML IDP, no user linked, linking successful", async ({ page }) => { test("login with SAML IDP, no user linked, linking successful", async ({ page }) => {
test.skip() test.skip();
// Given idp SAML is configure on the organization as only authencation method // Given idp SAML is configure on the organization as only authencation method
// Given idp SAML is configure with manually account linking allowed, and linking set to existing email // Given idp SAML is configure with manually account linking allowed, and linking set to existing email
// Given ZITADEL Action is added to autofill missing user information // Given ZITADEL Action is added to autofill missing user information

View File

@@ -1,7 +1,7 @@
import test from "@playwright/test"; import test from "@playwright/test";
test("login with mfa setup, mfa setup prompt", async ({ page }) => { test("login with mfa setup, mfa setup prompt", async ({ page }) => {
test.skip() test.skip();
// Given the organization has enabled at least one mfa types // Given the organization has enabled at least one mfa types
// Given the user has a password but no mfa registered // Given the user has a password but no mfa registered
// User authenticates with login name and password // User authenticates with login name and password
@@ -9,7 +9,7 @@ test("login with mfa setup, mfa setup prompt", async ({ page }) => {
}); });
test("login with mfa setup, no mfa setup prompt", async ({ page }) => { test("login with mfa setup, no mfa setup prompt", async ({ page }) => {
test.skip() test.skip();
// Given the organization has set "multifactor init check time" to 0 // Given the organization has set "multifactor init check time" to 0
// Given the organization has enabled mfa types // Given the organization has enabled mfa types
// Given the user has a password but no mfa registered // Given the user has a password but no mfa registered
@@ -18,7 +18,7 @@ test("login with mfa setup, no mfa setup prompt", async ({ page }) => {
}); });
test("login with mfa setup, force mfa for local authenticated users", async ({ page }) => { test("login with mfa setup, force mfa for local authenticated users", async ({ page }) => {
test.skip() test.skip();
// Given the organization has enabled force mfa for local authentiacted users // Given the organization has enabled force mfa for local authentiacted users
// Given the organization has enabled all possible mfa types // Given the organization has enabled all possible mfa types
// Given the user has a password but no mfa registered // Given the user has a password but no mfa registered
@@ -27,7 +27,7 @@ test("login with mfa setup, force mfa for local authenticated users", async ({ p
}); });
test("login with mfa setup, force mfa - local user", async ({ page }) => { test("login with mfa setup, force mfa - local user", async ({ page }) => {
test.skip() test.skip();
// Given the organization has enabled force mfa for local authentiacted users // Given the organization has enabled force mfa for local authentiacted users
// Given the organization has enabled all possible mfa types // Given the organization has enabled all possible mfa types
// Given the user has a password but no mfa registered // Given the user has a password but no mfa registered
@@ -36,7 +36,7 @@ test("login with mfa setup, force mfa - local user", async ({ page }) => {
}); });
test("login with mfa setup, force mfa - external user", async ({ page }) => { test("login with mfa setup, force mfa - external user", async ({ page }) => {
test.skip() test.skip();
// Given the organization has enabled force mfa // Given the organization has enabled force mfa
// Given the organization has enabled all possible mfa types // Given the organization has enabled all possible mfa types
// Given the user has an idp but no mfa registered // Given the user has an idp but no mfa registered
@@ -46,7 +46,7 @@ test("login with mfa setup, force mfa - external user", async ({ page }) => {
}); });
test("login with mfa setup, force mfa - local user, wrong password", async ({ page }) => { test("login with mfa setup, force mfa - local user, wrong password", async ({ page }) => {
test.skip() test.skip();
// Given the organization has a password lockout policy set to 1 on the max password attempts // Given the organization has a password lockout policy set to 1 on the max password attempts
// Given the user has only a password as auth methos // Given the user has only a password as auth methos
// enter login name // enter login name

View File

@@ -1,10 +1,10 @@
import { expect, Page } from "@playwright/test"; import { expect, Page } from "@playwright/test";
import dotenv from "dotenv";
import path from "path";
import { code, otpFromSink } from "./code"; import { code, otpFromSink } from "./code";
import { loginname } from "./loginname"; import { loginname } from "./loginname";
import { password } from "./password"; import { password } from "./password";
import { totp } from "./zitadel"; import { totp } from "./zitadel";
import dotenv from "dotenv";
import path from "path";
dotenv.config({ path: path.resolve(__dirname, "../.env-file/.env") }); dotenv.config({ path: path.resolve(__dirname, "../.env-file/.env") });

View File

@@ -37,7 +37,7 @@ test("register with passkey", async ({ page }) => {
}); });
test("register with username and password - only password enabled", async ({ page }) => { test("register with username and password - only password enabled", async ({ page }) => {
test.skip() test.skip();
// Given on the default organization "username and password is allowed" is enabled // Given on the default organization "username and password is allowed" is enabled
// Given on the default organization "username registeration allowed" is enabled // Given on the default organization "username registeration allowed" is enabled
// Given on the default organization no idp is configured and enabled // Given on the default organization no idp is configured and enabled
@@ -51,7 +51,7 @@ test("register with username and password - only password enabled", async ({ pag
}); });
test("register with username and password - wrong password not enough characters", async ({ page }) => { test("register with username and password - wrong password not enough characters", async ({ page }) => {
test.skip() test.skip();
// Given on the default organization "username and password is allowed" is enabled // Given on the default organization "username and password is allowed" is enabled
// Given on the default organization "username registeration allowed" is enabled // Given on the default organization "username registeration allowed" is enabled
// Given on the default organization no idp is configured and enabled // Given on the default organization no idp is configured and enabled
@@ -66,7 +66,7 @@ test("register with username and password - wrong password not enough characters
}); });
test("register with username and password - wrong password number missing", async ({ page }) => { test("register with username and password - wrong password number missing", async ({ page }) => {
test.skip() test.skip();
// Given on the default organization "username and password is allowed" is enabled // Given on the default organization "username and password is allowed" is enabled
// Given on the default organization "username registeration allowed" is enabled // Given on the default organization "username registeration allowed" is enabled
// Given on the default organization no idp is configured and enabled // Given on the default organization no idp is configured and enabled
@@ -81,7 +81,7 @@ test("register with username and password - wrong password number missing", asyn
}); });
test("register with username and password - wrong password upper case missing", async ({ page }) => { test("register with username and password - wrong password upper case missing", async ({ page }) => {
test.skip() test.skip();
// Given on the default organization "username and password is allowed" is enabled // Given on the default organization "username and password is allowed" is enabled
// Given on the default organization "username registeration allowed" is enabled // Given on the default organization "username registeration allowed" is enabled
// Given on the default organization no idp is configured and enabled // Given on the default organization no idp is configured and enabled
@@ -96,7 +96,7 @@ test("register with username and password - wrong password upper case missing",
}); });
test("register with username and password - wrong password lower case missing", async ({ page }) => { test("register with username and password - wrong password lower case missing", async ({ page }) => {
test.skip() test.skip();
// Given on the default organization "username and password is allowed" is enabled // Given on the default organization "username and password is allowed" is enabled
// Given on the default organization "username registeration allowed" is enabled // Given on the default organization "username registeration allowed" is enabled
// Given on the default organization no idp is configured and enabled // Given on the default organization no idp is configured and enabled
@@ -111,7 +111,7 @@ test("register with username and password - wrong password lower case missing",
}); });
test("register with username and password - wrong password symboo missing", async ({ page }) => { test("register with username and password - wrong password symboo missing", async ({ page }) => {
test.skip() test.skip();
// Given on the default organization "username and password is allowed" is enabled // Given on the default organization "username and password is allowed" is enabled
// Given on the default organization "username registeration allowed" is enabled // Given on the default organization "username registeration allowed" is enabled
// Given on the default organization no idp is configured and enabled // Given on the default organization no idp is configured and enabled
@@ -126,7 +126,7 @@ test("register with username and password - wrong password symboo missing", asyn
}); });
test("register with username and password - password and passkey enabled", async ({ page }) => { test("register with username and password - password and passkey enabled", async ({ page }) => {
test.skip() test.skip();
// Given on the default organization "username and password is allowed" is enabled // Given on the default organization "username and password is allowed" is enabled
// Given on the default organization "username registeration allowed" is enabled // Given on the default organization "username registeration allowed" is enabled
// Given on the default organization no idp is configured and enabled // Given on the default organization no idp is configured and enabled
@@ -142,7 +142,7 @@ test("register with username and password - password and passkey enabled", async
}); });
test("register with username and passkey - password and passkey enabled", async ({ page }) => { test("register with username and passkey - password and passkey enabled", async ({ page }) => {
test.skip() test.skip();
// Given on the default organization "username and password is allowed" is enabled // Given on the default organization "username and password is allowed" is enabled
// Given on the default organization "username registeration allowed" is enabled // Given on the default organization "username registeration allowed" is enabled
// Given on the default organization no idp is configured and enabled // Given on the default organization no idp is configured and enabled
@@ -159,7 +159,7 @@ test("register with username and passkey - password and passkey enabled", async
}); });
test("register with username and password - registration disabled", async ({ page }) => { test("register with username and password - registration disabled", async ({ page }) => {
test.skip() test.skip();
// Given on the default organization "username and password is allowed" is enabled // Given on the default organization "username and password is allowed" is enabled
// Given on the default organization "username registeration allowed" is enabled // Given on the default organization "username registeration allowed" is enabled
// Given on the default organization no idp is configured and enabled // Given on the default organization no idp is configured and enabled
@@ -168,7 +168,7 @@ test("register with username and password - registration disabled", async ({ pag
}); });
test("register with username and password - multiple registration options", async ({ page }) => { test("register with username and password - multiple registration options", async ({ page }) => {
test.skip() test.skip();
// Given on the default organization "username and password is allowed" is enabled // Given on the default organization "username and password is allowed" is enabled
// Given on the default organization "username registeration allowed" is enabled // Given on the default organization "username registeration allowed" is enabled
// Given on the default organization one idp is configured and enabled // Given on the default organization one idp is configured and enabled

View File

@@ -31,7 +31,7 @@ test("username and passkey login", async ({ user, page }) => {
}); });
test("username and passkey login, multiple auth methods", async ({ page }) => { test("username and passkey login, multiple auth methods", async ({ page }) => {
test.skip() test.skip();
// Given passkey and password is enabled on the organization of the user // Given passkey and password is enabled on the organization of the user
// Given the user has password and passkey registered // Given the user has password and passkey registered
// enter username // enter username

View File

@@ -44,7 +44,7 @@ test.skip("DOESN'T WORK: username, password and email otp login, enter code manu
}); });
test("username, password and email otp login, click link in email", async ({ page }) => { test("username, password and email otp login, click link in email", async ({ page }) => {
base.skip() base.skip();
// Given email otp is enabled on the organization of the user // Given email otp is enabled on the organization of the user
// Given the user has only email otp configured as second factor // Given the user has only email otp configured as second factor
// User enters username // User enters username
@@ -85,7 +85,7 @@ test("username, password and email otp login, wrong code", async ({ user, page }
}); });
test("username, password and email otp login, multiple mfa options", async ({ page }) => { test("username, password and email otp login, multiple mfa options", async ({ page }) => {
base.skip() base.skip();
// Given email otp and sms otp is enabled on the organization of the user // Given email otp and sms otp is enabled on the organization of the user
// Given the user has email and sms otp configured as second factor // Given the user has email and sms otp configured as second factor
// User enters username // User enters username

View File

@@ -57,7 +57,7 @@ test("username, password and totp otp login, wrong code", async ({ user, page })
}); });
test("username, password and totp login, multiple mfa options", async ({ page }) => { test("username, password and totp login, multiple mfa options", async ({ page }) => {
test.skip() test.skip();
// Given totp and email otp is enabled on the organization of the user // Given totp and email otp is enabled on the organization of the user
// Given the user has totp and email otp configured as second factor // Given the user has totp and email otp configured as second factor
// User enters username // User enters username

View File

@@ -1,7 +1,7 @@
import { test } from "@playwright/test"; import { test } from "@playwright/test";
test("username, password and u2f login", async ({ page }) => { test("username, password and u2f login", async ({ page }) => {
test.skip() test.skip();
// Given u2f is enabled on the organization of the user // Given u2f is enabled on the organization of the user
// Given the user has only u2f configured as second factor // Given the user has only u2f configured as second factor
// User enters username // User enters username
@@ -12,7 +12,7 @@ test("username, password and u2f login", async ({ page }) => {
}); });
test("username, password and u2f login, multiple mfa options", async ({ page }) => { test("username, password and u2f login, multiple mfa options", async ({ page }) => {
test.skip() test.skip();
// Given u2f and semailms otp is enabled on the organization of the user // Given u2f and semailms otp is enabled on the organization of the user
// Given the user has u2f and email otp configured as second factor // Given the user has u2f and email otp configured as second factor
// User enters username // User enters username

View File

@@ -51,7 +51,7 @@ test("username and password login, wrong password", async ({ user, page }) => {
}); });
test("username and password login, wrong username, ignore unknown usernames", async ({ user, page }) => { test("username and password login, wrong username, ignore unknown usernames", async ({ user, page }) => {
test.skip() test.skip();
// Given user doesn't exist but ignore unknown usernames setting is set to true // Given user doesn't exist but ignore unknown usernames setting is set to true
// Given username password login is enabled on the users organization // Given username password login is enabled on the users organization
// enter login name // enter login name
@@ -60,7 +60,7 @@ test("username and password login, wrong username, ignore unknown usernames", as
}); });
test("username and password login, initial password change", async ({ user, page }) => { test("username and password login, initial password change", async ({ user, page }) => {
test.skip() test.skip();
// Given user is created and has changePassword set to true // Given user is created and has changePassword set to true
// Given username password login is enabled on the users organization // Given username password login is enabled on the users organization
// enter login name // enter login name
@@ -69,7 +69,7 @@ test("username and password login, initial password change", async ({ user, page
}); });
test("username and password login, reset password hidden", async ({ user, page }) => { test("username and password login, reset password hidden", async ({ user, page }) => {
test.skip() test.skip();
// Given the organization has enabled "Password reset hidden" in the login policy // Given the organization has enabled "Password reset hidden" in the login policy
// Given username password login is enabled on the users organization // Given username password login is enabled on the users organization
// enter login name // enter login name
@@ -77,7 +77,7 @@ test("username and password login, reset password hidden", async ({ user, page }
}); });
test("username and password login, reset password - enter code manually", async ({ user, page }) => { test("username and password login, reset password - enter code manually", async ({ user, page }) => {
test.skip() test.skip();
// Given user has forgotten password and clicks the forgot password button // Given user has forgotten password and clicks the forgot password button
// Given username password login is enabled on the users organization // Given username password login is enabled on the users organization
// enter login name // enter login name
@@ -87,7 +87,7 @@ test("username and password login, reset password - enter code manually", async
}); });
test("username and password login, reset password - click link", async ({ user, page }) => { test("username and password login, reset password - click link", async ({ user, page }) => {
test.skip() test.skip();
// Given user has forgotten password and clicks the forgot password button, and then the link in the email // Given user has forgotten password and clicks the forgot password button, and then the link in the email
// Given username password login is enabled on the users organization // Given username password login is enabled on the users organization
// enter login name // enter login name
@@ -98,7 +98,7 @@ test("username and password login, reset password - click link", async ({ user,
}); });
test("username and password login, reset password, resend code", async ({ user, page }) => { test("username and password login, reset password, resend code", async ({ user, page }) => {
test.skip() test.skip();
// Given user has forgotten password and clicks the forgot password button and then resend code // Given user has forgotten password and clicks the forgot password button and then resend code
// Given username password login is enabled on the users organization // Given username password login is enabled on the users organization
// enter login name // enter login name
@@ -109,7 +109,7 @@ test("username and password login, reset password, resend code", async ({ user,
}); });
test("email login enabled", async ({ user, page }) => { test("email login enabled", async ({ user, page }) => {
test.skip() test.skip();
// Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists // Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists
// Given no other user with the same email address exists // Given no other user with the same email address exists
// enter email address "test@zitadel.com " in login screen // enter email address "test@zitadel.com " in login screen
@@ -117,7 +117,7 @@ test("email login enabled", async ({ user, page }) => {
}); });
test("email login disabled", async ({ user, page }) => { test("email login disabled", async ({ user, page }) => {
test.skip() test.skip();
// Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists // Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists
// Given no other user with the same email address exists // Given no other user with the same email address exists
// enter email address "test@zitadel.com" in login screen // enter email address "test@zitadel.com" in login screen
@@ -125,7 +125,7 @@ test("email login disabled", async ({ user, page }) => {
}); });
test("email login enabled - multiple users", async ({ user, page }) => { test("email login enabled - multiple users", async ({ user, page }) => {
test.skip() test.skip();
// Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists // Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists
// Given a second user with the username "testuser2", email test@zitadel.com and phone number 0711111111 exists // Given a second user with the username "testuser2", email test@zitadel.com and phone number 0711111111 exists
// enter email address "test@zitadel.com" in login screen // enter email address "test@zitadel.com" in login screen
@@ -133,7 +133,7 @@ test("email login enabled - multiple users", async ({ user, page }) => {
}); });
test("phone login enabled", async ({ user, page }) => { test("phone login enabled", async ({ user, page }) => {
test.skip() test.skip();
// Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists // Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists
// Given no other user with the same phon number exists // Given no other user with the same phon number exists
// enter phone number "0711111111" in login screen // enter phone number "0711111111" in login screen
@@ -141,7 +141,7 @@ test("phone login enabled", async ({ user, page }) => {
}); });
test("phone login disabled", async ({ user, page }) => { test("phone login disabled", async ({ user, page }) => {
test.skip() test.skip();
// Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists // Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists
// Given no other user with the same phone number exists // Given no other user with the same phone number exists
// enter phone number "0711111111" in login screen // enter phone number "0711111111" in login screen
@@ -149,7 +149,7 @@ test("phone login disabled", async ({ user, page }) => {
}); });
test("phone login enabled - multiple users", async ({ user, page }) => { test("phone login enabled - multiple users", async ({ user, page }) => {
test.skip() test.skip();
// Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists // Given user with the username "testuser", email test@zitadel.com and phone number 0711111111 exists
// Given a second user with the username "testuser2", email test@zitadel.com and phone number 0711111111 exists // Given a second user with the username "testuser2", email test@zitadel.com and phone number 0711111111 exists
// enter phone number "0711111111" in login screen // enter phone number "0711111111" in login screen

View File

@@ -2,10 +2,9 @@ import { Authenticator } from "@otplib/core";
import { createDigest, createRandomBytes } from "@otplib/plugin-crypto"; import { createDigest, createRandomBytes } from "@otplib/plugin-crypto";
import { keyDecoder, keyEncoder } from "@otplib/plugin-thirty-two"; // use your chosen base32 plugin import { keyDecoder, keyEncoder } from "@otplib/plugin-thirty-two"; // use your chosen base32 plugin
import axios from "axios"; import axios from "axios";
import { OtpType, userProps } from "./user";
import dotenv from "dotenv"; import dotenv from "dotenv";
import path from "path"; import path from "path";
import fs from "node:fs"; import { OtpType, userProps } from "./user";
dotenv.config({ path: path.resolve(__dirname, "../.env-file/.env") }); dotenv.config({ path: path.resolve(__dirname, "../.env-file/.env") });

View File

@@ -7,8 +7,8 @@
"test:integration:watch:open": "pnpm exec concurrently --names 'mock,test' --kill-others 'pnpm:mock' 'env-cmd -f ./.env.integration start-server-and-test dev http://localhost:3000 \"pnpm nodemon -e js,jsx,ts,tsx,css,scss --ignore \\\"__test__/**\\\" --exec \\\"pnpm test:integration:open\\\"\"'", "test:integration:watch:open": "pnpm exec concurrently --names 'mock,test' --kill-others 'pnpm:mock' 'env-cmd -f ./.env.integration start-server-and-test dev http://localhost:3000 \"pnpm nodemon -e js,jsx,ts,tsx,css,scss --ignore \\\"__test__/**\\\" --exec \\\"pnpm test:integration:open\\\"\"'",
"test:integration:run": "pnpm exec cypress run --quiet", "test:integration:run": "pnpm exec cypress run --quiet",
"test:integration:open": "pnpm exec cypress open", "test:integration:open": "pnpm exec cypress open",
"mock": "pnpm mock:stop && docker run --rm --name zitadel-mock-grpc-server --publish 22220:22220 --publish 22222:22222 ${CORE_MOCK_TAG:-zitadel-core-mock:local}", "mock": "make login-test-integration-build-dev",
"mock:stop": "docker rm --force zitadel-mock-grpc-server 2>/dev/null || true" "mock:stop": "docker compose down core-mock"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^22.14.1", "@types/node": "^22.14.1",

View File

@@ -1,10 +1,8 @@
FROM login-dev-base AS login-lint FROM login-dev-base AS login-lint
COPY .prettierrc .prettierignore ./ COPY .prettierrc .prettierignore ./
COPY packages/zitadel-tsconfig packages/zitadel-tsconfig
COPY packages/zitadel-prettier-config packages/zitadel-prettier-config
COPY packages/zitadel-eslint-config packages/zitadel-eslint-config
COPY apps/login/package.json apps/login/ COPY apps/login/package.json apps/login/
RUN --mount=type=cache,id=pnpm,target=/pnpm/store \ RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
pnpm install --frozen-lockfile --workspace-root --filter apps/login pnpm install --frozen-lockfile --workspace-root --filter apps/login
COPY apps/login apps/login COPY . .
RUN pnpm lint && pnpm format --check RUN find . -type f -not -path "./node_modules/*" -not -path "./apps/login/node_modules/*"
RUN pnpm lint && pnpm format

View File

@@ -1,17 +1,22 @@
* *
!apps/login
apps/login/.next
apps/login/screenshots
!apps/login-test-integration
!apps/login-test-acceptance
apps/login-test-acceptance/test-results
!/packages/zitadel-tsconfig/*
!/packages/zitadel-prettier-config
!/packages/zitadel-eslint-config
!/.prettierrc !/.prettierrc
!/.prettierignore !/.prettierignore
!/packages/zitadel-tsconfig/*.json
!/packages/zitadel-prettier-config/*.js **/*.md
!/packages/zitadel-prettier-config/*.json **/*.png
!/packages/zitadel-eslint-config/*.js **/node_modules
!/packages/zitadel-eslint-config/*.json **/.turbo
!/apps/login/src
!/apps/login/public
!/apps/login/locales
!/apps/login/constants
!/apps/login/*.json
!/apps/login/*.d.ts
!/apps/login/*.cjs
!/apps/login/*.mjs
!/apps/login/*.mts