1# frozen_string_literal: true
2
3module QA
4  module Page
5    module Project
6      module Settings
7        class Repository < Page::Base
8          include QA::Page::Settings::Common
9
10          view 'app/views/projects/protected_branches/shared/_index.html.haml' do
11            element :protected_branches_settings_content
12          end
13
14          view 'app/views/projects/mirrors/_mirror_repos.html.haml' do
15            element :mirroring_repositories_settings_content
16          end
17
18          view 'app/views/shared/deploy_tokens/_index.html.haml' do
19            element :deploy_tokens_settings_content
20          end
21
22          view 'app/views/shared/deploy_keys/_index.html.haml' do
23            element :deploy_keys_settings_content
24          end
25
26          view 'app/views/projects/protected_tags/shared/_index.html.haml' do
27            element :protected_tag_settings_content
28          end
29
30          def expand_deploy_tokens(&block)
31            expand_content(:deploy_tokens_settings_content) do
32              Settings::DeployTokens.perform(&block)
33            end
34          end
35
36          def expand_deploy_keys(&block)
37            expand_content(:deploy_keys_settings_content) do
38              Settings::DeployKeys.perform(&block)
39            end
40          end
41
42          def expand_protected_branches(&block)
43            expand_content(:protected_branches_settings_content) do
44              ProtectedBranches.perform(&block)
45            end
46          end
47
48          def expand_mirroring_repositories(&block)
49            expand_content(:mirroring_repositories_settings_content) do
50              MirroringRepositories.perform(&block)
51            end
52          end
53
54          def expand_protected_tags(&block)
55            expand_content(:protected_tag_settings_content) do
56              ProtectedTags.perform(&block)
57            end
58          end
59
60          def expand_default_branch(&block)
61            within('#default-branch-settings') do
62              find('.btn-default').click do
63                DefaultBranch.perform(&block)
64              end
65            end
66          end
67        end
68      end
69    end
70  end
71end
72
73QA::Page::Project::Settings::Repository.prepend_mod_with('Page::Project::Settings::Repository', namespace: QA)
74