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>
70 lines
2.2 KiB
TypeScript
70 lines
2.2 KiB
TypeScript
import {Page} from "@playwright/test";
|
|
|
|
export function getUserRow(page: Page, email: string) {
|
|
return page.locator("tr").filter({hasText: email}).first();
|
|
}
|
|
|
|
export function getOrganizationRow(page: Page, organizationName: string) {
|
|
return page.locator("tr").filter({hasText: organizationName}).first();
|
|
}
|
|
|
|
/**
|
|
* Create an organization from the selected entrypoint.
|
|
*
|
|
* Available entrypoints:
|
|
* - `button`: the organizations page create button.
|
|
* - `sidebar`: the sidebar organization switcher.
|
|
*
|
|
* Executes from:
|
|
* - `/dashboard/admin/organizations` for "button" entrypoint
|
|
* - any `/dashboard/**` page for "sidebar" entrypoint
|
|
*/
|
|
export async function create(page: Page, entrypoint: "button" | "sidebar", name: string) {
|
|
if (entrypoint === "sidebar") {
|
|
await page.getByRole("button", {name: "Default Organization"}).click();
|
|
await page.getByText("Create organization", {exact: true}).click();
|
|
} else {
|
|
await page.getByRole("button", {name: /Create a new organization/i}).click();
|
|
}
|
|
|
|
await page.getByLabel("Name").fill(name);
|
|
await page.getByRole("button", {name: "Create"}).click();
|
|
}
|
|
|
|
/**
|
|
* Switch the active organization from the sidebar switcher.
|
|
*
|
|
* Executes from: any `/dashboard/**` if the sidebar is visible.
|
|
*/
|
|
export async function switchTo(page: Page, name: string) {
|
|
await page.getByTestId('organization-dropdown').click();
|
|
await page.getByRole('menuitem', {name: name}).click();
|
|
}
|
|
|
|
/**
|
|
* Switch back to the default organization.
|
|
*
|
|
* Executes from: any `/dashboard/**` if the sidebar is visible.
|
|
*/
|
|
export async function switchToDefault(page: Page) {
|
|
await switchTo(page, "Default Organization");
|
|
}
|
|
|
|
const ROLE_LABELS = {
|
|
pending: "Pending",
|
|
user: "User",
|
|
admin: "Admin",
|
|
} as const;
|
|
|
|
/**
|
|
* Change the global role of a user from the admin users role modal.
|
|
*
|
|
* Executes from: the "Change the user's role" dialog opened from `/dashboard/admin/users`.
|
|
*/
|
|
export async function changeUserRole(page: Page, role: keyof typeof ROLE_LABELS) {
|
|
const roleOption = ROLE_LABELS[role];
|
|
|
|
await page.getByRole("combobox").click();
|
|
await page.getByRole("option", {name: roleOption}).click();
|
|
await page.getByRole("button", {name: "Validate"}).click();
|
|
} |