Skip to content

Commit 03f3e78

Browse files
issackjohnCopilot
andcommitted
Trim resize-event tests and require observer baseline
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 003cd55 commit 03f3e78

2 files changed

Lines changed: 5 additions & 58 deletions

File tree

experimental/tests.mjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ export const ExperimentalSuites = freezeSuites([
208208
const MATCH_MEDIA_QUERY_BREAKPOINT = 640;
209209
const carouselResizeEvents = observeRecipeCarouselResizeEvents(page);
210210
// Seed the baseline width before the synchronous width changes below.
211-
await Promise.race([carouselResizeEvents.ready, new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(resolve)))]);
211+
await carouselResizeEvents.ready;
212212

213213
// The matchMedia query is "(max-width: 640px)"
214214
// Starting from a width > 640px, we'll only get 1 event when crossing to <= 640px
@@ -271,7 +271,7 @@ export const ExperimentalSuites = freezeSuites([
271271
const MATCH_MEDIA_QUERY_BREAKPOINT = 704;
272272
const carouselResizeEvents = observeRecipeCarouselResizeEvents(page);
273273
// Seed the baseline width before the synchronous width changes below.
274-
await Promise.race([carouselResizeEvents.ready, new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(resolve)))]);
274+
await carouselResizeEvents.ready;
275275

276276
// The matchMedia query is "(max-width: 640px)"
277277
// Starting from a width <= 640px, we'll get 1 event when crossing back to > 640px.

tests/unittests/benchmark-runner.mjs

Lines changed: 3 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -288,17 +288,12 @@ describe("PageElement", () => {
288288
// A fake ResizeObserver drives deliveries synchronously for exact-count assertions.
289289
async function createTracker() {
290290
let deliver;
291-
let deliverEntries;
292-
let disconnected = false;
293291
class FakeResizeObserver {
294292
constructor(callback) {
295293
deliver = (...widths) => callback(widths.map((width) => ({ contentBoxSize: [{ inlineSize: width }] })));
296-
deliverEntries = (entries) => callback(entries);
297294
}
298295
observe() {}
299-
disconnect() {
300-
disconnected = true;
301-
}
296+
disconnect() {}
302297
}
303298
return await withPageElement(
304299
(frame) => {
@@ -311,17 +306,14 @@ describe("PageElement", () => {
311306
(element) => ({
312307
resizeEvents: element.observeResizeEvents(),
313308
deliver: (...widths) => deliver(...widths),
314-
deliverEntries: (entries) => deliverEntries(entries),
315-
get disconnected() {
316-
return disconnected;
317-
},
318309
})
319310
);
320311
}
321312

322313
it("treats the first delivery as the baseline without counting it", async () => {
323314
const { resizeEvents, deliver } = await createTracker();
324315
deliver(200);
316+
await resizeEvents.ready;
325317
expect(resizeEvents.count).to.equal(0);
326318
});
327319

@@ -342,38 +334,6 @@ describe("PageElement", () => {
342334
deliver(300);
343335
expect(resizeEvents.count).to.equal(1);
344336
});
345-
346-
it("supports a non-array contentBoxSize", async () => {
347-
const { resizeEvents, deliverEntries } = await createTracker();
348-
deliverEntries([{ contentBoxSize: { inlineSize: 200 } }]); // seed
349-
deliverEntries([{ contentBoxSize: { inlineSize: 260 } }]);
350-
expect(resizeEvents.count).to.equal(1);
351-
});
352-
353-
it("falls back to contentRect.width when contentBoxSize is unavailable", async () => {
354-
const { resizeEvents, deliverEntries } = await createTracker();
355-
deliverEntries([{ contentRect: { width: 200 } }]); // seed
356-
deliverEntries([{ contentRect: { width: 280 } }]);
357-
expect(resizeEvents.count).to.equal(1);
358-
});
359-
360-
it("resolves the ready promise on the first delivery", async () => {
361-
const { resizeEvents, deliver } = await createTracker();
362-
let resolved = false;
363-
resizeEvents.ready.then(() => {
364-
resolved = true;
365-
});
366-
deliver(200);
367-
await resizeEvents.ready;
368-
expect(resolved).to.equal(true);
369-
});
370-
371-
it("disconnects the underlying observer", async () => {
372-
const tracker = await createTracker();
373-
expect(tracker.disconnected).to.equal(false);
374-
tracker.resizeEvents.disconnect();
375-
expect(tracker.disconnected).to.equal(true);
376-
});
377337
});
378338
describe("observeResizeEvents with a real ResizeObserver", () => {
379339
// border-box width minus 20px padding and 10px border on each side.
@@ -414,25 +374,12 @@ describe("PageElement", () => {
414374
});
415375
}
416376

417-
it("does not count the initial delivery when no resize happens", async () => {
418-
await withPageElement(
419-
(frame) => appendBox(frame.contentDocument, 200),
420-
async (element, div) => {
421-
const resizeEvents = element.observeResizeEvents();
422-
await waitForContentWidth(div, 200 - BORDER_BOX_INSET);
423-
await new Promise((resolve) => requestAnimationFrame(() => requestAnimationFrame(resolve)));
424-
expect(resizeEvents.count).to.equal(0);
425-
resizeEvents.disconnect();
426-
}
427-
);
428-
});
429-
430377
it("counts each distinct width change exactly once", async () => {
431378
await withPageElement(
432379
(frame) => appendBox(frame.contentDocument, 200),
433380
async (element, div) => {
434381
const resizeEvents = element.observeResizeEvents();
435-
await waitForContentWidth(div, 200 - BORDER_BOX_INSET);
382+
await resizeEvents.ready;
436383
div.style.width = "300px";
437384
await waitForContentWidth(div, 300 - BORDER_BOX_INSET);
438385
div.style.width = "400px";

0 commit comments

Comments
 (0)