Ctrl K
ComunidadGuías…

src/test/frame-size.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
// A size for every element's box, for a jsdom test of a map that fits itself
// to its frame.
//
// jsdom performs no layout - "jsdom answers no layout question" in DECISIONS.md
// - so a frame measures 0 by 0, and a map with no room asks for no tiles. A
// test that wants a map at all says how big its frame is, which is a statement
// about the scenario: a card this size. Where the tiles and pins then land is
// the browser lane's question.
//
// Returns the way back to jsdom's zeroes, which it defines on
// `Element.prototype`, beneath this.
export function giveFramesASize(size: {
  width: number;
  height: number;
}): () => void {
  Object.defineProperty(HTMLElement.prototype, "clientWidth", {
    configurable: true,
    get: () => size.width,
  });
  Object.defineProperty(HTMLElement.prototype, "clientHeight", {
    configurable: true,
    get: () => size.height,
  });
  return () => {
    Reflect.deleteProperty(HTMLElement.prototype, "clientWidth");
    Reflect.deleteProperty(HTMLElement.prototype, "clientHeight");
  };
}