more tests
All checks were successful
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 2m30s

This commit is contained in:
2026-03-09 13:28:43 -04:00
parent 2c65d3ecaf
commit accf596bd7
11 changed files with 26 additions and 33 deletions

View File

@@ -2,17 +2,17 @@
"cookies": [
{
"name": "refresh_token",
"value": "exz9voXnacTUkQGnKkc2QHLZA1DB3-7neit29Gtan5w",
"value": "C3wwythvEFsezN93gTCH0C7TP4UEMJT1CszA66dP9Es",
"domain": "localhost",
"path": "/api/auth",
"expires": 1780801137.642288,
"expires": 1780853177.47085,
"httpOnly": true,
"secure": true,
"sameSite": "Strict"
},
{
"name": "access_token",
"value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZUB0ZXN0LmNvbSIsInVzZXJfaWQiOiI2NmQ5Yzk0NC05MzFmLTQyODktOWYxZS1kNzZhODQyZTM0MzIiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzMwMjYwMzd9.gjcizOIYTbdX6B-AobROaoJtMczY-7EnoyUco-b-xE8",
"value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZUB0ZXN0LmNvbSIsInVzZXJfaWQiOiI2OGFiNGNkNi04Y2NmLTQxNDItOWRmZC1kYjVmZmNmNDQ4OGQiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzMwNzgwNzd9.zZErQX-waP_VILAEaZbNnZmFlGAc6wvNiSQEop0IjsQ",
"domain": "localhost",
"path": "/",
"expires": -1,
@@ -27,7 +27,7 @@
"localStorage": [
{
"name": "authSyncEvent",
"value": "{\"type\":\"logout\",\"at\":1773025137442}"
"value": "{\"type\":\"logout\",\"at\":1773077177348}"
}
]
}

View File

@@ -2,17 +2,17 @@
"cookies": [
{
"name": "refresh_token",
"value": "aQ7Hdjmxefq4F6nLro-Sz0d2qO_3XN3v_tO4ioHOH6w",
"value": "AkJCQm0cJAkwg6CEzwBZMGks62XDowJwEaapsYWLc-o",
"domain": "localhost",
"path": "/api/auth",
"expires": 1780799347.476442,
"expires": 1780853177.819182,
"httpOnly": true,
"secure": true,
"sameSite": "Strict"
},
{
"name": "access_token",
"value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZUB0ZXN0LmNvbSIsInVzZXJfaWQiOiIzMzg1YWRjNC0yYmI4LTQyMTktOGFiNi05ZjkxNzAyNzA0MjEiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzMwMjQyNDd9.g3audbmZ_S-Bc5ZfgwvpfoQuJEjCS2vd3dF8baExFEA",
"value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImUyZUB0ZXN0LmNvbSIsInVzZXJfaWQiOiI5MTBjZmZmNS01NzhjLTRmZDgtYTM1NS1hN2JkYTUyZmE2OGUiLCJ0b2tlbl92ZXJzaW9uIjowLCJleHAiOjE3NzMwNzgwNzd9.BkKApnds25Nw7wMJ8wQcwPJ-tahduQCC_le_6PT180I",
"domain": "localhost",
"path": "/",
"expires": -1,
@@ -27,7 +27,11 @@
"localStorage": [
{
"name": "authSyncEvent",
"value": "{\"type\":\"parent_logout\",\"at\":1773023350687}"
"value": "{\"type\":\"logout\",\"at\":1773077177706}"
},
{
"name": "parentAuth",
"value": "{\"expiresAt\":1773249977951}"
}
]
}

View File

@@ -21,12 +21,11 @@ setup('authenticate', async ({ page }) => {
await page.getByRole('button', { name: 'Parent login' }).click()
// Fill in the PIN and submit
const pinInput = page.getByLabel('PIN').or(page.getByPlaceholder('Enter PIN'))
const pinInput = page.getByPlaceholder('46 digits')
await pinInput.waitFor({ timeout: 5000 })
await page.screenshot({ path: 'auth-setup-before-pin.png' })
await pinInput.fill(E2E_PIN)
await page.screenshot({ path: 'auth-setup-after-pin.png' })
await page.getByRole('button', { name: 'Verify' }).click()
await page.getByLabel('Stay in parent mode on this device').check()
await page.getByRole('button', { name: 'OK' }).click()
// LoginButton does router.push('/parent') after PIN - wait for it
await page.waitForURL(/\/parent(\/|$)/)
@@ -36,7 +35,9 @@ setup('authenticate', async ({ page }) => {
await page.getByRole('button', { name: 'Add Child' }).waitFor({ timeout: 5000 })
} catch (e) {
await page.screenshot({ path: 'auth-setup-parent-fail.png' })
throw new Error('Parent mode not reached after PIN entry. See auth-setup-parent-fail.png for details.')
throw new Error(
'Parent mode not reached after PIN entry. See auth-setup-parent-fail.png for details.',
)
}
await page.context().storageState({ path: STORAGE_STATE })

View File

@@ -3,7 +3,9 @@
import { test, expect } from '@playwright/test'
test.describe('Create Child', () => {
test.beforeEach(async ({ page }) => {
test.beforeEach(async ({ page }, testInfo) => {
test.skip(testInfo.project.name === 'chromium-no-pin', 'Requires parent-authenticated mode')
// Navigate to app root - router redirects to /parent (children list) when parent-authenticated
await page.goto('/')
await page.getByRole('button', { name: 'Add Child' }).click()