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 9af73240bb8bdbe94acdd4f58891833394fa635e..6c5f508c8c6d0027dd10defa595d1e316dfb7ea7 100644 --- a/spec/features/merge_request/user_edits_merge_request_spec.rb +++ b/spec/features/merge_request/user_edits_merge_request_spec.rb @@ -17,6 +17,41 @@ end describe 'Squash commits' do + it 'override MR setting if "Required" is saved' do + merge_request.update!(squash: false) + + project.project_setting.update!(squash_option: 'always') + visit(edit_project_merge_request_path(project, merge_request)) + click_button('Save changes') + + project.project_setting.update!(squash_option: 'default_off') + visit(edit_project_merge_request_path(project, merge_request)) + + expect(find("#merge_request_squash").selected?).to be(true) + end + + it 'recovers MR squash setting if "Required" is not saved' do + merge_request.update!(squash: false) + + project.project_setting.update!(squash_option: 'always') + visit(edit_project_merge_request_path(project, merge_request)) + + project.project_setting.update!(squash_option: 'default_on') + visit(edit_project_merge_request_path(project, merge_request)) + + expect(find("#merge_request_squash").selected?).to be(false) + end + + it 'does not override MR squash setting if "Do not allow" is saved' do + merge_request.update!(squash: true) + + project.project_setting.update!(squash_option: 'never') + visit(edit_project_merge_request_path(project, merge_request)) + click_button('Save changes') + + expect(merge_request.squash).to be true + end + 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))