Merge branch 'qa_extract_push_to_scenario' into 'master'
Turn" push a file" into a scenario See merge request gitlab-org/gitlab-ce!15617
This commit is contained in:
commit
51d23268f9
3 changed files with 55 additions and 15 deletions
4
qa/qa.rb
4
qa/qa.rb
|
@ -46,6 +46,10 @@ module QA
|
|||
autoload :Create, 'qa/scenario/gitlab/project/create'
|
||||
end
|
||||
|
||||
module Repository
|
||||
autoload :Push, 'qa/scenario/gitlab/repository/push'
|
||||
end
|
||||
|
||||
module Sandbox
|
||||
autoload :Prepare, 'qa/scenario/gitlab/sandbox/prepare'
|
||||
end
|
||||
|
|
47
qa/qa/scenario/gitlab/repository/push.rb
Normal file
47
qa/qa/scenario/gitlab/repository/push.rb
Normal file
|
@ -0,0 +1,47 @@
|
|||
require "pry-byebug"
|
||||
|
||||
module QA
|
||||
module Scenario
|
||||
module Gitlab
|
||||
module Repository
|
||||
class Push < Scenario::Template
|
||||
PAGE_REGEX_CHECK =
|
||||
%r{\/#{Runtime::Namespace.sandbox_name}\/qa-test[^\/]+\/{1}[^\/]+\z}.freeze
|
||||
|
||||
attr_writer :file_name,
|
||||
:file_content,
|
||||
:commit_message,
|
||||
:branch_name
|
||||
|
||||
def initialize
|
||||
@file_name = 'file.txt'
|
||||
@file_content = '# This is test project'
|
||||
@commit_message = "Add #{@file_name}"
|
||||
@branch_name = 'master'
|
||||
end
|
||||
|
||||
def perform
|
||||
Git::Repository.perform do |repository|
|
||||
repository.location = Page::Project::Show.act do
|
||||
unless PAGE_REGEX_CHECK.match(current_path)
|
||||
raise "To perform this scenario the current page should be project show."
|
||||
end
|
||||
|
||||
choose_repository_clone_http
|
||||
repository_location
|
||||
end
|
||||
|
||||
repository.use_default_credentials
|
||||
repository.clone
|
||||
repository.configure_identity('GitLab QA', 'root@gitlab.com')
|
||||
|
||||
repository.add_file(@file_name, @file_content)
|
||||
repository.commit(@commit_message)
|
||||
repository.push_changes(@branch_name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -10,21 +10,10 @@ module QA
|
|||
scenario.description = 'project with repository'
|
||||
end
|
||||
|
||||
Git::Repository.perform do |repository|
|
||||
repository.location = Page::Project::Show.act do
|
||||
choose_repository_clone_http
|
||||
repository_location
|
||||
end
|
||||
|
||||
repository.use_default_credentials
|
||||
|
||||
repository.act do
|
||||
clone
|
||||
configure_identity('GitLab QA', 'root@gitlab.com')
|
||||
add_file('README.md', '# This is test project')
|
||||
commit('Add README.md')
|
||||
push_changes
|
||||
end
|
||||
Scenario::Gitlab::Repository::Push.perform do |scenario|
|
||||
scenario.file_name = 'README.md'
|
||||
scenario.file_content = '# This is test project'
|
||||
scenario.commit_message = 'Add README.md'
|
||||
end
|
||||
|
||||
Page::Project::Show.act do
|
||||
|
|
Loading…
Reference in a new issue