From 4d0983a4556075be562b46ddd33eb7f93991fe91 Mon Sep 17 00:00:00 2001 From: Paul Kaplan <pkaplan@media.mit.edu> Date: Tue, 11 Dec 2018 15:06:58 -0500 Subject: [PATCH] Show error screen when project cannot be loaded --- src/lib/project-fetcher-hoc.jsx | 4 ++++ test/integration/project-loading.test.js | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/src/lib/project-fetcher-hoc.jsx b/src/lib/project-fetcher-hoc.jsx index 1879d69e5..8a7128aaf 100644 --- a/src/lib/project-fetcher-hoc.jsx +++ b/src/lib/project-fetcher-hoc.jsx @@ -66,6 +66,10 @@ const ProjectFetcherHOC = function (WrappedComponent) { .then(projectAsset => { if (projectAsset) { this.props.onFetchedProjectData(projectAsset.data, loadingState); + } else { + // Treat failure to load as an error + // Throw to be caught by catch later on + throw new Error('Could not find project'); } }) .then(() => { diff --git a/test/integration/project-loading.test.js b/test/integration/project-loading.test.js index 09023632e..447e2c05b 100644 --- a/test/integration/project-loading.test.js +++ b/test/integration/project-loading.test.js @@ -47,6 +47,11 @@ describe('Loading scratch gui', () => { await expect(logs).toEqual([]); }); + test('Nonexistent projects show error screen', async () => { + await loadUri(`${uri}#999999999999999999999`); + await clickText('Oops! Something went wrong.'); + }); + test('Invalid url when loading project through modal lets you try again', async () => { await loadUri(uri); await clickText('View 2.0 Project'); -- GitLab