summaryrefslogtreecommitdiff
path: root/qa/qa/runtime
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2019-08-23 23:41:47 -0700
committerStan Hu <stanhu@gmail.com>2019-08-26 22:07:13 -0700
commit9f219873a1677d17275e08b9ca7328f976c84fa9 (patch)
tree6d52a0f72dfb8d2c08af438c9ff6e056d08c0ba2 /qa/qa/runtime
parent8b47dfae2e82cfa48d6fa6dee6ddb7a00fc3f456 (diff)
downloadgitlab-ce-9f219873a1677d17275e08b9ca7328f976c84fa9.tar.gz
Add QA specs for using IP rate limitssh-rate-limits-qa
This will help prevent issues such as https://gitlab.com/gitlab-org/gitlab-ce/issues/66449.
Diffstat (limited to 'qa/qa/runtime')
-rw-r--r--qa/qa/runtime/api/client.rb21
1 files changed, 20 insertions, 1 deletions
diff --git a/qa/qa/runtime/api/client.rb b/qa/qa/runtime/api/client.rb
index 663be27a849..25d8f3c0fbb 100644
--- a/qa/qa/runtime/api/client.rb
+++ b/qa/qa/runtime/api/client.rb
@@ -8,11 +8,12 @@ module QA
class Client
attr_reader :address, :user
- def initialize(address = :gitlab, personal_access_token: nil, is_new_session: true, user: nil)
+ def initialize(address = :gitlab, personal_access_token: nil, is_new_session: true, user: nil, ip_limits: false)
@address = address
@personal_access_token = personal_access_token
@is_new_session = is_new_session
@user = user
+ enable_ip_limits if ip_limits
end
def personal_access_token
@@ -26,6 +27,24 @@ module QA
private
+ def enable_ip_limits
+ Page::Main::Menu.perform(&:sign_out) if Page::Main::Menu.perform { |p| p.has_personal_area?(wait: 0) }
+
+ Runtime::Browser.visit(@address, Page::Main::Login)
+ Page::Main::Login.perform(&:sign_in_using_admin_credentials)
+ Page::Main::Menu.perform(&:click_admin_area)
+ Page::Admin::Menu.perform(&:go_to_network_settings)
+
+ Page::Admin::Settings::Network.perform do |setting|
+ setting.expand_ip_limits do |page|
+ page.enable_throttles
+ page.save_settings
+ end
+ end
+
+ Page::Main::Menu.perform(&:sign_out)
+ end
+
def create_personal_access_token
Page::Main::Menu.perform(&:sign_out) if @is_new_session && Page::Main::Menu.perform { |p| p.has_personal_area?(wait: 0) }