fix: replay reconnect after workspace bootstrap
This commit is contained in:
1 parent
1a4f930b50
commit
0a4c9a0ae8
5 files changed
+42
-7
No files matched your search
@@ -270,9 +270,8 @@ def test_release_artifact_files_one_mobile_issue_exactly_once_after_offline_relo
|
||||
context.set_offline(False)
|
||||
page.evaluate("window.dispatchEvent(new Event('online'))")
|
||||
# Containerized Actions runners can take longer than a local browser to wake the
|
||||
# service worker, finish optional workspace activation, and complete its identity
|
||||
# handshake after reconnect.
|
||||
for _ in range(240):
|
||||
# service worker and complete its identity handshake after reconnect.
|
||||
for _ in range(160):
|
||||
if fake.created_issues:
|
||||
break
|
||||
page.wait_for_timeout(250)
|
||||
|
||||
@@ -53,4 +53,26 @@ console.log(JSON.stringify({message,status:status.textContent}));
|
||||
assert result == {
|
||||
"message": "network failed",
|
||||
"status": "Workspace could not load. Check your connection, then reload to retry.",
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
def test_workspace_bootstrap_replays_online_event_after_dashboard_registers_handlers():
|
||||
result = run_bootstrap("""
|
||||
const status={textContent:''}; const listeners={};
|
||||
const document={querySelector(selector) {
|
||||
if (selector.startsWith('meta[')) return {content:'feature-workspace-abc.js'};
|
||||
if (selector === '#my-work-action-status') return status;
|
||||
return null;
|
||||
}};
|
||||
const window={
|
||||
addEventListener(name,callback) { listeners[name]=callback; },
|
||||
removeEventListener(name,callback) { if (listeners[name] === callback) delete listeners[name]; },
|
||||
};
|
||||
const createLoader=()=>({load:async()=>{listeners.online();}});
|
||||
const lifecycle=await loadWorkspace({document,window,createLoader});
|
||||
let reconnects=0;
|
||||
lifecycle.replayOnline(()=>{reconnects++;});
|
||||
lifecycle.replayOnline(()=>{reconnects++;});
|
||||
console.log(JSON.stringify({reconnects,listening:Boolean(listeners.online)}));
|
||||
""")
|
||||
assert result == {"reconnects": 1, "listening": False}
|
||||
Reference in new issue
Block a user