Some checks failed
Chore App Build, Test, and Push Docker Images / build-and-push (push) Has been cancelled
- Consolidated kindness and penalty tests into single files to ensure serial execution and prevent conflicts. - Updated Playwright configuration to define separate test buckets for child options and create child tests, ensuring proper execution order. - Added new tests for child kebab menu options including editing, deleting points, and confirming child deletion. - Removed obsolete tests for kindness and penalty default management. - Updated authentication tokens in user.json for improved security. - Enhanced test reliability by implementing retry logic for UI interactions in the create-child happy path test.
41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
import { test, expect } from '@playwright/test'
|
||
|
||
async function createTestChild(request: any, name: string, age = 8): Promise<string> {
|
||
await request.put('/api/child/add', { data: { name, age } })
|
||
const listRes = await request.get('/api/child/list')
|
||
const data = await listRes.json()
|
||
const child = (data.children ?? []).find((c: any) => c.name === name)
|
||
return child?.id ?? ''
|
||
}
|
||
|
||
test.describe('Child kebab menu – Edit Child', () => {
|
||
const CHILD_NAME = 'KebabEdit'
|
||
let childId = ''
|
||
|
||
test.beforeEach(async ({ request }) => {
|
||
childId = await createTestChild(request, CHILD_NAME)
|
||
})
|
||
|
||
test.afterEach(async ({ request }) => {
|
||
if (childId) await request.delete(`/api/child/${childId}`)
|
||
childId = ''
|
||
})
|
||
|
||
test('Edit Child menu item navigates to the child editor', async ({ page }) => {
|
||
await page.goto('/parent')
|
||
await expect(page.getByRole('heading', { name: CHILD_NAME })).toBeVisible()
|
||
|
||
const card = page.locator('.card').filter({ hasText: CHILD_NAME })
|
||
await card.getByRole('button', { name: 'Options' }).click()
|
||
await expect(card.getByRole('button', { name: 'Options' })).toHaveAttribute(
|
||
'aria-expanded',
|
||
'true',
|
||
)
|
||
|
||
await card.getByRole('button', { name: 'Edit Child' }).click()
|
||
|
||
await expect(page).toHaveURL(/\/parent\/[^/]+\/edit/)
|
||
await expect(page.getByRole('heading', { name: 'Edit Child' })).toBeVisible()
|
||
})
|
||
})
|