mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-23 02:17:11 +00:00
* feat: generate e2e test plan and tests using playwright mcp * feat: settings e2e sanity test cases * feat: playwright prettier * feat: update the gitignore file temporarily exclude test plans * chore: remove e2e test-plan directories from git tracking and update .gitignore * chore: remove playwright github action from frontend repo * chore: update base url in playwright config * chore: add github action to run playwright tests * chore: wrap env variables in quotes and enable uploading test results always * chore: update github action * chore: update github action * Update run-e2e.yaml * Update run-e2e.yaml * feat: update github action
57 lines
2.2 KiB
TypeScript
57 lines
2.2 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
|
|
import { ensureLoggedIn } from '../../../utils/login.util';
|
|
|
|
test('Members & SSO Settings - View and Interact', async ({ page }) => {
|
|
await ensureLoggedIn(page);
|
|
|
|
// 1. Open the sidebar settings menu using data-testid
|
|
await page.getByTestId('settings-nav-item').click();
|
|
|
|
// 2. Click Account Settings in the dropdown (by role/name or data-testid if available)
|
|
await page.getByRole('menuitem', { name: 'Account Settings' }).click();
|
|
|
|
// Assert the main tabpanel/heading (confirmed by DOM)
|
|
await expect(page.getByTestId('settings-page-title')).toBeVisible();
|
|
|
|
// Focus on the settings page sidenav
|
|
await page.getByTestId('settings-page-sidenav').focus();
|
|
|
|
// Click Members & SSO tab in the settings sidebar (by data-testid)
|
|
await page.getByTestId('members-sso').click();
|
|
|
|
// Assert headings and tables
|
|
await expect(
|
|
page.getByRole('heading', { name: /Members \(\d+\)/ }),
|
|
).toBeVisible();
|
|
await expect(
|
|
page.getByRole('heading', { name: /Pending Invites \(\d+\)/ }),
|
|
).toBeVisible();
|
|
await expect(
|
|
page.getByRole('heading', { name: 'Authenticated Domains' }),
|
|
).toBeVisible();
|
|
|
|
// Assert Invite Members button is visible and clickable
|
|
const inviteBtn = page.getByRole('button', { name: /Invite Members/ });
|
|
await expect(inviteBtn).toBeVisible();
|
|
await inviteBtn.click();
|
|
// Assert Invite Members modal/dialog appears (modal title is unique)
|
|
await expect(page.getByText('Invite team members').first()).toBeVisible();
|
|
// Close the modal (use unique 'Close' button)
|
|
await page.getByRole('button', { name: 'Close' }).click();
|
|
|
|
// Assert Edit and Delete buttons are present for at least one member
|
|
const editBtn = page.getByRole('button', { name: /Edit/ }).first();
|
|
const deleteBtn = page.getByRole('button', { name: /Delete/ }).first();
|
|
await expect(editBtn).toBeVisible();
|
|
await expect(deleteBtn).toBeVisible();
|
|
|
|
// Assert Add Domains button is visible
|
|
await expect(page.getByRole('button', { name: /Add Domains/ })).toBeVisible();
|
|
// Assert Configure SSO or Edit Google Auth button is visible for at least one domain
|
|
const ssoBtn = page
|
|
.getByRole('button', { name: /Configure SSO|Edit Google Auth/ })
|
|
.first();
|
|
await expect(ssoBtn).toBeVisible();
|
|
});
|