diff options
author | Rémy Coutable <remy@rymai.me> | 2018-10-02 11:45:48 +0200 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2018-10-02 12:11:44 +0200 |
commit | 182966312f88be877d290dd5606a8ab38efaf05c (patch) | |
tree | 417c2d2171c6ea815b7701d344697e79cc6eaa9e /qa | |
parent | 7287fd09e264ad5b8efceab4b1919c92769856b9 (diff) | |
download | gitlab-ce-182966312f88be877d290dd5606a8ab38efaf05c.tar.gz |
[QA] Improve admin hashed-storage settings
This was introduced by https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/7371
for which no QA was run, even though QA files were changed.
This is a follow-up to
https://gitlab.com/gitlab-org/gitlab-ee/merge_requests/7531.
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'qa')
-rw-r--r-- | qa/qa.rb | 7 | ||||
-rw-r--r-- | qa/qa/page/admin/settings/component/repository_storage.rb | 26 | ||||
-rw-r--r-- | qa/qa/page/admin/settings/main.rb | 21 | ||||
-rw-r--r-- | qa/qa/page/admin/settings/repository.rb | 23 | ||||
-rw-r--r-- | qa/qa/page/admin/settings/repository_storage.rb | 23 | ||||
-rw-r--r-- | qa/qa/page/base.rb | 8 | ||||
-rw-r--r-- | qa/qa/page/menu/admin.rb | 36 | ||||
-rw-r--r-- | qa/spec/page/validator_spec.rb | 2 |
8 files changed, 96 insertions, 50 deletions
@@ -236,8 +236,11 @@ module QA module Admin module Settings - autoload :RepositoryStorage, 'qa/page/admin/settings/repository_storage' - autoload :Main, 'qa/page/admin/settings/main' + autoload :Repository, 'qa/page/admin/settings/repository' + + module Component + autoload :RepositoryStorage, 'qa/page/admin/settings/component/repository_storage' + end end end diff --git a/qa/qa/page/admin/settings/component/repository_storage.rb b/qa/qa/page/admin/settings/component/repository_storage.rb new file mode 100644 index 00000000000..2ed0cd73aa3 --- /dev/null +++ b/qa/qa/page/admin/settings/component/repository_storage.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module QA + module Page + module Admin + module Settings + module Component + class RepositoryStorage < Page::Base + view 'app/views/admin/application_settings/_repository_storage.html.haml' do + element :hashed_storage_checkbox + element :save_changes_button + end + + def enable_hashed_storage + check_element :hashed_storage_checkbox + end + + def save_settings + click_element :save_changes_button + end + end + end + end + end + end +end diff --git a/qa/qa/page/admin/settings/main.rb b/qa/qa/page/admin/settings/main.rb deleted file mode 100644 index 73034ffe0d8..00000000000 --- a/qa/qa/page/admin/settings/main.rb +++ /dev/null @@ -1,21 +0,0 @@ -module QA - module Page - module Admin - module Settings - class Main < Page::Base - include QA::Page::Settings::Common - - view 'app/views/admin/application_settings/show.html.haml' do - element :terms_settings - end - - def expand_repository_storage(&block) - expand_section(:terms_settings) do - RepositoryStorage.perform(&block) - end - end - end - end - end - end -end diff --git a/qa/qa/page/admin/settings/repository.rb b/qa/qa/page/admin/settings/repository.rb new file mode 100644 index 00000000000..b7f1deb21bd --- /dev/null +++ b/qa/qa/page/admin/settings/repository.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +module QA + module Page + module Admin + module Settings + class Repository < Page::Base + include QA::Page::Settings::Common + + view 'app/views/admin/application_settings/repository.html.haml' do + element :repository_storage_settings + end + + def expand_repository_storage(&block) + expand_section(:repository_storage_settings) do + Component::RepositoryStorage.perform(&block) + end + end + end + end + end + end +end diff --git a/qa/qa/page/admin/settings/repository_storage.rb b/qa/qa/page/admin/settings/repository_storage.rb deleted file mode 100644 index 68dd23a41e1..00000000000 --- a/qa/qa/page/admin/settings/repository_storage.rb +++ /dev/null @@ -1,23 +0,0 @@ -module QA - module Page - module Admin - module Settings - class RepositoryStorage < Page::Base - view 'app/views/admin/application_settings/_repository_storage.html.haml' do - element :submit, "submit 'Save changes'" - element :hashed_storage, - 'Use hashed storage paths for newly created and renamed projects' - end - - def enable_hashed_storage - check 'Use hashed storage paths for newly created and renamed projects' - end - - def save_settings - click_button 'Save changes' - end - end - end - end - end -end diff --git a/qa/qa/page/base.rb b/qa/qa/page/base.rb index a87536671c6..142707521df 100644 --- a/qa/qa/page/base.rb +++ b/qa/qa/page/base.rb @@ -68,6 +68,10 @@ module QA all(element_selector_css(name)) end + def check_element(name) + find_element(name).set(true) + end + def click_element(name) find_element(name).click end @@ -86,6 +90,10 @@ module QA end end + def scroll_to_element(name, *args) + scroll_to(element_selector_css(name), *args) + end + def element_selector_css(name) Page::Element.new(name).selector_css end diff --git a/qa/qa/page/menu/admin.rb b/qa/qa/page/menu/admin.rb index 573b98f7386..bf05a912bc6 100644 --- a/qa/qa/page/menu/admin.rb +++ b/qa/qa/page/menu/admin.rb @@ -3,11 +3,41 @@ module QA module Menu class Admin < Page::Base view 'app/views/layouts/nav/sidebar/_admin.html.haml' do - element :settings, "_('Settings')" + element :admin_sidebar + element :admin_sidebar_submenu + element :admin_settings_item + element :admin_settings_repository_item end - def go_to_settings - click_link 'Settings' + def go_to_repository_settings + hover_settings do + within_submenu do + click_element :admin_settings_repository_item + end + end + end + + private + + def hover_settings + within_sidebar do + scroll_to_element(:admin_settings_item) + find_element(:admin_settings_item).hover + + yield + end + end + + def within_sidebar + within_element(:admin_sidebar) do + yield + end + end + + def within_submenu + within_element(:admin_sidebar_submenu) do + yield + end end end end diff --git a/qa/spec/page/validator_spec.rb b/qa/spec/page/validator_spec.rb index 55957649904..0ae6e66d767 100644 --- a/qa/spec/page/validator_spec.rb +++ b/qa/spec/page/validator_spec.rb @@ -30,7 +30,7 @@ describe QA::Page::Validator do let(:view) { spy('view') } before do - allow(QA::Page::Admin::Settings::Main) + allow(QA::Page::Admin::Settings::Repository) .to receive(:views).and_return([view]) end |