From 82d2968e1776deb38c4eb4cec5e2214e64bdfbc8 Mon Sep 17 00:00:00 2001 From: Chris Breiding Date: Mon, 9 Nov 2020 11:11:19 -0500 Subject: [PATCH] fix: Handle non-error empty objects from release notes service (#9134) --- .../cypress/integration/release_notes_spec.js | 9 +++++++++ packages/desktop-gui/src/update/updates.js | 11 +++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/desktop-gui/cypress/integration/release_notes_spec.js b/packages/desktop-gui/cypress/integration/release_notes_spec.js index c67d898413..2c6c68ddcb 100644 --- a/packages/desktop-gui/cypress/integration/release_notes_spec.js +++ b/packages/desktop-gui/cypress/integration/release_notes_spec.js @@ -43,6 +43,15 @@ describe('Release Notes', () => { cy.contains('Update to Version 1.2.3').should('be.visible') }) + it('shows update instructions if release notes does not include title or content', () => { + // if this hasn't been released on on.cypress.io yet, it will use the default redirect + // and not a 404 error, which returns an empty object + // also protects against the data not being correct in any case + getReleaseNotes.resolve({}) + cy.get('.update-notice').contains('Learn more').click() + cy.contains('Update to Version 1.2.3').should('be.visible') + }) + it('shows update instructions if getting release notes errors', () => { getReleaseNotes.reject(new Error('something went wrong')) cy.get('.update-notice').contains('Learn more').click() diff --git a/packages/desktop-gui/src/update/updates.js b/packages/desktop-gui/src/update/updates.js index e000001ff0..37e77b4c26 100644 --- a/packages/desktop-gui/src/update/updates.js +++ b/packages/desktop-gui/src/update/updates.js @@ -42,10 +42,17 @@ export const getReleaseNotes = (version) => { ipc.getReleaseNotes(version) .then((releaseNotes) => { + if (!releaseNotes || !releaseNotes.title || !releaseNotes.content) { + updateStore.setReleaseNotes(undefined) + updateStore.setState(updateStore.SHOW_INSTRUCTIONS) + + return + } + updateStore.setReleaseNotes(releaseNotes) - updateStore.setState(releaseNotes ? updateStore.SHOW_RELEASE_NOTES : updateStore.SHOW_INSTRUCTIONS) + updateStore.setState(updateStore.SHOW_RELEASE_NOTES) }) - .catch((err) => { + .catch(() => { updateStore.setReleaseNotes(undefined) updateStore.setState(updateStore.SHOW_INSTRUCTIONS) })