diff --git a/qa/qa.rb b/qa/qa.rb index 9bf28d396bae3fd684fd8b2b0b910672c4bfc007..b38c39a621f536df3000d0bbb23807aa87209f94 100644 --- a/qa/qa.rb +++ b/qa/qa.rb @@ -54,7 +54,7 @@ module QA autoload :MergeRequestFromFork, 'qa/resource/merge_request_from_fork' autoload :DeployKey, 'qa/resource/deploy_key' autoload :DeployToken, 'qa/resource/deploy_token' - autoload :Branch, 'qa/resource/branch' + autoload :ProtectedBranch, 'qa/resource/protected_branch' autoload :CiVariable, 'qa/resource/ci_variable' autoload :Runner, 'qa/resource/runner' autoload :PersonalAccessToken, 'qa/resource/personal_access_token' diff --git a/qa/qa/resource/branch.rb b/qa/qa/resource/protected_branch.rb similarity index 67% rename from qa/qa/resource/branch.rb rename to qa/qa/resource/protected_branch.rb index 6dc47e369774c8674fd9bf97e9af34bfb6a39368..c27647cf3ce2a02352948a246d0deb115bdffb62 100644 --- a/qa/qa/resource/branch.rb +++ b/qa/qa/resource/protected_branch.rb @@ -2,13 +2,24 @@ module QA module Resource - class Branch < Base - attr_accessor :project, :branch_name, - :allow_to_push, :allow_to_merge, :protected + class ProtectedBranch < Base + attr_accessor :branch_name, :allow_to_push, :allow_to_merge, :protected attribute :project do - Project.fabricate! do |resource| + Project.fabricate_via_api! do |resource| resource.name = 'protected-branch-project' + resource.initialize_with_readme = true + end + end + + attribute :branch do + Repository::ProjectPush.fabricate! do |project_push| + project_push.project = project + project_push.file_name = 'new_file.md' + project_push.commit_message = 'Add new file' + project_push.branch_name = branch_name + project_push.new_branch = true + project_push.remote_branch = @branch_name end end @@ -20,32 +31,16 @@ module QA end def fabricate! - project.visit! - - Repository::ProjectPush.fabricate! do |resource| - resource.project = project - resource.file_name = 'kick-off.txt' - resource.commit_message = 'First commit' - end + populate(:branch) - branch = Repository::ProjectPush.fabricate! do |resource| - resource.project = project - resource.file_name = 'README.md' - resource.commit_message = 'Add readme' - resource.branch_name = 'master' - resource.new_branch = false - resource.remote_branch = @branch_name - end - - Page::Project::Show.perform do |page| - page.wait { page.has_content?(branch_name) } - end + project.wait_for_push_new_branch @branch_name # The upcoming process will make it access the Protected Branches page, # select the already created branch and protect it according # to `allow_to_push` variable. return branch unless @protected + project.visit! Page::Project::Menu.perform(&:go_to_repository_settings) Page::Project::Settings::Repository.perform do |setting| diff --git a/qa/qa/resource/repository/project_push.rb b/qa/qa/resource/repository/project_push.rb index e98880ce1954257e63ed8f7ffeadc34610d95a1a..c84ade3a1408ab7d97be05a65be51e1fc27a9766 100644 --- a/qa/qa/resource/repository/project_push.rb +++ b/qa/qa/resource/repository/project_push.rb @@ -33,7 +33,6 @@ module QA def fabricate! super project.wait_for_push @commit_message if @wait_for_push - project.visit! end end end diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb index e159e517cbb700bea62f392757c59cfd5bf91204..dd80905d1848a4ee8b580bfdf06e1b92ab64ba6e 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/push_protected_branch_spec.rb @@ -8,6 +8,7 @@ module QA let(:project) do Resource::Project.fabricate! do |resource| resource.name = 'protected-branch-project' + resource.initialize_with_readme = true end end @@ -42,7 +43,7 @@ module QA end def create_protected_branch(allow_to_push:) - Resource::Branch.fabricate! do |resource| + Resource::ProtectedBranch.fabricate! do |resource| resource.branch_name = branch_name resource.project = project resource.allow_to_push = allow_to_push diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb index 7c1d4489c4768ecb8c553767a718dfbce8ecbd98..2952a54ff5db172819a560fa00f72b2864e1fff9 100644 --- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb +++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb @@ -58,7 +58,7 @@ module QA paths: - my-artifacts/ EOF - end + end.project.visit! expect(page).to have_content('Add .gitlab-ci.yml')