From 63e2df6c32d8a1f0a31711866cb51ac2c86177b6 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Wed, 19 Jan 2022 09:27:28 -0500 Subject: [PATCH 1/3] Moved DevTools test serializers into a separate folder --- .../{ => __serializers__}/dehydratedValueSerializer.js | 0 .../__tests__/{ => __serializers__}/hookSerializer.js | 0 .../inspectedElementSerializer.js | 0 .../__tests__/{ => __serializers__}/storeSerializer.js | 0 .../treeContextStateSerializer.js | 0 .../src/__tests__/storeStressSync-test.js | 2 +- .../src/__tests__/storeStressTestConcurrent-test.js | 2 +- scripts/jest/config.build-devtools.js | 10 +++++----- 8 files changed, 7 insertions(+), 7 deletions(-) rename packages/react-devtools-shared/src/__tests__/{ => __serializers__}/dehydratedValueSerializer.js (100%) rename packages/react-devtools-shared/src/__tests__/{ => __serializers__}/hookSerializer.js (100%) rename packages/react-devtools-shared/src/__tests__/{ => __serializers__}/inspectedElementSerializer.js (100%) rename packages/react-devtools-shared/src/__tests__/{ => __serializers__}/storeSerializer.js (100%) rename packages/react-devtools-shared/src/__tests__/{ => __serializers__}/treeContextStateSerializer.js (100%) diff --git a/packages/react-devtools-shared/src/__tests__/dehydratedValueSerializer.js b/packages/react-devtools-shared/src/__tests__/__serializers__/dehydratedValueSerializer.js similarity index 100% rename from packages/react-devtools-shared/src/__tests__/dehydratedValueSerializer.js rename to packages/react-devtools-shared/src/__tests__/__serializers__/dehydratedValueSerializer.js diff --git a/packages/react-devtools-shared/src/__tests__/hookSerializer.js b/packages/react-devtools-shared/src/__tests__/__serializers__/hookSerializer.js similarity index 100% rename from packages/react-devtools-shared/src/__tests__/hookSerializer.js rename to packages/react-devtools-shared/src/__tests__/__serializers__/hookSerializer.js diff --git a/packages/react-devtools-shared/src/__tests__/inspectedElementSerializer.js b/packages/react-devtools-shared/src/__tests__/__serializers__/inspectedElementSerializer.js similarity index 100% rename from packages/react-devtools-shared/src/__tests__/inspectedElementSerializer.js rename to packages/react-devtools-shared/src/__tests__/__serializers__/inspectedElementSerializer.js diff --git a/packages/react-devtools-shared/src/__tests__/storeSerializer.js b/packages/react-devtools-shared/src/__tests__/__serializers__/storeSerializer.js similarity index 100% rename from packages/react-devtools-shared/src/__tests__/storeSerializer.js rename to packages/react-devtools-shared/src/__tests__/__serializers__/storeSerializer.js diff --git a/packages/react-devtools-shared/src/__tests__/treeContextStateSerializer.js b/packages/react-devtools-shared/src/__tests__/__serializers__/treeContextStateSerializer.js similarity index 100% rename from packages/react-devtools-shared/src/__tests__/treeContextStateSerializer.js rename to packages/react-devtools-shared/src/__tests__/__serializers__/treeContextStateSerializer.js diff --git a/packages/react-devtools-shared/src/__tests__/storeStressSync-test.js b/packages/react-devtools-shared/src/__tests__/storeStressSync-test.js index f1684b87b79..57558525f49 100644 --- a/packages/react-devtools-shared/src/__tests__/storeStressSync-test.js +++ b/packages/react-devtools-shared/src/__tests__/storeStressSync-test.js @@ -28,7 +28,7 @@ describe('StoreStress (Legacy Mode)', () => { act = utils.act; legacyRender = utils.legacyRender; - print = require('./storeSerializer').print; + print = require('./__serializers__/storeSerializer').print; }); // This is a stress test for the tree mount/update/unmount traversal. diff --git a/packages/react-devtools-shared/src/__tests__/storeStressTestConcurrent-test.js b/packages/react-devtools-shared/src/__tests__/storeStressTestConcurrent-test.js index 0f4a373e164..d8f6d67a2ad 100644 --- a/packages/react-devtools-shared/src/__tests__/storeStressTestConcurrent-test.js +++ b/packages/react-devtools-shared/src/__tests__/storeStressTestConcurrent-test.js @@ -28,7 +28,7 @@ describe('StoreStressConcurrent', () => { // this helper with the real thing. actAsync = require('./utils').actAsync; - print = require('./storeSerializer').print; + print = require('./__serializers__/storeSerializer').print; }); // TODO: Remove this in favor of @gate pragma diff --git a/scripts/jest/config.build-devtools.js b/scripts/jest/config.build-devtools.js index e14ecb48c34..d5ad97f2d2e 100644 --- a/scripts/jest/config.build-devtools.js +++ b/scripts/jest/config.build-devtools.js @@ -62,19 +62,19 @@ module.exports = Object.assign({}, baseConfig, { testRegex: 'packages/react-devtools-shared/.+/__tests__/[^]+.test.js$', snapshotSerializers: [ require.resolve( - '../../packages/react-devtools-shared/src/__tests__/dehydratedValueSerializer.js' + '../../packages/react-devtools-shared/src/__tests__/__serializers__/dehydratedValueSerializer.js' ), require.resolve( - '../../packages/react-devtools-shared/src/__tests__/hookSerializer.js' + '../../packages/react-devtools-shared/src/__tests__/__serializers__/hookSerializer.js' ), require.resolve( - '../../packages/react-devtools-shared/src/__tests__/inspectedElementSerializer.js' + '../../packages/react-devtools-shared/src/__tests__/__serializers__/inspectedElementSerializer.js' ), require.resolve( - '../../packages/react-devtools-shared/src/__tests__/storeSerializer.js' + '../../packages/react-devtools-shared/src/__tests__/__serializers__/storeSerializer.js' ), require.resolve( - '../../packages/react-devtools-shared/src/__tests__/treeContextStateSerializer.js' + '../../packages/react-devtools-shared/src/__tests__/__serializers__/treeContextStateSerializer.js' ), ], setupFiles: [ From 99ed9c7d9831d47eb19e09bfb97cfd17d4ec22d8 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Wed, 19 Jan 2022 09:33:44 -0500 Subject: [PATCH 2/3] Added numeric serializer --- .../numberToFixedSerializer.js | 24 +++++++++++++++++++ scripts/jest/config.build-devtools.js | 3 +++ 2 files changed, 27 insertions(+) create mode 100644 packages/react-devtools-shared/src/__tests__/__serializers__/numberToFixedSerializer.js diff --git a/packages/react-devtools-shared/src/__tests__/__serializers__/numberToFixedSerializer.js b/packages/react-devtools-shared/src/__tests__/__serializers__/numberToFixedSerializer.js new file mode 100644 index 00000000000..2b0fc1f07e7 --- /dev/null +++ b/packages/react-devtools-shared/src/__tests__/__serializers__/numberToFixedSerializer.js @@ -0,0 +1,24 @@ +const MAX_DECIMAL_PLACES = 3; + +// test() is part of Jest's serializer API +export function test(maybeNumber) { + return ( + typeof maybeNumber === 'number' && + Number.isFinite(maybeNumber) && + !Number.isInteger(maybeNumber) && + !Number.isNaN(maybeNumber) + ); +} + +// print() is part of Jest's serializer API +export function print(number, serialize, indent) { + const string = number.toString(); + const pieces = string.split('.'); + if (pieces.length === 2) { + if (pieces[1].length > MAX_DECIMAL_PLACES) { + return number.toFixed(MAX_DECIMAL_PLACES); + } + } + + return string; +} diff --git a/scripts/jest/config.build-devtools.js b/scripts/jest/config.build-devtools.js index d5ad97f2d2e..276d2090547 100644 --- a/scripts/jest/config.build-devtools.js +++ b/scripts/jest/config.build-devtools.js @@ -76,6 +76,9 @@ module.exports = Object.assign({}, baseConfig, { require.resolve( '../../packages/react-devtools-shared/src/__tests__/__serializers__/treeContextStateSerializer.js' ), + require.resolve( + '../../packages/react-devtools-shared/src/__tests__/__serializers__/numberToFixedSerializer.js' + ), ], setupFiles: [ ...baseConfig.setupFiles, From 984f3f5e525964e4d9cb9358b1042a531e5b75b7 Mon Sep 17 00:00:00 2001 From: Brian Vaughn Date: Wed, 19 Jan 2022 09:37:37 -0500 Subject: [PATCH 3/3] Updated snapshot numbers to match precision --- .../src/__tests__/preprocessData-test.js | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/packages/react-devtools-shared/src/__tests__/preprocessData-test.js b/packages/react-devtools-shared/src/__tests__/preprocessData-test.js index b513db2e7e7..09ad50ecae4 100644 --- a/packages/react-devtools-shared/src/__tests__/preprocessData-test.js +++ b/packages/react-devtools-shared/src/__tests__/preprocessData-test.js @@ -439,7 +439,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 0, "depth": 0, - "duration": 0.004999999999999999, + "duration": 0.005, "lanes": Array [ 9, ], @@ -459,7 +459,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 0, "depth": 0, - "duration": 0.002999999999999999, + "duration": 0.003, "lanes": Array [ 9, ], @@ -469,7 +469,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 0, "depth": 1, - "duration": 0.0010000000000000009, + "duration": 0.001, "lanes": Array [ 9, ], @@ -529,7 +529,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 0, "depth": 0, - "duration": 0.004999999999999999, + "duration": 0.005, "lanes": Array [ 9, ], @@ -549,7 +549,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 0, "depth": 0, - "duration": 0.002999999999999999, + "duration": 0.003, "lanes": Array [ 9, ], @@ -559,7 +559,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 0, "depth": 1, - "duration": 0.0010000000000000009, + "duration": 0.001, "lanes": Array [ 9, ], @@ -656,7 +656,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 0, "depth": 1, - "duration": 0.0009999999999999992, + "duration": 0.001, "lanes": Array [ 0, ], @@ -748,7 +748,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 0, "depth": 1, - "duration": 0.0009999999999999992, + "duration": 0.001, "lanes": Array [ 0, ], @@ -865,7 +865,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 0, "depth": 1, - "duration": 0.0009999999999999992, + "duration": 0.001, "lanes": Array [ 4, ], @@ -887,7 +887,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 1, "depth": 0, - "duration": 0.012000000000000004, + "duration": 0.012, "lanes": Array [ 4, ], @@ -897,7 +897,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 1, "depth": 0, - "duration": 0.0030000000000000027, + "duration": 0.003, "lanes": Array [ 4, ], @@ -907,7 +907,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 1, "depth": 0, - "duration": 0.008000000000000004, + "duration": 0.008, "lanes": Array [ 4, ], @@ -917,7 +917,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 1, "depth": 1, - "duration": 0.0010000000000000009, + "duration": 0.001, "lanes": Array [ 4, ], @@ -927,7 +927,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 1, "depth": 0, - "duration": 0.0029999999999999957, + "duration": 0.003, "lanes": Array [ 4, ], @@ -946,21 +946,21 @@ describe('Timeline profiler', () => { }, Object { "componentName": "App", - "duration": 0.0020000000000000018, + "duration": 0.002, "timestamp": 0.018, "type": "passive-effect-mount", "warning": null, }, Object { "componentName": "App", - "duration": 0.0010000000000000009, + "duration": 0.001, "timestamp": 0.023, "type": "render", "warning": null, }, Object { "componentName": "App", - "duration": 0.0010000000000000009, + "duration": 0.001, "timestamp": 0.036, "type": "passive-effect-mount", "warning": null, @@ -1052,7 +1052,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 0, "depth": 1, - "duration": 0.0009999999999999992, + "duration": 0.001, "lanes": Array [ 4, ], @@ -1072,7 +1072,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 1, "depth": 0, - "duration": 0.012000000000000004, + "duration": 0.012, "lanes": Array [ 4, ], @@ -1082,7 +1082,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 1, "depth": 0, - "duration": 0.0030000000000000027, + "duration": 0.003, "lanes": Array [ 4, ], @@ -1092,7 +1092,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 1, "depth": 0, - "duration": 0.008000000000000004, + "duration": 0.008, "lanes": Array [ 4, ], @@ -1102,7 +1102,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 1, "depth": 1, - "duration": 0.0010000000000000009, + "duration": 0.001, "lanes": Array [ 4, ], @@ -1112,7 +1112,7 @@ describe('Timeline profiler', () => { Object { "batchUID": 1, "depth": 0, - "duration": 0.0029999999999999957, + "duration": 0.003, "lanes": Array [ 4, ],