Module: PlaywrightHelper

Defined in:
lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers/playwright_helper.rb

Instance Method Summary collapse

Instance Method Details

#pw_pageObject

Use Playwright's page object



5
6
7
8
9
# File 'lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers/playwright_helper.rb', line 5

def pw_page
  page.driver.with_playwright_page do |page|
    return page
  end
end

#screenshot(filename = nil, directory: 'tmp/screenshots', print_message: true, **options) ⇒ Object

Helper method for taking screenshots in system tests



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/generators/rolemodel/testing/rspec/templates/spec/support/helpers/playwright_helper.rb', line 12

def screenshot(filename = nil, directory: 'tmp/screenshots', print_message: true, **options)
  timestamp = Time.current.strftime('%Y-%m-%d_%H-%M-%S')
  description = RSpec.current_example.full_description.tr(' ', '_')
  filename ||= "#{description}_#{timestamp}"

  FileUtils.mkdir_p(directory)

  pw_page.locator('body').evaluate("element => element.style.overflow = 'visible'") if options[:fullPage]

  pw_page.screenshot(path: "#{directory}/#{filename}.png", animations: 'disabled', **options)

  puts "Screenshot saved to \e[4;96m#{directory}/#{filename}.png\e[0m" if print_message
end