Chore App Build, Test, and Push Docker Images / build-and-push (push) Failing after 2m29s
- Introduced detailed documentation for test generation workflow in Playwright CLI, covering planning, generating, and healing tests. - Added tracing capabilities documentation, including usage, output files, and best practices for debugging and performance analysis. - Included video recording instructions, emphasizing best practices for capturing browser automation sessions with chapter markers and overlays. - Implemented user tutorial authentication setup and tutorial tests for parent mode in the E2E testing framework. - Created JSON files for user tutorial state management, ensuring isolated test environments.
31 lines
1.4 KiB
TypeScript
31 lines
1.4 KiB
TypeScript
import { test, expect } from '@playwright/test'
|
||
import { E2E_PIN } from '../../e2e-constants'
|
||
|
||
test.describe('Parent profile button – temporary parent mode', () => {
|
||
test.beforeEach(async ({ page }) => {
|
||
await page.goto('/parent')
|
||
// Dismiss tutorial overlay if present — it intercepts pointer events
|
||
const skip = page.getByRole('button', { name: 'Skip tour' })
|
||
if (await skip.isVisible({ timeout: 1000 }).catch(() => false)) {
|
||
await skip.click()
|
||
}
|
||
// Switch from permanent mode to temporary mode:
|
||
// 1. Exit parent mode via Child Mode
|
||
await page.getByRole('button', { name: 'Parent menu' }).click()
|
||
await page.getByRole('menuitem', { name: 'Child Mode' }).click()
|
||
await expect(page.getByRole('button', { name: 'Parent login' })).toBeVisible()
|
||
// 2. Re-enter parent mode WITHOUT the persistence checkbox
|
||
await page.getByRole('button', { name: 'Parent login' }).click()
|
||
const pinInput = page.getByPlaceholder('4–6 digits')
|
||
await pinInput.waitFor({ timeout: 5000 })
|
||
await pinInput.fill(E2E_PIN)
|
||
// Do NOT check 'Stay in parent mode'
|
||
await page.getByRole('button', { name: 'OK' }).click()
|
||
await page.waitForURL(/\/parent(\/|$)/)
|
||
})
|
||
|
||
test('Badge – no 🔒 badge in temporary parent mode', async ({ page }) => {
|
||
await expect(page.getByLabel('Persistent parent mode active')).not.toBeVisible()
|
||
})
|
||
})
|