From 6f7e41d5772e86d9d3e9a7cd1b76cb2c1b560cd5 Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Wed, 20 Nov 2024 15:35:15 +0100 Subject: [PATCH] chore(html): hmr report should survive reload --- packages/html-reporter/src/index.tsx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/html-reporter/src/index.tsx b/packages/html-reporter/src/index.tsx index 0c3f0a6dc0..149b3478ef 100644 --- a/packages/html-reporter/src/index.tsx +++ b/packages/html-reporter/src/index.tsx @@ -58,8 +58,20 @@ class ZipReport implements LoadedReport { const zipURI = await new Promise(resolve => { if (window.playwrightReportBase64) return resolve(window.playwrightReportBase64); - window.addEventListener('message', event => event.source === window.opener && resolve(event.data), { once: true }); - window.opener.postMessage('ready', '*'); + if (window.opener) { + window.addEventListener('message', event => { + if (event.source === window.opener) { + localStorage.setItem('playwrightReportBase64', event.data); + resolve(event.data); + } + }, { once: true }); + window.opener.postMessage('ready', '*'); + } else { + const oldReport = localStorage.getItem('playwrightReportBase64'); + if (oldReport) + return resolve(oldReport); + alert('couldnt find report, something with HMR is broken'); + } }); const zipReader = new zipjs.ZipReader(new zipjs.Data64URIReader(zipURI), { useWebWorkers: false });