Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Flight] Add some test coverage for some error cases #25240

Merged
merged 1 commit into from
Sep 12, 2022

Conversation

sebmarkbage
Copy link
Collaborator

@sebmarkbage sebmarkbage commented Sep 12, 2022

This adds some tests for some error cases loading modules.

I mistakenly thought that we didn't have any forward references anymore but there's a case where a module resolution synchronously errors. Typically this would only happen due to a bug in the bundler.

This is a weird edge but I'll probably model synchronous references to async module references as forward references anyway so I'll just remove this error for now.

I couldn't actually figure out how to properly test this using public APIs because the scenario only happens if we manage to read the model referencing the error before the error resolves. Which is race condition in the stream of the client. So this particular test didn't fail before. We could probably do something to yield the stream similar to Scheduler.yield but there's no user code involved here to do that from in predictably the right slot.

@sizebot
Copy link

sizebot commented Sep 12, 2022

Comparing: 3613284...c5e2ca7

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.min.js = 134.97 kB 134.97 kB = 43.23 kB 43.23 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 141.69 kB 141.69 kB = 45.23 kB 45.23 kB
facebook-www/ReactDOM-prod.classic.js = 486.26 kB 486.26 kB = 86.55 kB 86.55 kB
facebook-www/ReactDOM-prod.modern.js = 471.57 kB 471.57 kB = 84.32 kB 84.32 kB
facebook-www/ReactDOMForked-prod.classic.js = 486.26 kB 486.26 kB = 86.55 kB 86.55 kB
oss-experimental/react-server-dom-webpack/umd/react-server-dom-webpack.production.min.js = 4.94 kB 4.82 kB = 2.18 kB 2.11 kB
oss-stable-semver/react-server-dom-webpack/umd/react-server-dom-webpack.production.min.js = 4.94 kB 4.82 kB = 2.18 kB 2.11 kB
oss-stable/react-server-dom-webpack/umd/react-server-dom-webpack.production.min.js = 4.94 kB 4.82 kB = 2.18 kB 2.11 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js = 4.72 kB 4.61 kB = 2.07 kB 2.02 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js = 4.72 kB 4.61 kB = 2.07 kB 2.02 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js = 4.72 kB 4.61 kB = 2.07 kB 2.02 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-experimental/react-server-dom-webpack/umd/react-server-dom-webpack.development.js = 19.89 kB 19.72 kB = 5.31 kB 5.27 kB
oss-stable-semver/react-server-dom-webpack/umd/react-server-dom-webpack.development.js = 19.89 kB 19.72 kB = 5.31 kB 5.27 kB
oss-stable/react-server-dom-webpack/umd/react-server-dom-webpack.development.js = 19.89 kB 19.72 kB = 5.31 kB 5.27 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js = 18.56 kB 18.40 kB = 5.19 kB 5.14 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js = 18.56 kB 18.40 kB = 5.19 kB 5.14 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack.development.js = 18.56 kB 18.40 kB = 5.19 kB 5.14 kB
oss-experimental/react-client/cjs/react-client-flight.production.min.js = 3.79 kB 3.75 kB = 1.73 kB 1.71 kB
oss-stable-semver/react-client/cjs/react-client-flight.production.min.js = 3.79 kB 3.75 kB = 1.73 kB 1.71 kB
oss-stable/react-client/cjs/react-client-flight.production.min.js = 3.79 kB 3.75 kB = 1.73 kB 1.71 kB
oss-experimental/react-client/cjs/react-client-flight.development.js = 14.50 kB 14.33 kB = 4.21 kB 4.16 kB
oss-stable-semver/react-client/cjs/react-client-flight.development.js = 14.50 kB 14.33 kB = 4.21 kB 4.16 kB
oss-stable/react-client/cjs/react-client-flight.development.js = 14.50 kB 14.33 kB = 4.21 kB 4.16 kB
facebook-www/ReactFlightDOMRelayClient-prod.classic.js = 6.28 kB 6.21 kB = 1.89 kB 1.87 kB
facebook-www/ReactFlightDOMRelayClient-prod.modern.js = 6.28 kB 6.21 kB = 1.89 kB 1.87 kB
facebook-relay/flight/ReactFlightNativeRelayClient-prod.js = 6.28 kB 6.20 kB = 1.88 kB 1.87 kB
facebook-relay/flight/ReactFlightNativeRelayClient-dev.js = 11.45 kB 11.26 kB = 3.33 kB 3.27 kB
facebook-www/ReactFlightDOMRelayClient-dev.classic.js = 11.38 kB 11.19 kB = 3.31 kB 3.26 kB
facebook-www/ReactFlightDOMRelayClient-dev.modern.js = 11.38 kB 11.19 kB = 3.31 kB 3.26 kB
oss-experimental/react-server-dom-webpack/umd/react-server-dom-webpack.production.min.js = 4.94 kB 4.82 kB = 2.18 kB 2.11 kB
oss-stable-semver/react-server-dom-webpack/umd/react-server-dom-webpack.production.min.js = 4.94 kB 4.82 kB = 2.18 kB 2.11 kB
oss-stable/react-server-dom-webpack/umd/react-server-dom-webpack.production.min.js = 4.94 kB 4.82 kB = 2.18 kB 2.11 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js = 4.72 kB 4.61 kB = 2.07 kB 2.02 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js = 4.72 kB 4.61 kB = 2.07 kB 2.02 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js = 4.72 kB 4.61 kB = 2.07 kB 2.02 kB

