From 19e93b6b6b7f81c9486977091134486f355f8c28 Mon Sep 17 00:00:00 2001 From: Piotr Stachyra Date: Thu, 4 Jun 2026 20:53:13 +0200 Subject: [PATCH 1/2] widget_3 --- test/helpers/widgets.ts | 22 ++++++++++++++++++++-- test/specs/widgets.e2e.ts | 15 ++++----------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/test/helpers/widgets.ts b/test/helpers/widgets.ts index f46b8fd..8b96c3e 100644 --- a/test/helpers/widgets.ts +++ b/test/helpers/widgets.ts @@ -40,13 +40,13 @@ const WIDGETS: Record = { facts: { listItemId: 'WidgetListItem-facts', actionName: 'Bitcoin Facts', - homeId: () => (driver.isIOS ? 'FactsWidget' : undefined), + homeId: () => 'FactsWidget', hasSettings: () => false, }, weather: { listItemId: 'WidgetListItem-weather', actionName: 'Bitcoin Weather', - homeId: () => (driver.isIOS ? 'WeatherWidget' : undefined), + homeId: () => 'WeatherWidget', hasSettings: () => true, }, suggestions: { @@ -98,6 +98,24 @@ export async function scrollHomeToWidgets() { await sleep(500); } +/** Home widgets pager is available (scroll + edit control). When hidden, do not scroll. */ +export async function expectHomeWidgetsSection( + visible: boolean, + { timeout = 8_000 }: { timeout?: number } = {}, +) { + if (visible) { + await scrollHomeToWidgets(); + await elementById('WidgetsEdit').waitForDisplayed({ timeout, interval: 250 }); + return; + } + + await elementById('WidgetsEdit').waitForDisplayed({ + reverse: true, + timeout, + interval: 250, + }); +} + export async function openWidgetsFeed() { await scrollHomeToWidgets(); await tap('WidgetsAdd'); diff --git a/test/specs/widgets.e2e.ts b/test/specs/widgets.e2e.ts index 19d287d..41c9853 100644 --- a/test/specs/widgets.e2e.ts +++ b/test/specs/widgets.e2e.ts @@ -14,6 +14,7 @@ import { addWidget, deleteAllDefaultWidgets, deleteWidget, + expectHomeWidgetsSection, expectWidgetPresent, expectWidgetSavedInEditList, openSavedWidgetPreview, @@ -99,11 +100,9 @@ describe('@widgets - Widgets', () => { await tap('DialogConfirm'); await sleep(1000); - await scrollHomeToWidgets(); + await expectHomeWidgetsSection(true); await expectWidgetPresent('price'); - await expectWidgetPresent('weather'); await expectWidgetPresent('calculator'); - await expectWidgetPresent('blocks'); await openSettings(); await tap('WidgetsSettings'); @@ -111,11 +110,7 @@ describe('@widgets - Widgets', () => { await tap('NavigationBack'); await doNavigationClose(); - await scrollHomeToWidgets(); - await expectWidgetPresent('price', false, { timeout: 5000 }); - await expectWidgetPresent('weather', false, { timeout: 5000 }); - await expectWidgetPresent('calculator', false, { timeout: 5000 }); - await expectWidgetPresent('blocks', false, { timeout: 5000 }); + await expectHomeWidgetsSection(false, { timeout: 5_000 }); await openSettings(); await tap('WidgetsSettings'); @@ -123,10 +118,8 @@ describe('@widgets - Widgets', () => { await tap('NavigationBack'); await doNavigationClose(); - await scrollHomeToWidgets(); + await expectHomeWidgetsSection(true); await expectWidgetPresent('price'); - await expectWidgetPresent('weather'); await expectWidgetPresent('calculator'); - await expectWidgetPresent('blocks'); }); }); From 909582d8dfdaee5746a2b5832c501d0c3f73b6e1 Mon Sep 17 00:00:00 2001 From: Piotr Stachyra Date: Thu, 4 Jun 2026 21:01:35 +0200 Subject: [PATCH 2/2] stabilize --- test/specs/widgets.e2e.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/specs/widgets.e2e.ts b/test/specs/widgets.e2e.ts index 41c9853..fde00ae 100644 --- a/test/specs/widgets.e2e.ts +++ b/test/specs/widgets.e2e.ts @@ -61,8 +61,9 @@ describe('@widgets - Widgets', () => { await elementById('PriceWidgetRow-BTC/EUR').waitForDisplayed(); await openSavedWidgetPreview('price'); - await tap('WidgetEditReset'); await sleep(1000); + await tap('WidgetEditReset'); + await sleep(2000); await tap('WidgetEditPreview'); await elementById('WidgetSave').waitForDisplayed(); await sleep(1000);