discourse/spec/support/system_helpers.rb
Ted Johansson bb328792fb
FIX: Remove magic time ranges (#19477)
In #15474 we introduced dedicated support for date ranges. As part of that
change we added a fallback of "magic" date ranges, which treats dates in
any paragraph with exactly two dates as a range. There were discussions
about migrating all such paragraphs to use the new date range element, but
it was ultimately decided against.

This change removes the fallback and, as a bonus, adds support for multiple
date ranges in the same paragraph.
2022-12-16 14:48:39 +08:00

56 lines
1.5 KiB
Ruby

# frozen_string_literal: true
require "highline/import"
module SystemHelpers
def pause_test
result =
ask(
"\n\e[33mTest paused, press enter to resume, type `d` and press enter to start debugger.\e[0m",
)
binding.pry if result == "d" # rubocop:disable Lint/Debugger
self
end
def sign_in(user)
visit "/session/#{user.encoded_username}/become"
end
def setup_system_test
SiteSetting.login_required = false
SiteSetting.content_security_policy = false
SiteSetting.force_hostname = "#{Capybara.server_host}:#{Capybara.server_port}"
SiteSetting.external_system_avatars_enabled = false
end
def try_until_success(timeout: 2, frequency: 0.01)
start ||= Time.zone.now
backoff ||= frequency
yield
rescue RSpec::Expectations::ExpectationNotMetError
raise if Time.zone.now >= start + timeout.seconds
sleep backoff
backoff += frequency
retry
end
def resize_window(width: nil, height: nil)
original_size = page.driver.browser.manage.window.size
page.driver.browser.manage.window.resize_to(width || original_size.width, height || original_size.height)
yield
ensure
page.driver.browser.manage.window.resize_to(original_size.width, original_size.height)
end
def using_browser_timezone(timezone, &example)
previous_browser_timezone = ENV["TZ"]
ENV["TZ"] = timezone
Capybara.using_session(timezone) do
freeze_time(&example)
end
ENV["TZ"] = previous_browser_timezone
end
end