From 66be0f2313a9d1a5d91e967cb3f54953e35f0b7c Mon Sep 17 00:00:00 2001 From: Savas Vedova <svedova@gitlab.com> Date: Mon, 14 Feb 2022 13:24:15 +0300 Subject: [PATCH] Rephrase error messages Use a specific error message for each field instead of using a generic one for everyone. --- .../components/new_vulnerability/i18n.js | 10 ++++++++-- .../new_vulnerability/section_details.vue | 7 ++++--- .../new_vulnerability/section_identifiers.vue | 7 ++++--- .../components/new_vulnerability/section_name.vue | 4 ++-- .../new_vulnerability/section_details_spec.js | 4 ++-- .../new_vulnerability/section_identifiers_spec.js | 4 ++-- .../new_vulnerability/section_name_spec.js | 2 +- locale/gitlab.pot | 15 +++++++++++++++ 8 files changed, 38 insertions(+), 15 deletions(-) diff --git a/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/i18n.js b/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/i18n.js index fa52eef7f76a4..5a7844fcdd372 100644 --- a/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/i18n.js +++ b/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/i18n.js @@ -1,3 +1,9 @@ -import { __ } from '~/locale'; +import { s__ } from '~/locale'; -export const REQUIRED_FIELD = __('This field is required.'); +export const ERROR_NAME = s__('VulnerabilityManagement|Enter a name'); +export const ERROR_SEVERITY = s__('VulnerabilityManagement|Select a severity level'); +export const ERROR_STATUS = s__('VulnerabilityManagement|Select a status'); +export const ERROR_IDENTIFIER_CODE = s__('VulnerabilityManagement|Enter the CVE or CWE code'); +export const ERROR_IDENTIFIER_URL = s__( + 'VulnerabilityManagement|Enter the CVE or CWE identifier URL', +); diff --git a/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_details.vue b/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_details.vue index d3f306671ab06..f6bb1973ef713 100644 --- a/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_details.vue +++ b/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_details.vue @@ -108,7 +108,8 @@ export default { critical: [9.0, 10.0], }, i18n: { - requiredField: i18n.REQUIRED_FIELD, + errorSeverity: i18n.ERROR_SEVERITY, + errorStatus: i18n.ERROR_STATUS, title: s__('Vulnerability|Details'), description: s__( 'Vulnerability|Information related how the vulnerability was discovered and its impact to the system.', @@ -164,7 +165,7 @@ export default { <gl-form-group :label="$options.i18n.severity.label" :state="validationState.severity" - :invalid-feedback="$options.i18n.requiredField" + :invalid-feedback="$options.i18n.errorSeverity" label-for="form-severity" class="gl-mr-6 gl-mb-0" > @@ -191,7 +192,7 @@ export default { <gl-form-group :label="$options.i18n.status.label" :state="validationState.status" - :invalid-feedback="$options.i18n.requiredField" + :invalid-feedback="$options.i18n.errorStatus" > <p>{{ $options.i18n.status.description }}</p> <gl-form-radio-group :checked="statusId" @change="emitChanges"> diff --git a/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_identifiers.vue b/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_identifiers.vue index 7cc4f2c19fa07..21871c57fba24 100644 --- a/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_identifiers.vue +++ b/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_identifiers.vue @@ -54,7 +54,8 @@ export default { }, }, i18n: { - requiredField: i18n.REQUIRED_FIELD, + errorIdentifierCode: i18n.ERROR_IDENTIFIER_CODE, + errorIdentifierUrl: i18n.ERROR_IDENTIFIER_URL, title: s__('Vulnerability|Identifiers'), description: s__( 'Vulnerability|Enter the associated CVE or CWE entries for this vulnerability.', @@ -87,7 +88,7 @@ export default { :label="$options.i18n.identifierCode" :label-for="`form-identifier-code-${index}`" :state="validationStateIdentifierCode(index)" - :invalid-feedback="$options.i18n.requiredField" + :invalid-feedback="$options.i18n.errorIdentifierCode" class="gl-mr-6 gl-mb-0" > <gl-form-input @@ -101,7 +102,7 @@ export default { <gl-form-group :label="$options.i18n.identifierUrl" :state="validationStateIdentifierUrl(index)" - :invalid-feedback="$options.i18n.requiredField" + :invalid-feedback="$options.i18n.errorIdentifierUrl" :label-for="`form-identifier-url-${index}`" class="gl-flex-grow-1 gl-mb-0" > diff --git a/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_name.vue b/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_name.vue index d5c04410328f4..9a7d0d71bd0c5 100644 --- a/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_name.vue +++ b/ee/app/assets/javascripts/vulnerabilities/components/new_vulnerability/section_name.vue @@ -35,7 +35,7 @@ export default { }, }, i18n: { - requiredField: i18n.REQUIRED_FIELD, + errorName: i18n.ERROR_NAME, vulnerabilityName: { label: __('Name'), description: s__( @@ -57,7 +57,7 @@ export default { :label="$options.i18n.vulnerabilityName.label" :description="$options.i18n.vulnerabilityName.description" :state="validationState.name" - :invalid-feedback="$options.i18n.requiredField" + :invalid-feedback="$options.i18n.errorName" label-for="form-vulnerability-name" class="gl-mb-6" > diff --git a/ee/spec/frontend/vulnerabilities/new_vulnerability/section_details_spec.js b/ee/spec/frontend/vulnerabilities/new_vulnerability/section_details_spec.js index 5b1705705fa0c..a3587ef3ea357 100644 --- a/ee/spec/frontend/vulnerabilities/new_vulnerability/section_details_spec.js +++ b/ee/spec/frontend/vulnerabilities/new_vulnerability/section_details_spec.js @@ -97,11 +97,11 @@ describe('New vulnerability - Section Details', () => { await nextTick(); // severity input - expect(wrapper.findAllByRole('alert').at(0).text()).toBe('This field is required.'); + expect(wrapper.findAllByRole('alert').at(0).text()).toBe('Select a severity level'); expect(findFormGroup(1).attributes('aria-invalid')).toBe('true'); // status input - expect(wrapper.findAllByRole('alert').at(1).text()).toBe('This field is required.'); + expect(wrapper.findAllByRole('alert').at(1).text()).toBe('Select a status'); expect(findFormGroup(2).attributes('aria-invalid')).toBe('true'); }); }); diff --git a/ee/spec/frontend/vulnerabilities/new_vulnerability/section_identifiers_spec.js b/ee/spec/frontend/vulnerabilities/new_vulnerability/section_identifiers_spec.js index a7758233b750d..8f23e109742b0 100644 --- a/ee/spec/frontend/vulnerabilities/new_vulnerability/section_identifiers_spec.js +++ b/ee/spec/frontend/vulnerabilities/new_vulnerability/section_identifiers_spec.js @@ -50,10 +50,10 @@ describe('New vulnerability - Section Identifiers', () => { await nextTick(); expect(findFormGroup(0).attributes('aria-invalid')).toBe('true'); - expect(wrapper.findAllByRole('alert').at(0).text()).toBe('This field is required.'); + expect(wrapper.findAllByRole('alert').at(0).text()).toBe('Enter the CVE or CWE code'); expect(findFormGroup(1).attributes('aria-invalid')).toBe('true'); - expect(wrapper.findAllByRole('alert').at(1).text()).toBe('This field is required.'); + expect(wrapper.findAllByRole('alert').at(1).text()).toBe('Enter the CVE or CWE identifier URL'); }); it('emits change event when input changes', () => { diff --git a/ee/spec/frontend/vulnerabilities/new_vulnerability/section_name_spec.js b/ee/spec/frontend/vulnerabilities/new_vulnerability/section_name_spec.js index 7ba5cd1a9b45a..54c32c967848c 100644 --- a/ee/spec/frontend/vulnerabilities/new_vulnerability/section_name_spec.js +++ b/ee/spec/frontend/vulnerabilities/new_vulnerability/section_name_spec.js @@ -79,7 +79,7 @@ describe('New vulnerability - Section Name', () => { await nextTick(); - expect(wrapper.findByRole('alert').text()).toBe('This field is required.'); + expect(wrapper.findByRole('alert').text()).toBe('Enter a name'); expect(findFormGroup(0).attributes('aria-invalid')).toBe('true'); }); }); diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 76ce6fc67c975..e50594d701ca9 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -40239,6 +40239,15 @@ msgstr "" msgid "VulnerabilityManagement|Create Jira issue" msgstr "" +msgid "VulnerabilityManagement|Enter a name" +msgstr "" + +msgid "VulnerabilityManagement|Enter the CVE or CWE code" +msgstr "" + +msgid "VulnerabilityManagement|Enter the CVE or CWE identifier URL" +msgstr "" + msgid "VulnerabilityManagement|Fetching linked Jira issues" msgstr "" @@ -40263,6 +40272,12 @@ msgstr "" msgid "VulnerabilityManagement|Select a method" msgstr "" +msgid "VulnerabilityManagement|Select a severity level" +msgstr "" + +msgid "VulnerabilityManagement|Select a status" +msgstr "" + msgid "VulnerabilityManagement|Severity is a required field" msgstr "" -- GitLab