diff --git a/test/ui/bond-collapse.e2e.test.js b/test/ui/bond-collapse.e2e.test.js index 737e148b..271ccdb5 100644 --- a/test/ui/bond-collapse.e2e.test.js +++ b/test/ui/bond-collapse.e2e.test.js @@ -78,6 +78,11 @@ describe('collapsible bond strip (issue #142)', { skip: !ENABLED && 'set SP_E2E= await activate('.team__row:not(.is-self) .team__btn'); if (await page.$('.team__ob')) await activate('.team__ob'); await page.waitForSelector('.gm__watching'); + // .gm__watching shows at the tap; the mock answers the row's g.watch 40–100 ms later (game-mock.js mockRequest) + // with the teammate's read-only board. Wait for that answer: a phase change before it lets the mock apply the + // scouting request to the battle (like a server-run server; the default client-side combat refuses it), and the + // strip then rightly shows that teammate's bonds — none in the mock — instead of mine. + await page.waitForFunction(() => globalThis.__MOCK__.store.get().match.field?.prep === true); assert.equal(await expanded(), 'false', 'watching a teammate preserves the collapse choice'); await activate('.bonds-toggle'); await page.waitForSelector('.bstrip__owner', { visible: true }); @@ -89,6 +94,7 @@ describe('collapsible bond strip (issue #142)', { skip: !ENABLED && 'set SP_E2E= await activate('.bonds-toggle'); await page.waitForSelector('.bslot .bond', { visible: true }); assert.equal(await expanded(), 'true'); + assert.equal(await page.$eval('.bstrip', (el) => el.getAttribute('data-owner')), null, 'my own battle shows my own bonds again'); await page.screenshot({ path: `${OUT}/bonds-expanded-${width}.png` }); assert.deepEqual(errors, []); } finally { await page.close(); }