diff options
Diffstat (limited to 'spec/features/projects_spec.rb')
-rw-r--r-- | spec/features/projects_spec.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/features/projects_spec.rb b/spec/features/projects_spec.rb index 1049f8bc18f..db64f84aa76 100644 --- a/spec/features/projects_spec.rb +++ b/spec/features/projects_spec.rb @@ -15,6 +15,12 @@ RSpec.describe 'Project' do end shared_examples 'creates from template' do |template, sub_template_tab = nil| + let(:selected_template) { page.find('.project-fields-form .selected-template') } + + choose_template_selector = '.choose-template' + template_option_selector = '.template-option' + template_name_selector = '.description strong' + it "is created from template", :js do click_link 'Create from template' find(".project-template #{sub_template_tab}").click if sub_template_tab @@ -27,6 +33,39 @@ RSpec.describe 'Project' do expect(page).to have_content template.name end + + it 'is created using keyboard navigation', :js do + click_link 'Create from template' + + first_template = first(template_option_selector) + first_template_name = first_template.find(template_name_selector).text + first_template.find(choose_template_selector).click + + expect(selected_template).to have_text(first_template_name) + + click_button "Change template" + find("#built-in").click + + # Jumps down 1 template, skipping the `preview` buttons + 2.times do + page.send_keys :tab + end + + # Ensure the template with focus is selected + project_name = "project from template" + focused_template = page.find(':focus').ancestor(template_option_selector) + focused_template_name = focused_template.find(template_name_selector).text + focused_template.find(choose_template_selector).send_keys :enter + fill_in "project_name", with: project_name + + expect(selected_template).to have_text(focused_template_name) + + page.within '#content-body' do + click_button "Create project" + end + + expect(page).to have_content project_name + end end context 'create with project template' do |