From 7b1d29eb5b58bdc62db7099ca72a6f2e9338d1eb Mon Sep 17 00:00:00 2001 From: Santiago Palenque Date: Thu, 23 Jul 2026 17:44:58 -0300 Subject: [PATCH 1/2] feat: add lazy load with reload methods --- src/utils/__tests__/lazy-with-reload.test.js | 353 +++++++++++++++++++ src/utils/lazy-with-reload.js | 224 ++++++++++++ webpack.common.js | 1 + 3 files changed, 578 insertions(+) create mode 100644 src/utils/__tests__/lazy-with-reload.test.js create mode 100644 src/utils/lazy-with-reload.js diff --git a/src/utils/__tests__/lazy-with-reload.test.js b/src/utils/__tests__/lazy-with-reload.test.js new file mode 100644 index 00000000..7cac305f --- /dev/null +++ b/src/utils/__tests__/lazy-with-reload.test.js @@ -0,0 +1,353 @@ +jest.mock("react", () => ({ + ...jest.requireActual("react"), + lazy: jest.fn((loader) => loader), +})); + +const mockCaptureMessage = jest.fn(); +jest.mock("@sentry/react", () => ({ + captureMessage: (...args) => mockCaptureMessage(...args), +})); + +import { + isChunkLoadError, + reloadOnChunkError, + lazyWithReload, + initChunkErrorRecovery, + chunkErrorSentryBeforeSend, +} from "../lazy-with-reload"; + +const chunkLoadError = () => Object.assign(new Error("Loading chunk 3 failed.\n(missing: https://app.test/foo_abc123.js)"), { + name: "ChunkLoadError", +}); + +const htmlParsedAsScriptError = (filename) => Object.assign( + new Error("Unexpected token '<'"), + { name: "SyntaxError", filename } +); + +// Replaces document's