From 41d511a3969301804b15be5645b24ff6eb7e29d5 Mon Sep 17 00:00:00 2001 From: Robin Scholtes Date: Fri, 12 May 2023 10:50:00 +1200 Subject: [PATCH] [#181] check if localStorage has favourites at all to prevent errors when not available --- src/web/HTMLOperation.mjs | 14 ++++++++++++-- tests/browser/mobile/00_nightwatch.js | 27 ++++++++++++++------------- 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/src/web/HTMLOperation.mjs b/src/web/HTMLOperation.mjs index a7ae0277..198977dc 100755 --- a/src/web/HTMLOperation.mjs +++ b/src/web/HTMLOperation.mjs @@ -68,8 +68,18 @@ class HTMLOperation { html += "check"; } - const favourites = JSON.parse(localStorage.favourites); - const isFavourite = favourites.includes(this.name); + let isFavourite; + + if ( localStorage.favourites ) { + console.log(localStorage.favourites); + const favourites = JSON.parse(localStorage.favourites); + isFavourite = favourites.includes(this.name); + } else { + isFavourite = false; + } + + console.log(isFavourite); + if (window.innerWidth < this.app.breakpoint) { html += ` diff --git a/tests/browser/mobile/00_nightwatch.js b/tests/browser/mobile/00_nightwatch.js index e9640909..bfec3af8 100644 --- a/tests/browser/mobile/00_nightwatch.js +++ b/tests/browser/mobile/00_nightwatch.js @@ -7,12 +7,12 @@ module.exports = { .url(browser.launchUrl); }, - // "Loading screen": browser => { - // // Check that the loading screen appears and then disappears within a reasonable time - // browser - // .waitForElementVisible("#preloader", 300) - // .waitForElementNotPresent("#preloader", 30000); - // }, + "Loading screen": browser => { + // Check that the loading screen appears and then disappears within a reasonable time + browser + .waitForElementVisible("#preloader", 300) + .waitForElementNotPresent("#preloader", 30000); + }, "App loaded": browser => { browser.useCss(); @@ -28,13 +28,14 @@ module.exports = { browser.expect.element("#output-text").to.be.visible; }, - "Operations dropdown loaded": browser => { - browser.click("#search"); - - browser.expect.element("#operations-dropdown").to.be.visible; - browser.expect.element("#categories").to.be.visible; - browser.expect.element(".op-list").to.be.present; - }, + // "Operations dropdown loaded": browser => { + // browser + // .useCss() + // .click("#search") + // .expect.element("#operations-dropdown").to.be.visible + // .expect.element("#categories").to.be.visible + // .expect.element(".op-list").to.be.present; + // }, "Operations loaded": browser => { // Check that an operation in every category has been populated