diff options
author | Mark Lapierre <mlapierre@gitlab.com> | 2018-11-28 15:23:38 -0500 |
---|---|---|
committer | Mark Lapierre <mlapierre@gitlab.com> | 2018-12-10 13:10:12 -0500 |
commit | ed75b46cd9ae2fbc4dfd98447d659c771ddef23c (patch) | |
tree | 9a28632fdd55bfc727c23a8ba645b20062c75e3d /qa | |
parent | c61c5cf2d973f9a9add71dbe876df42caa8e4bfe (diff) | |
download | gitlab-ce-ed75b46cd9ae2fbc4dfd98447d659c771ddef23c.tar.gz |
Update tests and Resources to use new file button
The 'Create new' dropdown is no longer available on a blank project
so use the 'New file' button instead.
Diffstat (limited to 'qa')
-rw-r--r-- | qa/qa/page/base.rb | 4 | ||||
-rw-r--r-- | qa/qa/page/project/show.rb | 77 | ||||
-rw-r--r-- | qa/qa/resource/file.rb | 2 | ||||
-rw-r--r-- | qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb | 14 | ||||
-rw-r--r-- | qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb | 12 |
5 files changed, 65 insertions, 44 deletions
diff --git a/qa/qa/page/base.rb b/qa/qa/page/base.rb index f4bba3c9560..88ade66f47d 100644 --- a/qa/qa/page/base.rb +++ b/qa/qa/page/base.rb @@ -132,6 +132,10 @@ module QA Page::Element.new(name).selector_css end + def click_link_with_text(text) + click_link text + end + def self.path raise NotImplementedError end diff --git a/qa/qa/page/project/show.rb b/qa/qa/page/project/show.rb index d6dddf03ffb..99d849db439 100644 --- a/qa/qa/page/project/show.rb +++ b/qa/qa/page/project/show.rb @@ -6,6 +6,11 @@ module QA class Show < Page::Base include Page::Component::ClonePanel + view 'app/views/layouts/header/_new_dropdown.haml' do + element :new_menu_toggle + element :new_issue_link, "link_to _('New issue'), new_project_issue_path(@project)" # rubocop:disable QA/ElementWithPattern + end + view 'app/views/projects/_last_push.html.haml' do element :create_merge_request end @@ -14,14 +19,12 @@ module QA element :project_name end - view 'app/views/layouts/header/_new_dropdown.haml' do - element :new_menu_toggle - element :new_issue_link, "link_to _('New issue'), new_project_issue_path(@project)" # rubocop:disable QA/ElementWithPattern + view 'app/views/projects/_files.html.haml' do + element :tree_holder, '.tree-holder' # rubocop:disable QA/ElementWithPattern end - view 'app/views/shared/_ref_switcher.html.haml' do - element :branches_select - element :branches_dropdown + view 'app/views/projects/buttons/_dropdown.html.haml' do + element :create_new_dropdown end view 'app/views/projects/buttons/_fork.html.haml' do @@ -29,44 +32,50 @@ module QA element :fork_link, "link_to new_project_fork_path(@project)" # rubocop:disable QA/ElementWithPattern end - view 'app/views/projects/_files.html.haml' do - element :tree_holder, '.tree-holder' # rubocop:disable QA/ElementWithPattern + view 'app/views/projects/empty.html.haml' do + element :quick_actions end - view 'app/views/projects/buttons/_dropdown.html.haml' do - element :create_new_dropdown - element :new_file_option + view 'app/views/projects/tree/_tree_content.html.haml' do + element :file_tree end view 'app/views/projects/tree/_tree_header.html.haml' do + element :add_to_tree + element :new_file_option element :web_ide_button end - view 'app/views/projects/tree/_tree_content.html.haml' do - element :file_tree + view 'app/views/shared/_ref_switcher.html.haml' do + element :branches_select + element :branches_dropdown end - def project_name - find('.qa-project-name').text + def create_first_new_file! + within_element(:quick_actions) do + click_link_with_text 'New file' + end end def create_new_file! - click_element :create_new_dropdown + click_element :add_to_tree click_element :new_file_option end + def fork_project + click_on 'Fork' + end + def go_to_file(filename) within_element(:file_tree) do click_on filename end end - def switch_to_branch(branch_name) - find_element(:branches_select).click + def go_to_new_issue + click_element :new_menu_toggle - within_element(:branches_dropdown) do - click_on branch_name - end + click_link 'New issue' end def last_commit_content @@ -81,24 +90,26 @@ module QA click_element :create_merge_request end - def wait_for_import - wait(reload: true) do - has_css?('.tree-holder') - end + def open_web_ide! + click_element :web_ide_button end - def go_to_new_issue - click_element :new_menu_toggle - - click_link 'New issue' + def project_name + find('.qa-project-name').text end - def fork_project - click_on 'Fork' + def switch_to_branch(branch_name) + find_element(:branches_select).click + + within_element(:branches_dropdown) do + click_on branch_name + end end - def open_web_ide! - click_element :web_ide_button + def wait_for_import + wait(reload: true) do + has_css?('.tree-holder') + end end end end diff --git a/qa/qa/resource/file.rb b/qa/qa/resource/file.rb index effc5a7940b..57e82ac19ad 100644 --- a/qa/qa/resource/file.rb +++ b/qa/qa/resource/file.rb @@ -22,7 +22,7 @@ module QA def fabricate! project.visit! - Page::Project::Show.perform(&:create_new_file!) + Page::Project::Show.perform(&:create_first_new_file!) Page::File::Form.perform do |page| page.add_name(@name) diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb index 297485dd81e..de5c535c757 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/add_file_template_spec.rb @@ -7,7 +7,7 @@ module QA def login Runtime::Browser.visit(:gitlab, Page::Main::Login) - Page::Main::Login.act { sign_in_using_credentials } + Page::Main::Login.perform(&:sign_in_using_credentials) end before(:all) do @@ -18,7 +18,15 @@ module QA project.description = 'Add file templates via the Files view' end - Page::Main::Menu.act { sign_out } + # There's no 'New File' dropdown when the project is blank, so we first + # add a dummy file so that the dropdown will appear + Resource::File.fabricate! do |file| + file.project = @project + file.name = 'README.md' + file.content = '# Readme' + end + + Page::Main::Menu.perform(&:sign_out) end templates = [ @@ -55,7 +63,7 @@ module QA login @project.visit! - Page::Project::Show.act { create_new_file! } + Page::Project::Show.perform(&:create_new_file!) Page::File::Form.perform do |page| page.select_template template[:file_name], template[:name] end diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb index e7374377104..f176ec31abd 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb @@ -7,7 +7,7 @@ module QA def login Runtime::Browser.visit(:gitlab, Page::Main::Login) - Page::Main::Login.act { sign_in_using_credentials } + Page::Main::Login.perform(&:sign_in_using_credentials) end before(:all) do @@ -21,14 +21,14 @@ module QA # Add a file via the regular Files view because the Web IDE isn't # available unless there is a file present - Page::Project::Show.act { create_new_file! } + Page::Project::Show.perform(&:create_first_new_file!) Page::File::Form.perform do |page| page.add_name('dummy') page.add_content('Enable the Web IDE') page.commit_changes end - Page::Main::Menu.act { sign_out } + Page::Main::Menu.perform(&:sign_out) end templates = [ @@ -65,7 +65,7 @@ module QA login @project.visit! - Page::Project::Show.act { open_web_ide! } + Page::Project::Show.perform(&:open_web_ide!) Page::Project::WebIDE::Edit.perform do |page| page.create_new_file_from_template template[:file_name], template[:name] @@ -75,9 +75,7 @@ module QA expect(page).to have_button('Undo') expect(page).to have_content(content[0..100]) - Page::Project::WebIDE::Edit.perform do |page| - page.commit_changes - end + Page::Project::WebIDE::Edit.perform(&:commit_changes) expect(page).to have_content(template[:file_name]) expect(page).to have_content(content[0..100]) |