diff --git a/test/helpers/actions.ts b/test/helpers/actions.ts index 488a584..cd66b37 100644 --- a/test/helpers/actions.ts +++ b/test/helpers/actions.ts @@ -292,6 +292,21 @@ export async function toggleWidgets() { await tap('NavigationClose'); } +export async function deleteAllDefaultWidgets() { + await tap('WidgetsEdit'); + for (const w of ['Bitcoin Price', 'Bitcoin Blocks', 'Bitcoin Headlines']) { + tap(w + '_WidgetActionDelete'); + await elementByText('Yes, Delete').waitForDisplayed(); + await elementByText('Yes, Delete').click(); + await elementById(w).waitForDisplayed({ reverse: true, timeout: 5000 }); + await sleep(500); + } + await tap('WidgetsEdit'); + await elementById('PriceWidget').waitForDisplayed({ reverse: true }); + await elementById('NewsWidget').waitForDisplayed({ reverse: true }); + await elementById('BlocksWidget').waitForDisplayed({ reverse: true }); +} + export async function waitForBackup() { await tap('HeaderMenu'); await tap('DrawerSettings'); @@ -300,3 +315,4 @@ export async function waitForBackup() { await allSynced.waitForDisplayed(); await tap('NavigationClose'); } + diff --git a/test/specs/backup.e2e.ts b/test/specs/backup.e2e.ts index 5e33159..eeea653 100644 --- a/test/specs/backup.e2e.ts +++ b/test/specs/backup.e2e.ts @@ -4,6 +4,7 @@ import initElectrum from '../helpers/electrum'; import { reinstallApp } from '../helpers/setup'; import { completeOnboarding, + deleteAllDefaultWidgets, elementById, elementByIdWithin, elementByText, @@ -13,7 +14,6 @@ import { sleep, swipeFullScreen, tap, - toggleWidgets, typeText, } from '../helpers/actions'; @@ -94,13 +94,19 @@ describe('Backup', () => { await tap('NavigationClose'); // - add widgets (add PriceWidget) // - await toggleWidgets(); + await deleteAllDefaultWidgets(); await tap('WidgetsAdd'); await tap('WidgetsOnboarding-button'); await tap('WidgetListItem-price'); await elementById('WidgetSave').waitForDisplayed(); await sleep(1000); // wait for the app to settle await tap('WidgetSave'); + // sometimes flaky on GH actions, try again + try { + await elementById('PriceWidget').waitForDisplayed(); + } catch { + await tap('WidgetSave'); + } await elementById('PriceWidget').waitForDisplayed(); // - backup seed and restore wallet // diff --git a/test/specs/widgets.e2e.ts b/test/specs/widgets.e2e.ts index d461adc..9314d24 100644 --- a/test/specs/widgets.e2e.ts +++ b/test/specs/widgets.e2e.ts @@ -6,7 +6,7 @@ import { tap, swipeFullScreen, completeOnboarding, - toggleWidgets, + deleteAllDefaultWidgets, } from '../helpers/actions'; import { reinstallApp } from '../helpers/setup'; @@ -17,8 +17,8 @@ describe('Widgets', () => { }); it('Can add/edit/remove a widget', async () => { - // Enable widgets - await toggleWidgets(); + // delete all default widgets + await deleteAllDefaultWidgets(); // Add a widget await tap('WidgetsAdd'); @@ -44,7 +44,15 @@ describe('Widgets', () => { // Preview and save await tap('WidgetEditPreview'); + await sleep(500); await tap('WidgetSave'); + // sometimes flaky on GH actions, try again + try { + await elementById('PriceWidget').waitForDisplayed(); + } catch { + await tap('WidgetSave'); + } + await elementById('PriceWidget').waitForDisplayed(); // Back on Home: scroll a bit to ensure widget is in view await elementById('PriceWidget').waitForDisplayed();