From 6ec561a2f7384e6de59821fa4bcd5b63f605cb51 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Fri, 28 Jul 2017 15:26:25 +0100 Subject: fixed up specs --- app/views/projects/edit.html.haml | 88 +++++++++++----------- features/steps/project/project.rb | 16 +++- features/steps/shared/project.rb | 2 +- spec/features/projects/features_visibility_spec.rb | 20 +++-- 4 files changed, 71 insertions(+), 55 deletions(-) diff --git a/app/views/projects/edit.html.haml b/app/views/projects/edit.html.haml index 3a2a544b205..20fceda26dc 100644 --- a/app/views/projects/edit.html.haml +++ b/app/views/projects/edit.html.haml @@ -15,52 +15,52 @@ Update your project name, description, avatar, and other general settings. .settings-content.no-animate{ class: ('expanded' if expanded) } .project-edit-errors - = form_for [@project.namespace.becomes(Namespace), @project], remote: true, html: { multipart: true, class: "edit-project" }, authenticity_token: true do |f| - %fieldset - .row - .form-group.col-md-9 - = f.label :name, class: 'label-light', for: 'project_name_edit' do - Project name - = f.text_field :name, class: "form-control", id: "project_name_edit" + = form_for [@project.namespace.becomes(Namespace), @project], remote: true, html: { multipart: true, class: "edit-project" }, authenticity_token: true do |f| + %fieldset + .row + .form-group.col-md-9 + = f.label :name, class: 'label-light', for: 'project_name_edit' do + Project name + = f.text_field :name, class: "form-control", id: "project_name_edit" - .form-group.col-md-3 - = f.label :id, class: 'label-light' do - Project ID - = f.text_field :id, class: 'form-control', readonly: true + .form-group.col-md-3 + = f.label :id, class: 'label-light' do + Project ID + = f.text_field :id, class: 'form-control', readonly: true - .form-group - = f.label :description, class: 'label-light' do - Project description - %span.light (optional) - = f.text_area :description, class: "form-control", rows: 3, maxlength: 250 - - - unless @project.empty_repo? - .form-group - = f.label :default_branch, "Default Branch", class: 'label-light' - = f.select(:default_branch, @project.repository.branch_names, {}, {class: 'select2 select-wide'}) .form-group - = f.label :tag_list, "Tags", class: 'label-light' - = f.text_field :tag_list, value: @project.tag_list.sort.join(', '), maxlength: 2000, class: "form-control" - %p.help-block Separate tags with commas. - %fieldset.features - %h5.prepend-top-0 - Project avatar + = f.label :description, class: 'label-light' do + Project description + %span.light (optional) + = f.text_area :description, class: "form-control", rows: 3, maxlength: 250 + + - unless @project.empty_repo? .form-group - - if @project.avatar? - .avatar-container.s160 - = project_icon(@project.full_path, alt: '', class: 'avatar project-avatar s160') - %p.light - - if @project.avatar_in_git - Project avatar in repository: #{ @project.avatar_in_git } - %a.choose-btn.btn.js-choose-project-avatar-button - Browse file... - %span.file_name.prepend-left-default.js-avatar-filename No file chosen - = f.file_field :avatar, class: "js-project-avatar-input hidden" - .help-block The maximum file size allowed is 200KB. - - if @project.avatar? - %hr - = link_to 'Remove avatar', project_avatar_path(@project), data: { confirm: "Project avatar will be removed. Are you sure?"}, method: :delete, class: "btn btn-remove btn-sm remove-avatar" - = f.submit 'Save changes', class: "btn btn-save" + = f.label :default_branch, "Default Branch", class: 'label-light' + = f.select(:default_branch, @project.repository.branch_names, {}, {class: 'select2 select-wide'}) + .form-group + = f.label :tag_list, "Tags", class: 'label-light' + = f.text_field :tag_list, value: @project.tag_list.sort.join(', '), maxlength: 2000, class: "form-control" + %p.help-block Separate tags with commas. + %fieldset.features + %h5.prepend-top-0 + Project avatar + .form-group + - if @project.avatar? + .avatar-container.s160 + = project_icon(@project.full_path, alt: '', class: 'avatar project-avatar s160') + %p.light + - if @project.avatar_in_git + Project avatar in repository: #{ @project.avatar_in_git } + %a.choose-btn.btn.js-choose-project-avatar-button + Browse file... + %span.file_name.prepend-left-default.js-avatar-filename No file chosen + = f.file_field :avatar, class: "js-project-avatar-input hidden" + .help-block The maximum file size allowed is 200KB. + - if @project.avatar? + %hr + = link_to 'Remove avatar', project_avatar_path(@project), data: { confirm: "Project avatar will be removed. Are you sure?"}, method: :delete, class: "btn btn-remove btn-sm remove-avatar" + = f.submit 'Save changes', class: "btn btn-save" %section.settings.sharing-permissions .settings-header @@ -70,7 +70,7 @@ = expanded ? 'Collapse' : 'Expand' %p Enable or disable certain project features and choose access levels. - .settings-content.no-animate{ class: ('expaneded' if expanded) } + .settings-content.no-animate{ class: ('expanded' if expanded) } = form_for [@project.namespace.becomes(Namespace), @project], remote: true, html: { multipart: true, class: "sharing-permissions-form" }, authenticity_token: true do |f| .form_group.sharing-and-permissions .row.js-visibility-select @@ -148,7 +148,7 @@ = f.submit 'Save changes', class: "btn btn-save" - %section.settings.merge-request-settings{ style: ("display: none;" if @project.project_feature.send(:merge_requests_access_level) == 0) } + %section.settings.merge-requests-feature{ style: ("display: none;" if @project.project_feature.send(:merge_requests_access_level) == 0) } .settings-header %h4 Merge request settings diff --git a/features/steps/project/project.rb b/features/steps/project/project.rb index 170e2f16c80..0a89c1baf20 100644 --- a/features/steps/project/project.rb +++ b/features/steps/project/project.rb @@ -10,7 +10,9 @@ class Spinach::Features::Project < Spinach::FeatureSteps end step 'I save project' do - click_button 'Save changes' + page.within '.general-settings' do + click_button 'Save changes' + end end step 'I should see project with new settings' do @@ -31,7 +33,9 @@ class Spinach::Features::Project < Spinach::FeatureSteps :project_avatar, File.join(Rails.root, 'spec', 'fixtures', 'banana_sample.gif') ) - click_button 'Save changes' + page.within '.general-settings' do + click_button 'Save changes' + end @project.reload end @@ -50,7 +54,9 @@ class Spinach::Features::Project < Spinach::FeatureSteps :project_avatar, File.join(Rails.root, 'spec', 'fixtures', 'banana_sample.gif') ) - click_button 'Save changes' + page.within '.general-settings' do + click_button 'Save changes' + end @project.reload end @@ -69,7 +75,9 @@ class Spinach::Features::Project < Spinach::FeatureSteps step 'change project default branch' do select 'fix', from: 'project_default_branch' - click_button 'Save changes' + page.within '.general-settings' do + click_button 'Save changes' + end end step 'I should see project default branch changed' do diff --git a/features/steps/shared/project.rb b/features/steps/shared/project.rb index da1cdd9f897..c9a63723212 100644 --- a/features/steps/shared/project.rb +++ b/features/steps/shared/project.rb @@ -103,7 +103,7 @@ module SharedProject step 'I should see project settings' do expect(current_path).to eq edit_project_path(@project) expect(page).to have_content("Project name") - expect(page).to have_content("Sharing & Permissions") + expect(page).to have_content("Sharing and permissions") end def current_project diff --git a/spec/features/projects/features_visibility_spec.rb b/spec/features/projects/features_visibility_spec.rb index bc58a8695d8..4f2dd410b82 100644 --- a/spec/features/projects/features_visibility_spec.rb +++ b/spec/features/projects/features_visibility_spec.rb @@ -39,8 +39,6 @@ describe 'Edit Project Settings' do end wait_for_requests expect(page).to have_selector(".shortcuts-#{shortcut_name}") - - sleep 0.1 end end end @@ -180,7 +178,11 @@ describe 'Edit Project Settings' do it "disables repository related features" do select "Disabled", from: "project_project_feature_attributes_repository_access_level" - expect(find(".edit-project")).to have_selector("select.disabled", count: 2) + page.within('.sharing-permissions') do + click_button "Save changes" + end + + expect(find(".sharing-permissions")).to have_selector("select.disabled", count: 2) end it "shows empty features project homepage" do @@ -188,7 +190,9 @@ describe 'Edit Project Settings' do select "Disabled", from: "project_project_feature_attributes_issues_access_level" select "Disabled", from: "project_project_feature_attributes_wiki_access_level" - click_button "Save changes" + page.within('.sharing-permissions') do + click_button "Save changes" + end wait_for_requests visit project_path(project) @@ -201,7 +205,9 @@ describe 'Edit Project Settings' do select "Disabled", from: "project_project_feature_attributes_issues_access_level" select "Disabled", from: "project_project_feature_attributes_wiki_access_level" - click_button "Save changes" + page.within('.sharing-permissions') do + click_button "Save changes" + end wait_for_requests visit activity_project_path(project) @@ -242,7 +248,9 @@ describe 'Edit Project Settings' do end def save_changes_and_check_activity_tab - click_button "Save changes" + page.within('.sharing-permissions') do + click_button "Save changes" + end wait_for_requests visit activity_project_path(project) -- cgit v1.2.1