mirror of
https://github.com/Portabase/portabase.git
synced 2026-07-14 11:16:13 +02:00
* fix: release.yml * fix: S3ChannelConfigSchema type port mismatch * fix(csp): Conditionally sets UPGRADE_INSECURE_REQUESTS based on the PROJECT_URL scheme. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: fix bug in github action. * chore: adding e2e tesing for notification. * fix: updating trivy-action to the latest version, using new tagging pattern (vX.XX.XX instead of (X.XX.XX). * fix: removing browser targeting in e2e workflow as it is already specify in playwright.config.ts * fix: mapping secrets to environment variables in the end-to-end workflow. * fix: add a condition to allow end-to-end workflow execution only on main repo (fork are excluded). * fix: adding some data-testid to rely on more stable locator. * fix: adding some data-testid to rely on more stable locator. * fix: removing unusued browsers in end-to-end workflow. * fix: removing unused browsers in end-to-end workflow. * fix: removing unused browsers in end-to-end workflow. --------- Co-authored-by: charlesgauthereau <charles.gauthereau@soluce-technologies.com> Co-authored-by: killianlarcher <killian.larcher@soluce-technologies.com>
51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import {Page} from "@playwright/test";
|
|
|
|
export type UserCredentials = {
|
|
username: string
|
|
email: string
|
|
password: string
|
|
}
|
|
|
|
export const users: Record<string, UserCredentials> = {
|
|
admin: {username: "Admin", email: "admin@example.com", password: "testPASS123456!"},
|
|
normal: {username: "John Doe", email: "john.doe@example.com", password: "testPASS123456!"},
|
|
}
|
|
|
|
/**
|
|
* Fill and submit the registration form.
|
|
*
|
|
* Executes from: `/register`.
|
|
*/
|
|
export async function register(page: Page, name: string, email: string, password: string, confirmPassword: string) {
|
|
await page.locator('input[name="name"]').fill(name)
|
|
await page.locator('input[name="email"]').fill(email)
|
|
await page.locator('input[name="password"]').fill(password)
|
|
await page.locator('input[name="confirmPassword"]').fill(confirmPassword)
|
|
|
|
await page.click('button[type="submit"]')
|
|
}
|
|
|
|
/**
|
|
* Fill and submit the login form.
|
|
*
|
|
* Executes from: `/login`.
|
|
*/
|
|
export async function login(page: Page, email: string, password: string) {
|
|
await page.locator('input[name="email"]').fill(email)
|
|
await page.locator('input[name="password"]').fill(password)
|
|
|
|
await page.locator('button:has-text("Login")').click()
|
|
}
|
|
|
|
/**
|
|
* Log out the current authenticated user.
|
|
*
|
|
* Executes from: any authenticated `/dashboard/**` page.
|
|
*/
|
|
export async function logout(page: Page) {
|
|
const profileButton = page.getByTestId('profile-dropdown')
|
|
await profileButton.first().click();
|
|
|
|
await page.getByRole("menuitem").filter({hasText: /Logout/i}).click();
|
|
}
|