From 260d1e44310c4b49db8453ac410682213eaba96a Mon Sep 17 00:00:00 2001 From: Samantha Ming Date: Tue, 23 Jun 2020 00:03:29 -0700 Subject: [PATCH] Add squash commit message in MR form Issue: https://gitlab.com/gitlab-org/gitlab/-/issues/223029 It will add a message when the squash commit checkbox is disabled. It will indicate whether it is required or not. --- .../issuable/form/_merge_params.html.haml | 3 ++ .../user_edits_merge_request_spec.rb | 34 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/app/views/shared/issuable/form/_merge_params.html.haml b/app/views/shared/issuable/form/_merge_params.html.haml index 6523e733e44685..6f1023474a19e0 100644 --- a/app/views/shared/issuable/form/_merge_params.html.haml +++ b/app/views/shared/issuable/form/_merge_params.html.haml @@ -26,3 +26,6 @@ = label_tag 'merge_request[squash]', class: 'form-check-label' do Squash commits when merge request is accepted. = link_to icon('question-circle'), help_page_path('user/project/merge_requests/squash_and_merge'), target: '_blank' + - if project.squash_always? + .gl-text-gray-600 + = _('Required in this project.') diff --git a/spec/features/merge_request/user_edits_merge_request_spec.rb b/spec/features/merge_request/user_edits_merge_request_spec.rb index 84ecd6537dccfc..9af73240bb8bdb 100644 --- a/spec/features/merge_request/user_edits_merge_request_spec.rb +++ b/spec/features/merge_request/user_edits_merge_request_spec.rb @@ -16,6 +16,40 @@ visit(edit_project_merge_request_path(project, merge_request)) end + describe 'Squash commits' do + it 'displays "Required in this project" for "Required" project setting squash option' do + project.project_setting.update!(squash_option: 'always') + visit(edit_project_merge_request_path(project, merge_request)) + + expect(page).to have_content('Squash commits when merge request is accepted.') + expect(page).to have_content("Required in this project") + end + + it 'does not display message for "Allow" project setting squash option' do + project.project_setting.update!(squash_option: 'default_off') + visit(edit_project_merge_request_path(project, merge_request)) + + expect(page).to have_content('Squash commits when merge request is accepted.') + expect(page).not_to have_content("Required in this project") + end + + it 'does not display message for "Encourage" project setting squash option' do + project.project_setting.update!(squash_option: 'default_on') + visit(edit_project_merge_request_path(project, merge_request)) + + expect(page).to have_content('Squash commits when merge request is accepted.') + expect(page).not_to have_content("Required in this project") + end + + it 'is hidden for "Do not allow" project setting squash option' do + project.project_setting.update!(squash_option: 'never') + visit(edit_project_merge_request_path(project, merge_request)) + + expect(page).not_to have_content('Squash commits when merge request is accepted.') + expect(page).not_to have_css('#merge_request_squash') + end + end + it 'changes the target branch' do expect(page).to have_content('From master into feature') -- GitLab