Generated by 🚫 dangerJS against c5e2ca7

@sebmarkbage sebmarkbage merged commit c156ecd into facebook:main Sep 12, 2022
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request Sep 22, 2022
Summary:
This sync includes the following changes:
- **[0cac4d54c](facebook/react@0cac4d54c )**: Double invoked effects on suspended children ([#25307](facebook/react#25307)) //<Samuel Susla>//
- **[3d615fc14](facebook/react@3d615fc14 )**: Grammar. Removed doubles of the word "the". ([#25295](facebook/react#25295)) //<Victoria Graf>//
- **[6e3bc8a2e](facebook/react@6e3bc8a2e )**: [DevTools] Check if Proxy exists before creating DispatcherProxy ([#25278](facebook/react#25278)) //<Tianyu Yao>//
- **[e7fc04b29](facebook/react@e7fc04b29 )**: [react-dom] Reorganize react-dom internals to match react ([#25277](facebook/react#25277)) //<Josh Story>//
- **[0b54e0047](facebook/react@0b54e0047 )**: Handle rejections to avoid uncaught rejections ([#25272](facebook/react#25272)) //<Sebastian Markbåge>//
- **[c5d06fdc5](facebook/react@c5d06fdc5 )**: [Flight] Fix Webpack Chunk Loading ([#25271](facebook/react#25271)) //<Sebastian Markbåge>//
- **[975b64464](facebook/react@975b64464 )**: [Flight] response.readRoot() -> use(response) ([#25267](facebook/react#25267)) //<Sebastian Markbåge>//
- **[60fbb7b14](facebook/react@60fbb7b14 )**: [Flight] Implement FlightClient in terms of Thenable/Promises instead of throwing Promises ([#25260](facebook/react#25260)) //<Sebastian Markbåge>//
- **[c91a1e03b](facebook/react@c91a1e03b )**: experimental_useEvent ([#25229](facebook/react#25229)) //<Lauren Tan>//
- **[346c7d4c4](facebook/react@346c7d4c4 )**: straightford explicit types ([#25253](facebook/react#25253)) //<Jan Kassens>//
- **[3401e9200](facebook/react@3401e9200 )**: useMemoCache implementation ([#25143](facebook/react#25143)) //<Joseph Savona>//
- **[0556bab32](facebook/react@0556bab32 )**: [Transition Tracing] More Accurate End Time ([#25105](facebook/react#25105)) //<Luna Ruan>//
- **[5fdcd23aa](facebook/react@5fdcd23aa )**: Flow: upgrade to 0.140 ([#25252](facebook/react#25252)) //<Jan Kassens>//
- **[5c43c6f02](facebook/react@5c43c6f02 )**: Unwind the current workInProgress if it's suspended ([#25247](facebook/react#25247)) //<Sebastian Markbåge>//
- **[e52fa4c57](facebook/react@e52fa4c57 )**: Add early exit to strict mode ([#25235](facebook/react#25235)) //<Samuel Susla>//
- **[6aa38e74c](facebook/react@6aa38e74c )**: Flow: enable unsafe-addition error ([#25242](facebook/react#25242)) //<Jan Kassens>//
- **[ba7b6f418](facebook/react@ba7b6f418 )**: Flow: upgrade to 0.132 ([#25244](facebook/react#25244)) //<Jan Kassens>//
- **[9328988c0](facebook/react@9328988c0 )**: Flow: fix Fiber typed as any ([#25241](facebook/react#25241)) //<Jan Kassens>//
- **[c739cef2f](facebook/react@c739cef2f )**: Flow: ReactFiberHotReloading recursive type ([#25225](facebook/react#25225)) //<Jan Kassens>//
- **[c156ecd48](facebook/react@c156ecd48 )**: Add some test coverage for some error cases ([#25240](facebook/react#25240)) //<Sebastian Markbåge>//
- **[3613284dc](facebook/react@3613284dc )**: experimental_use(context) for server components and ssr ([#25226](facebook/react#25226)) //<mofeiZ>//
- **[269c4e975](facebook/react@269c4e975 )**: Prevent infinite re-renders in StrictMode + Offscreen ([#25203](facebook/react#25203)) //<Samuel Susla>//
- **[8003ab9cf](facebook/react@8003ab9cf )**: Flow: remove explicit object syntax ([#25223](facebook/react#25223)) //<Jan Kassens>//
- **[492c6e29e](facebook/react@492c6e29e )**: Flow: upgrade to 0.127 ([#25221](facebook/react#25221)) //<Jan Kassens>//
- **[8a9e7b6ce](facebook/react@8a9e7b6ce )**: Flow: implicit-inexact-object=error ([#25210](facebook/react#25210)) //<Jan Kassens>//
- **[37cc6bf12](facebook/react@37cc6bf12 )**: Remove useDeferredValue and useTransition from Flight subset ([#25215](facebook/react#25215)) //<Sebastian Markbåge>//

Changelog:
[General][Changed] - React Native sync for revisions c28f313...0cac4d5

jest_e2e[run_all_tests]

Reviewed By: rickhanlonii

Differential Revision: D39696377

fbshipit-source-id: 113878d22d6244b8555b5fb86db1da5d43f7cfd9
GrinZero added a commit to GrinZero/react that referenced this pull request Nov 7, 2022
* 'main' of ssh://github.com/GrinZero/react: (51 commits)
  Flow: add simple explicit export types to Devtools (facebook#25251)
  [react devtools][easy] Centralize calls to patchConsoleUsingWindowValues (facebook#25222)
  Unwind the current workInProgress if it's suspended (facebook#25247)
  Add early exit to strict mode (facebook#25235)
  fix: prettier ignore removed and fixed (facebook#24811)
  Flow: enable unsafe-addition error (facebook#25242)
  Flow: upgrade to 0.132 (facebook#25244)
  Flow: fix Fiber typed as any (facebook#25241)
  Flow: ReactFiberHotReloading recursive type (facebook#25225)
  Add some test coverage for some error cases (facebook#25240)
  experimental_use(context) for server components and ssr (facebook#25226)
  Flow: upgrade to 0.131 (facebook#25224)
  Prevent infinite re-renders in StrictMode + Offscreen (facebook#25203)
  Flow: remove explicit object syntax (facebook#25223)
  Flow: upgrade to 0.127 (facebook#25221)
  Flow: enable exact_by_default (facebook#25220)
  [react devtools] Don't check for NODE_ENV==='test' because it never is (facebook#25186)
  [react devtools][easy] Change variable names, etc. (facebook#25211)
  Bump async from 2.6.3 to 2.6.4 in /fixtures/concurrent/time-slicing (facebook#24443)
  Flow: implicit-inexact-object=error (facebook#25210)
  ...
OlimpiaZurek pushed a commit to OlimpiaZurek/react-native that referenced this pull request May 22, 2023
Summary:
This sync includes the following changes:
- **[0cac4d54c](facebook/react@0cac4d54c )**: Double invoked effects on suspended children ([facebook#25307](facebook/react#25307)) //<Samuel Susla>//
- **[3d615fc14](facebook/react@3d615fc14 )**: Grammar. Removed doubles of the word "the". ([facebook#25295](facebook/react#25295)) //<Victoria Graf>//
- **[6e3bc8a2e](facebook/react@6e3bc8a2e )**: [DevTools] Check if Proxy exists before creating DispatcherProxy ([facebook#25278](facebook/react#25278)) //<Tianyu Yao>//
- **[e7fc04b29](facebook/react@e7fc04b29 )**: [react-dom] Reorganize react-dom internals to match react ([facebook#25277](facebook/react#25277)) //<Josh Story>//
- **[0b54e0047](facebook/react@0b54e0047 )**: Handle rejections to avoid uncaught rejections ([facebook#25272](facebook/react#25272)) //<Sebastian Markbåge>//
- **[c5d06fdc5](facebook/react@c5d06fdc5 )**: [Flight] Fix Webpack Chunk Loading ([facebook#25271](facebook/react#25271)) //<Sebastian Markbåge>//
- **[975b64464](facebook/react@975b64464 )**: [Flight] response.readRoot() -> use(response) ([facebook#25267](facebook/react#25267)) //<Sebastian Markbåge>//
- **[60fbb7b14](facebook/react@60fbb7b14 )**: [Flight] Implement FlightClient in terms of Thenable/Promises instead of throwing Promises ([facebook#25260](facebook/react#25260)) //<Sebastian Markbåge>//
- **[c91a1e03b](facebook/react@c91a1e03b )**: experimental_useEvent ([facebook#25229](facebook/react#25229)) //<Lauren Tan>//
- **[346c7d4c4](facebook/react@346c7d4c4 )**: straightford explicit types ([facebook#25253](facebook/react#25253)) //<Jan Kassens>//
- **[3401e9200](facebook/react@3401e9200 )**: useMemoCache implementation ([facebook#25143](facebook/react#25143)) //<Joseph Savona>//
- **[0556bab32](facebook/react@0556bab32 )**: [Transition Tracing] More Accurate End Time ([facebook#25105](facebook/react#25105)) //<Luna Ruan>//
- **[5fdcd23aa](facebook/react@5fdcd23aa )**: Flow: upgrade to 0.140 ([facebook#25252](facebook/react#25252)) //<Jan Kassens>//
- **[5c43c6f02](facebook/react@5c43c6f02 )**: Unwind the current workInProgress if it's suspended ([facebook#25247](facebook/react#25247)) //<Sebastian Markbåge>//
- **[e52fa4c57](facebook/react@e52fa4c57 )**: Add early exit to strict mode ([facebook#25235](facebook/react#25235)) //<Samuel Susla>//
- **[6aa38e74c](facebook/react@6aa38e74c )**: Flow: enable unsafe-addition error ([facebook#25242](facebook/react#25242)) //<Jan Kassens>//
- **[ba7b6f418](facebook/react@ba7b6f418 )**: Flow: upgrade to 0.132 ([facebook#25244](facebook/react#25244)) //<Jan Kassens>//
- **[9328988c0](facebook/react@9328988c0 )**: Flow: fix Fiber typed as any ([facebook#25241](facebook/react#25241)) //<Jan Kassens>//
- **[c739cef2f](facebook/react@c739cef2f )**: Flow: ReactFiberHotReloading recursive type ([facebook#25225](facebook/react#25225)) //<Jan Kassens>//
- **[c156ecd48](facebook/react@c156ecd48 )**: Add some test coverage for some error cases ([facebook#25240](facebook/react#25240)) //<Sebastian Markbåge>//
- **[3613284dc](facebook/react@3613284dc )**: experimental_use(context) for server components and ssr ([facebook#25226](facebook/react#25226)) //<mofeiZ>//
- **[269c4e975](facebook/react@269c4e975 )**: Prevent infinite re-renders in StrictMode + Offscreen ([facebook#25203](facebook/react#25203)) //<Samuel Susla>//
- **[8003ab9cf](facebook/react@8003ab9cf )**: Flow: remove explicit object syntax ([facebook#25223](facebook/react#25223)) //<Jan Kassens>//
- **[492c6e29e](facebook/react@492c6e29e )**: Flow: upgrade to 0.127 ([facebook#25221](facebook/react#25221)) //<Jan Kassens>//
- **[8a9e7b6ce](facebook/react@8a9e7b6ce )**: Flow: implicit-inexact-object=error ([facebook#25210](facebook/react#25210)) //<Jan Kassens>//
- **[37cc6bf12](facebook/react@37cc6bf12 )**: Remove useDeferredValue and useTransition from Flight subset ([facebook#25215](facebook/react#25215)) //<Sebastian Markbåge>//

Changelog:
[General][Changed] - React Native sync for revisions c28f313...0cac4d5

jest_e2e[run_all_tests]

Reviewed By: rickhanlonii

Differential Revision: D39696377

fbshipit-source-id: 113878d22d6244b8555b5fb86db1da5d43f7cfd9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants