MCPcopy
hub / github.com/vitest-dev/vitest / setIframeViewport

Function setIframeViewport

packages/browser/src/client/orchestrator.ts:492–525  ·  view source on GitHub ↗
(
  iframe: HTMLIFrameElement,
  width: number,
  height: number,
)

Source from the content-addressed store, hash-verified

490}
491
492async function setIframeViewport(
493 iframe: HTMLIFrameElement,
494 width: number,
495 height: number,
496) {
497 const ui = getUiAPI()
498 if (ui) {
499 await ui.setIframeViewport(width, height)
500 }
501 else if (getBrowserState().provider === 'webdriverio') {
502 iframe.parentElement?.setAttribute('data-scale', '1')
503 await client.rpc.triggerCommand(
504 getBrowserState().sessionId,
505 '__vitest_viewport',
506 undefined,
507 [{ width, height }],
508 )
509 }
510 else {
511 const scale = Math.min(
512 1,
513 iframe.parentElement!.parentElement!.clientWidth / width,
514 iframe.parentElement!.parentElement!.clientHeight / height,
515 )
516 iframe.parentElement!.style.cssText = `
517 width: ${width}px;
518 height: ${height}px;
519 transform: scale(${scale});
520 transform-origin: left top;
521 `
522 iframe.parentElement?.setAttribute('data-scale', String(scale))
523 await new Promise(r => requestAnimationFrame(r))
524 }
525}
526
527function debug(...args: unknown[]) {
528 const debug = getConfig().env.VITEST_BROWSER_DEBUG

Callers 3

runNonIsolatedTestsMethod · 0.70
onIframeEventMethod · 0.70

Calls 3

getUiAPIFunction · 0.90
getBrowserStateFunction · 0.90
triggerCommandMethod · 0.80

Tested by

no test coverage detected