Module: SnapDiff::Capture::Viewport

Defined in:
lib/snap_diff/capture/viewport.rb

Overview

Per-capture viewport preparation seam.

Called exactly once per capture, before the screenshoter runs and outside any stability retry loop. It only validates the window size (raise-only, never resizes).

Class Method Summary collapse

Class Method Details

.prepare!(expected_window_size) ⇒ Object

Parameters:

  • expected_window_size (Array(Integer, Integer), nil)

    the configured window size

Raises:



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/snap_diff/capture/viewport.rb', line 18

def prepare!(expected_window_size)
  return unless BrowserHelpers.window_size_is_wrong?(expected_window_size)

  current_size = BrowserHelpers.selenium? ?
    BrowserHelpers.session.driver.browser.manage.window.size.to_s :
    "unknown"

  raise SnapDiff::WindowSizeMismatchError.new(<<~ERROR.chomp, caller)
    Window size mismatch detected!
    Expected: #{expected_window_size.inspect}
    Actual: #{current_size}

    Screenshots cannot be compared when window sizes don't match.
    Please ensure the browser window is properly sized before taking screenshots.
  ERROR
end