mirror of
https://github.com/discourse/discourse.git
synced 2024-12-02 17:13:44 +08:00
28 lines
690 B
Ruby
28 lines
690 B
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
module SystemHelpers
|
||
|
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
|
||
|
if Time.zone.now >= start + timeout.seconds
|
||
|
raise
|
||
|
end
|
||
|
sleep backoff
|
||
|
backoff += frequency
|
||
|
retry
|
||
|
end
|
||
|
end
|