import React from "react"; import type { Meta, StoryObj } from "@storybook/react"; import { createKcPageStory } from "../KcPageStory"; const { KcPageStory } = createKcPageStory({ pageId: "login-update-password.ftl" }); const meta = { title: "login/login-update-password.ftl", component: KcPageStory } satisfies Meta; export default meta; type Story = StoryObj; export const Default: Story = { render: () => }; /** * WithPasswordError: * - Purpose: Tests when there is an error in the password input (e.g., invalid password). * - Scenario: Simulates the case where the user enters an invalid password, and an error message is displayed. * - Key Aspect: Ensures the password input field shows an error message when validation fails. */ export const WithPasswordError: Story = { render: () => ( field === "password", get: () => "Password must be at least 8 characters long." }, isAppInitiatedAction: false }} /> ) }; /** * WithPasswordConfirmError: * - Purpose: Tests when there is an error in the password confirmation input (e.g., passwords do not match). * - Scenario: Simulates the case where the user enters mismatching passwords, and an error message is displayed in the confirmation field. * - Key Aspect: Ensures that the password confirmation field shows an error when passwords do not match. */ export const WithPasswordConfirmError: Story = { render: () => ( field === "password-confirm", get: () => "Passwords do not match." }, isAppInitiatedAction: false }} /> ) }; /** * WithAppInitiatedAction: * - Purpose: Tests when the update password action was triggered by an app. * - Scenario: Simulates the case where the user presses a 'change password' button in an app and is redirected to Keycloak to change it. * - Key Aspect: Ensures the 'Cancel' button is shown correctly, which displays only when the action is app initiated. */ export const WithAppInitiatedAction: Story = { render: () => ( ) };