mirror of
https://github.com/zebrajr/react.git
synced 2026-01-15 12:15:22 +00:00
Fixed remaining DevTools broken tests by fixing a hydration/spread bug
This commit is contained in:
@@ -109,6 +109,7 @@
|
||||
"test-build": "cross-env NODE_ENV=development jest --config ./scripts/jest/config.build.js",
|
||||
"test-build-prod": "cross-env NODE_ENV=production jest --config ./scripts/jest/config.build.js",
|
||||
"test-build-devtools": "cross-env NODE_ENV=development jest --config ./scripts/jest/config.build-devtools.js",
|
||||
"debug-test-build-devtools": "cross-env NODE_ENV=development node --inspect-brk node_modules/.bin/jest --config ./scripts/jest/config.build-devtools.js",
|
||||
"test-dom-fixture": "cd fixtures/dom && yarn && yarn prestart && yarn test",
|
||||
"flow": "node ./scripts/tasks/flow.js",
|
||||
"flow-ci": "node ./scripts/tasks/flow-ci.js",
|
||||
|
||||
@@ -30,7 +30,7 @@ describe('Bridge', () => {
|
||||
expect(wall.send).toHaveBeenCalledWith('shutdown');
|
||||
|
||||
// Verify that the Bridge doesn't send messages after shutdown.
|
||||
spyOnDevAndProd(console, 'warn');
|
||||
spyOn(console, 'warn');
|
||||
wall.send.mockClear();
|
||||
bridge.send('should not send');
|
||||
jest.runAllTimers();
|
||||
|
||||
@@ -287,7 +287,11 @@ export function dehydrate(
|
||||
};
|
||||
|
||||
if (typeof data[Symbol.iterator]) {
|
||||
[...data].forEach(
|
||||
// TRICKY
|
||||
// Don't use [...spread] syntax for this purpose.
|
||||
// This project uses @babel/plugin-transform-spread in "loose" mode which only works with Array values.
|
||||
// Other types (e.g. typed arrays, Sets) will not spread correctly.
|
||||
Array.from(data).forEach(
|
||||
(item, i) =>
|
||||
(unserializableValue[i] = dehydrate(
|
||||
item,
|
||||
|
||||
9
packages/react-devtools-shared/src/utils.js
vendored
9
packages/react-devtools-shared/src/utils.js
vendored
@@ -266,14 +266,19 @@ export function shallowDiffers(prev: Object, next: Object): boolean {
|
||||
}
|
||||
|
||||
export function getInObject(object: Object, path: Array<string | number>): any {
|
||||
return path.reduce((reduced: Object, attr: string | number): any => {
|
||||
return path.reduce((reduced: Object, attr: any): any => {
|
||||
if (reduced) {
|
||||
if (hasOwnProperty.call(reduced, attr)) {
|
||||
return reduced[attr];
|
||||
}
|
||||
if (typeof reduced[Symbol.iterator] === 'function') {
|
||||
// Convert iterable to array and return array[index]
|
||||
return [...reduced][attr];
|
||||
//
|
||||
// TRICKY
|
||||
// Don't use [...spread] syntax for this purpose.
|
||||
// This project uses @babel/plugin-transform-spread in "loose" mode which only works with Array values.
|
||||
// Other types (e.g. typed arrays, Sets) will not spread correctly.
|
||||
return Array.from(reduced)[attr];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user