From f7323d1e50241e62d6776bc9e4486cc0e363a791 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 31 Jul 2024 15:49:11 +1000 Subject: [PATCH] [PUI] Bug fix for API forms (#7758) * [PUI] Bug fix for API forms - Ensure that "blank" data does not get overriden with previous fields - Better logic for form data fetching * Playwright test fixes --- src/frontend/src/components/forms/ApiForm.tsx | 6 +++--- src/frontend/tests/pages/pui_scan.spec.ts | 4 ++-- src/frontend/tests/pui_general.spec.ts | 5 ++++- src/frontend/tests/pui_stock.spec.ts | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/frontend/src/components/forms/ApiForm.tsx b/src/frontend/src/components/forms/ApiForm.tsx index 797862c0f3..67159e6398 100644 --- a/src/frontend/src/components/forms/ApiForm.tsx +++ b/src/frontend/src/components/forms/ApiForm.tsx @@ -309,17 +309,17 @@ export function ApiForm({ for (const k of Object.keys(_fields)) { // Ensure default values override initial field spec - if (defaultValues[k]) { + if (k in defaultValues) { _fields[k].value = defaultValues[k]; } // Ensure initial data overrides default values - if (_initialData && _initialData[k]) { + if (_initialData && k in _initialData) { _fields[k].value = _initialData[k]; } // Ensure fetched data overrides also - if (_fetchedData && _fetchedData[k]) { + if (_fetchedData && k in _fetchedData) { _fields[k].value = _fetchedData[k]; } } diff --git a/src/frontend/tests/pages/pui_scan.spec.ts b/src/frontend/tests/pages/pui_scan.spec.ts index 000aada917..78bfdfb419 100644 --- a/src/frontend/tests/pages/pui_scan.spec.ts +++ b/src/frontend/tests/pages/pui_scan.spec.ts @@ -38,8 +38,8 @@ test('PUI - Pages - Index - Scan (Stockitem)', async ({ page }) => { // stockitem: 408 await page.getByText('1551ABK').waitFor(); - await page.getByText('Quantity: 145').waitFor(); - await page.getByRole('cell', { name: 'Quantity: 145' }).waitFor(); + await page.getByText('Quantity: 100').waitFor(); + await page.getByRole('cell', { name: 'Quantity: 100' }).waitFor(); }); test('PUI - Pages - Index - Scan (StockLocation)', async ({ page }) => { diff --git a/src/frontend/tests/pui_general.spec.ts b/src/frontend/tests/pui_general.spec.ts index 24a56d91f7..fdc6e536f3 100644 --- a/src/frontend/tests/pui_general.spec.ts +++ b/src/frontend/tests/pui_general.spec.ts @@ -188,7 +188,10 @@ test('PUI - Company', async ({ page }) => { await page.getByRole('tab', { name: 'Purchase Orders' }).click(); await page.getByRole('cell', { name: 'Molex connectors' }).first().waitFor(); await page.getByRole('tab', { name: 'Stock Items' }).click(); - await page.getByRole('cell', { name: 'Blue plastic enclosure' }).waitFor(); + await page + .getByRole('cell', { name: 'Blue plastic enclosure' }) + .first() + .waitFor(); await page.getByRole('tab', { name: 'Contacts' }).click(); await page.getByRole('cell', { name: 'jimmy.mcleod@digikey.com' }).waitFor(); await page.getByRole('tab', { name: 'Addresses' }).click(); diff --git a/src/frontend/tests/pui_stock.spec.ts b/src/frontend/tests/pui_stock.spec.ts index 46535302a9..847050aed9 100644 --- a/src/frontend/tests/pui_stock.spec.ts +++ b/src/frontend/tests/pui_stock.spec.ts @@ -12,7 +12,7 @@ test('PUI - Stock', async ({ page }) => { await page.waitForURL('**/platform/stock/location/index/details'); await page.getByRole('tab', { name: 'Stock Items' }).click(); - await page.getByRole('cell', { name: '1551ABK' }).click(); + await page.getByText('1551ABK').first().click(); await page.getByRole('tab', { name: 'Stock', exact: true }).click(); await page.waitForURL('**/platform/stock/**');