aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/tests/harness
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-hub/tests/harness')
-rw-r--r--packages/meshbay-hub/tests/harness/playlist_ui_probe.py13
1 files changed, 9 insertions, 4 deletions
diff --git a/packages/meshbay-hub/tests/harness/playlist_ui_probe.py b/packages/meshbay-hub/tests/harness/playlist_ui_probe.py
index e6f99f7..c705244 100644
--- a/packages/meshbay-hub/tests/harness/playlist_ui_probe.py
+++ b/packages/meshbay-hub/tests/harness/playlist_ui_probe.py
@@ -180,11 +180,9 @@ const clickMenu = async (i) => {
['encrypt', 'decrypt']),
v2hkdf: await crypto.subtle.importKey('raw', raw, 'HKDF', false, ['deriveKey']),
};
- // Deleting a playlist asks. A modal dialog blocks the page and would wedge
- // the probe, so the answer is stubbed rather than the question avoided —
- // `confirm` is what the application really calls.
+ // Deleting a playlist asks, in the page (ask.js) — so the probe answers the
+ // dialog the way a person would, by clicking its OK button.
let asked = null;
- window.confirm = (q) => { asked = q; return true; };
render(html`<${Harness} />`, document.getElementById('root'));
@@ -282,6 +280,13 @@ const clickMenu = async (i) => {
await openToolbar();
await clickLabel(t('playlists.delete'));
await clickLabel('Soirée');
+ for (let i = 0; i < 40 && !asked; i++) {
+ const dlg = document.querySelector('[role=alertdialog]');
+ if (dlg) {
+ asked = dlg.querySelector('.ask-message').textContent;
+ dlg.querySelector('button[type=submit]').click();
+ } else await sleep(50);
+ }
await sleep(300);
steps.push({ step: 'deleted', asked: !!asked,
lists: (await P.listPlaylists('u1')).map((p) => p.name) });