summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamantha Ming <sming@gitlab.com>2019-08-13 20:06:50 -0700
committerSamantha Ming <sming@gitlab.com>2019-08-20 16:39:34 -0700
commitde5535e140a8d8d4052f7c528c2cd5a6ff18e40d (patch)
treebaa94b33afb77ab6d48ea413468cad3510fbd1f1
parent194069402a91da1fb446eccfa861008e124fff3b (diff)
downloadgitlab-ce-ce-65631-rename-approval-rule.tar.gz
Rename field & move helper text to placeholderce-65631-rename-approval-rule
-rw-r--r--ee/app/assets/javascripts/approvals/components/rule_form.vue4
-rw-r--r--ee/changelogs/unreleased/65631-rename-approval-rule.yml5
-rw-r--r--ee/spec/features/merge_request/user_edits_approval_rules_mr_spec.rb89
-rw-r--r--locale/gitlab.pot30
4 files changed, 126 insertions, 2 deletions
diff --git a/ee/app/assets/javascripts/approvals/components/rule_form.vue b/ee/app/assets/javascripts/approvals/components/rule_form.vue
index 989da03e915..24a761da39e 100644
--- a/ee/app/assets/javascripts/approvals/components/rule_form.vue
+++ b/ee/app/assets/javascripts/approvals/components/rule_form.vue
@@ -222,12 +222,12 @@ export default {
<div class="row">
<div v-if="settings.allowMultiRule" class="form-group col-sm-6">
<label class="label-wrapper">
- <span class="mb-2 bold inline">{{ s__('ApprovalRule|Name') }}</span>
+ <span class="mb-2 bold inline">{{ s__('ApprovalRule|Rule name') }}</span>
<input
v-model="name"
:class="{ 'is-invalid': validation.name }"
class="form-control"
- name="Rule name"
+ name="name"
type="text"
/>
<span class="invalid-feedback">{{ validation.name }}</span>
diff --git a/ee/changelogs/unreleased/65631-rename-approval-rule.yml b/ee/changelogs/unreleased/65631-rename-approval-rule.yml
new file mode 100644
index 00000000000..de341545db0
--- /dev/null
+++ b/ee/changelogs/unreleased/65631-rename-approval-rule.yml
@@ -0,0 +1,5 @@
+---
+title: Rename approval rule
+merge_request: 15140
+author:
+type: other
diff --git a/ee/spec/features/merge_request/user_edits_approval_rules_mr_spec.rb b/ee/spec/features/merge_request/user_edits_approval_rules_mr_spec.rb
new file mode 100644
index 00000000000..bc7a4d0fe0a
--- /dev/null
+++ b/ee/spec/features/merge_request/user_edits_approval_rules_mr_spec.rb
@@ -0,0 +1,89 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe 'Merge request > User edits MR with approval rules', :js do
+ include Select2Helper
+
+ include_context 'project with approval rules'
+
+ let(:merge_request) { create(:merge_request, source_project: project) }
+ let(:mr_rule_names) { %w[foo lorem ipsum] }
+ let(:modal_id) { '#mr-edit-approvals-create-modal' }
+ let(:members_selector) { "#{modal_id} input[name=members]" }
+ let(:members_search_selector) { "#{modal_id} .select2-input" }
+
+ def page_rule_names
+ page.all('.js-approval-rules table .js-name')
+ end
+
+ def add_approval_rule_member(type, name)
+ open_select2 members_selector
+ wait_for_requests
+ find(".select2-result-label .#{type}-result", text: name).click
+ close_select2 members_selector
+
+ find("#{modal_id} button", text: 'Add', exact_text: true).click
+ end
+
+ before do
+ project.update_attribute(:disable_overriding_approvers_per_merge_request, false)
+ stub_licensed_features(multiple_approval_rules: true)
+
+ approver = create(:user)
+ mr_rule_names.each do |name|
+ create(:approval_merge_request_rule,
+ merge_request: merge_request, approvals_required: 1, name: name, users: [approver])
+ end
+
+ sign_in(author)
+ visit(edit_project_merge_request_path(project, merge_request))
+
+ wait_for_requests
+ end
+
+ it "shows approval rules" do
+ names = page_rule_names.map(&:text)
+
+ expect(names).to eq(mr_rule_names)
+ end
+
+ it "allows user to create approval rule" do
+ rule_name = "Custom Approval Rule"
+
+ click_button "Add approvers"
+
+ fill_in "Rule name", with: rule_name
+
+ add_approval_rule_member('user', approver.name)
+
+ find("#{modal_id} button", text: 'Add approvers').click
+ wait_for_requests
+
+ expect(page_rule_names.last).to have_text(rule_name)
+ end
+
+ context "with public group" do
+ let!(:group) { create(:group, :public) }
+
+ before do
+ group.add_developer create(:user)
+
+ click_button "Add approvers"
+ end
+
+ it "with empty search, does not show public group" do
+ open_select2 members_selector
+ wait_for_requests
+
+ expect(page).not_to have_selector('.select2-result-label .group-result', text: group.name)
+ end
+
+ it "with non-empty search, shows public group" do
+ find(members_search_selector).set group.name
+ wait_for_requests
+
+ expect(page).to have_selector('.select2-result-label .group-result', text: group.name)
+ end
+ end
+end
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 26e6cb524bd..98ebee5fffa 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -625,6 +625,9 @@ msgstr ""
msgid "Activity"
msgstr ""
+msgid "Add"
+msgstr ""
+
msgid "Add %d issue"
msgid_plural "Add %d issues"
msgstr[0] ""
@@ -1236,6 +1239,18 @@ msgstr ""
msgid "Applying suggestion"
msgstr ""
+msgid "ApprovalRule|Members"
+msgstr ""
+
+msgid "ApprovalRule|No. approvals required"
+msgstr ""
+
+msgid "ApprovalRule|Rule name"
+msgstr ""
+
+msgid "ApprovalRule|e.g. QA, Security, etc."
+msgstr ""
+
msgid "Apr"
msgstr ""
@@ -8200,12 +8215,24 @@ msgstr ""
msgid "Please create a username with only alphanumeric characters."
msgstr ""
+msgid "Please enter a non-negative number"
+msgstr ""
+
+msgid "Please enter a number greater than %{number} (from the project settings)"
+msgstr ""
+
+msgid "Please enter a valid number"
+msgstr ""
+
msgid "Please fill in a descriptive name for your group."
msgstr ""
msgid "Please note that this application is not provided by GitLab and you should verify its authenticity before allowing access."
msgstr ""
+msgid "Please provide a name"
+msgstr ""
+
msgid "Please provide a valid email address."
msgstr ""
@@ -8218,6 +8245,9 @@ msgstr ""
msgid "Please select a group."
msgstr ""
+msgid "Please select and add a member"
+msgstr ""
+
msgid "Please select at least one filter to see results"
msgstr ""