Commit 6500145d authored by Douglas Barbosa Alexandre's avatar Douglas Barbosa Alexandre

Merge branch '7763-failure-in-geo-rb' into 'master'

[QA] Improve internals of hashed storage settings-related files

Closes #7763

See merge request gitlab-org/gitlab-ee!7508
parents 80c3c3ba dababa71
......@@ -5,7 +5,7 @@
.sub-section
.form-group
.form-check
= f.check_box :hashed_storage_enabled, class: 'form-check-input'
= f.check_box :hashed_storage_enabled, class: 'form-check-input qa-hashed-storage-checkbox'
= f.label :hashed_storage_enabled, class: 'form-check-label' do
Use hashed storage paths for newly created and renamed projects
.form-text.text-muted
......@@ -48,4 +48,4 @@
.form-text.text-muted
= circuitbreaker_failure_reset_time_help_text
= f.submit 'Save changes', class: "btn btn-success"
= f.submit 'Save changes', class: "btn btn-success qa-save-changes-button"
......@@ -13,7 +13,7 @@
.settings-content
= render partial: 'repository_mirrors_form'
%section.qa-repository-storage.settings.as-repository-storage.no-animate#js-repository-storage-settings{ class: ('expanded' if expanded_by_default?) }
%section.settings.qa-repository-storage-settings.as-repository-storage.no-animate#js-repository-storage-settings{ class: ('expanded' if expanded_by_default?) }
.settings-header
%h4
= _('Repository storage')
......
......@@ -46,7 +46,7 @@
.settings-content
= render 'signin'
%section.qa-terms-settings.settings.as-terms.no-animate#js-terms-settings{ class: ('expanded' if expanded_by_default?) }
%section.settings.as-terms.no-animate#js-terms-settings{ class: ('expanded' if expanded_by_default?) }
.settings-header
%h4
= _('Terms of Service and Privacy Policy')
......
.nav-sidebar{ class: ("sidebar-collapsed-desktop" if collapsed_sidebar?) }
.nav-sidebar.qa-admin-sidebar{ class: ("sidebar-collapsed-desktop" if collapsed_sidebar?) }
.nav-sidebar-inner-scroll
.context-header
= link_to admin_root_path, title: _('Admin Overview') do
......@@ -244,10 +244,10 @@
= link_to admin_application_settings_path do
.nav-icon-container
= sprite_icon('settings')
%span.nav-item-name
%span.nav-item-name.qa-admin-settings-item
= _('Settings')
%ul.sidebar-sub-level-items
%ul.sidebar-sub-level-items.qa-admin-sidebar-submenu
= nav_link(controller: :application_settings, html_options: { class: "fly-out-top-item" } ) do
= link_to admin_application_settings_path do
%strong.fly-out-top-item-name
......@@ -262,7 +262,7 @@
%span
= _('Integrations')
= nav_link(path: 'application_settings#repository') do
= link_to repository_admin_application_settings_path, title: _('Repository') do
= link_to repository_admin_application_settings_path, title: _('Repository'), class: 'qa-admin-settings-repository-item' do
%span
= _('Repository')
- if template_exists?('admin/application_settings/templates')
......
......@@ -236,9 +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
......
......@@ -7,8 +7,7 @@ module QA
Page::Main::Login.act { sign_in_using_credentials }
Page::Menu::Main.act { go_to_admin_area }
Page::Menu::Admin.act { go_to_settings }
Page::Menu::Side.act { click_repository }
Page::Menu::Admin.act { go_to_repository_settings }
Page::Admin::Settings::Repository.perform do |setting|
setting.expand_repository_storage do |page|
......
# 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
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
end
end
end
end
end
end
......@@ -8,12 +8,12 @@ module QA
include QA::Page::Settings::Common
view 'app/views/admin/application_settings/repository.html.haml' do
element :repository_storage
element :repository_storage_settings
end
def expand_repository_storage(&block)
expand_section(:repository_storage) do
RepositoryStorage.perform(&block)
expand_section(:repository_storage_settings) do
Component::RepositoryStorage.perform(&block)
end
end
end
......
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
......@@ -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
......
......@@ -5,11 +5,41 @@ module QA
prepend EE::Page::Menu::Admin
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
......
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment