----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/63436/#review189684 -----------------------------------------------------------
+1 to fix the error message in test. Wonder if we could try this? https://github.com/facebook/react/issues/11098 - Kai Huang On Oct. 31, 2017, 1:58 a.m., Reza Motamedi wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/63436/ > ----------------------------------------------------------- > > (Updated Oct. 31, 2017, 1:58 a.m.) > > > Review request for Aurora, David McLaughlin, Joshua Cohen, and Kai Huang. > > > Repository: aurora > > > Description > ------- > > # Enabling ErrorBoundary in Scheduler UI > React 16 introduces a new concept of an “error boundary” that allows us to > limit the impact of an error and not unmount the whole component tree. I am > open to keeping or removing the stack trace. > > from React docs: > > As of React 16, errors that were not caught by any error boundary will > > result in unmounting of the whole React component tree. > > > Diffs > ----- > > ui/src/main/js/components/ErrorBoundary.js PRE-CREATION > ui/src/main/js/components/__tests__/ErrorBoundary-test.js PRE-CREATION > ui/src/main/js/index.js 9f94d4bd6f649d74bdd9c3aa99783e01cae25d93 > ui/src/main/sass/app.scss 8a10e1c5a501828c39ca7b9cf6b518a2d7a99d28 > ui/src/main/sass/components/_error-boundary.scss PRE-CREATION > > > Diff: https://reviews.apache.org/r/63436/diff/1/ > > > Testing > ------- > > - Unit tests added. This however causes an error message to be logged on > stdout. > > ``` > ? ./gradlew ui:test > ... > ASS src/main/js/pages/__tests__/Job-test.js > PASS src/main/js/components/__tests__/InstanceViz-test.js > PASS src/main/js/pages/__tests__/Update-test.js > PASS src/main/js/components/__tests__/InstanceHistoryItem-test.js > PASS src/main/js/components/__tests__/Pagination-test.js > PASS src/main/js/components/__tests__/ErrorBoundary-test.js > ? Console > > console.error node_modules/react-dom/cjs/react-dom.development.js:8305 > The above error occurred in the <ComponentWithError> component: > in ComponentWithError > in ErrorBoundary (created by WrapperComponent) > in WrapperComponent > > React will try to recreate this component tree from scratch using the > error boundary you provided, ErrorBoundary. > ... > > BUILD SUCCESSFUL in 0s > 2 actionable tasks: 2 up-to-date > > # rmotamedi@tw-mbp-rmotamedi:~/oss/aurora on git:error-boundry ? [18:52:22] > ? ./gradlew ui:lint > > BUILD SUCCESSFUL in 6s > 4 actionable tasks: 4 up-to-date > ``` > > > - For more testing, I added the following component (that raises an error) > and installed it under `UpdateInstanceEvents`. I then caught the error at > various depths in the doom tree. I attached the screen-shots of how this will > render. > > ## ComponentWithError > > ``` > import React from 'react' > > export default class ComponentWithError extends React.Component { > render() { > throw new Error('Crashed!'); > return <div />; > } > } > ``` > > > File Attachments > ---------------- > > handling boundary on the main router > > https://reviews.apache.org/media/uploaded/files/2017/10/31/d95e9f85-3dad-4332-ac33-3cb9f8a4455c__Screen_Shot_2017-10-30_at_6.30.22_PM.png > handling boundary on a component deep in the doom tree. > > https://reviews.apache.org/media/uploaded/files/2017/10/31/64d47905-b058-4ef5-9d19-fa3311a47f9d__Screen_Shot_2017-10-30_at_6.36.18_PM.png > > > Thanks, > > Reza Motamedi > >