From 9f7fe677415e36dcf8a6d1621335d383196a5951 Mon Sep 17 00:00:00 2001 From: Lin Jen-Shin Date: Fri, 29 Dec 2017 16:35:54 +0800 Subject: [PATCH] Introduce Factory::Resource::DeployKey --- qa/qa.rb | 1 + qa/qa/factory/resource/deploy_key.rb | 31 +++++++++++++++++++ .../features/project/add_deploy_key_spec.rb | 19 ++---------- 3 files changed, 35 insertions(+), 16 deletions(-) create mode 100644 qa/qa/factory/resource/deploy_key.rb diff --git a/qa/qa.rb b/qa/qa.rb index 3c63c18483b..8001a1a3bd0 100644 --- a/qa/qa.rb +++ b/qa/qa.rb @@ -24,6 +24,7 @@ module QA autoload :Sandbox, 'qa/factory/resource/sandbox' autoload :Group, 'qa/factory/resource/group' autoload :Project, 'qa/factory/resource/project' + autoload :DeployKey, 'qa/factory/resource/deploy_key' end module Repository diff --git a/qa/qa/factory/resource/deploy_key.rb b/qa/qa/factory/resource/deploy_key.rb new file mode 100644 index 00000000000..7c58e70bcc4 --- /dev/null +++ b/qa/qa/factory/resource/deploy_key.rb @@ -0,0 +1,31 @@ +module QA + module Factory + module Resource + class DeployKey < Factory::Base + attr_accessor :title, :key + + dependency Factory::Resource::Project, as: :project do |project| + project.name = 'project-to-deploy' + project.description = 'project for adding deploy key test' + end + + def fabricate! + project.visit! + + Page::Menu::Side.act do + click_repository_setting + end + + Page::Project::Settings::Repository.perform do |setting| + setting.expand_deploy_keys do |page| + page.fill_key_title(title) + page.fill_key_value(key) + + page.add_key + end + end + end + end + end + end +end diff --git a/qa/qa/specs/features/project/add_deploy_key_spec.rb b/qa/qa/specs/features/project/add_deploy_key_spec.rb index dd2747d23e4..448682ab977 100644 --- a/qa/qa/specs/features/project/add_deploy_key_spec.rb +++ b/qa/qa/specs/features/project/add_deploy_key_spec.rb @@ -4,13 +4,9 @@ module QA Runtime::Browser.visit(:gitlab, Page::Main::Login) Page::Main::Login.act { sign_in_using_credentials } - Factory::Resource::Project.fabricate! do |scenario| - scenario.name = 'project-to-deploy' - scenario.description = 'project for adding deploy key test' - end - - Page::Menu::Side.act do - click_repository_setting + Factory::Resource::DeployKey.fabricate! do |deploy_key| + deploy_key.title = deploy_key_title + deploy_key.key = deploy_key_value end end @@ -18,15 +14,6 @@ module QA given(:deploy_key_value) { Runtime::User.ssh_key } scenario 'user adds a deploy key' do - Page::Project::Settings::Repository.perform do |setting| - setting.expand_deploy_keys do |page| - page.fill_key_title(deploy_key_title) - page.fill_key_value(deploy_key_value) - - page.add_key - end - end - Page::Project::Settings::Repository.perform do |setting| setting.expand_deploy_keys do |page| expect(page).to have_key_title(deploy_key_title)