Refactored frontend directory
Some checks failed
Chore App Build, Test, and Push Docker Images / build-and-push (push) Failing after 2m46s
Some checks failed
Chore App Build, Test, and Push Docker Images / build-and-push (push) Failing after 2m46s
This commit is contained in:
54
frontend/e2e/mode_parent/child-options/delete-child.spec.ts
Normal file
54
frontend/e2e/mode_parent/child-options/delete-child.spec.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
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 – Delete Child', () => {
|
||||
test.describe.configure({ mode: 'serial' })
|
||||
|
||||
const CHILD_NAME = 'KebabDelete'
|
||||
let childId = ''
|
||||
|
||||
test.afterEach(async ({ request }) => {
|
||||
// Best-effort cleanup in case the test did not delete the child
|
||||
if (childId) await request.delete(`/api/child/${childId}`)
|
||||
childId = ''
|
||||
})
|
||||
|
||||
test('Confirm deletes the child from the list', async ({ page, request }) => {
|
||||
childId = await createTestChild(request, CHILD_NAME)
|
||||
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 card.getByRole('button', { name: 'Delete Child' }).click()
|
||||
|
||||
await expect(page.getByText('Are you sure you want to delete this child?')).toBeVisible()
|
||||
await page.getByRole('button', { name: 'Delete' }).click()
|
||||
|
||||
await expect(page.getByRole('heading', { name: CHILD_NAME })).not.toBeVisible()
|
||||
childId = '' // already deleted, skip afterEach cleanup
|
||||
})
|
||||
|
||||
test('Cancel does not delete the child', async ({ page, request }) => {
|
||||
childId = await createTestChild(request, CHILD_NAME)
|
||||
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 card.getByRole('button', { name: 'Delete Child' }).click()
|
||||
|
||||
await expect(page.getByText('Are you sure you want to delete this child?')).toBeVisible()
|
||||
await page.getByRole('button', { name: 'Cancel' }).click()
|
||||
|
||||
await expect(page.getByText('Are you sure you want to delete this child?')).not.toBeVisible()
|
||||
await expect(page.getByRole('heading', { name: CHILD_NAME })).toBeVisible()
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user