From 063baf2058c4dd19ec2ab59baeb6190773343a68 Mon Sep 17 00:00:00 2001
From: Savas Vedova <svedova@gitlab.com>
Date: Mon, 28 Feb 2022 14:36:02 +0000
Subject: [PATCH] Fix vulnerability validation bug

Emit changes when a new row is added so that validation works properly.
---
 .../components/new_vulnerability/section_identifiers.vue   | 6 +++++-
 .../new_vulnerability/section_identifiers_spec.js          | 7 +++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

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 05c33335227a8..4f6e30360f1e5 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
@@ -21,6 +21,11 @@ export default {
       identifiers: [{ identifierCode: '', identifierUrl: '' }],
     };
   },
+  watch: {
+    identifiers() {
+      this.emitChanges();
+    },
+  },
   methods: {
     emitChanges() {
       this.$emit('change', {
@@ -35,7 +40,6 @@ export default {
     },
     removeIdentifier(index) {
       this.identifiers.splice(index, 1);
-      this.emitChanges();
     },
     // null is when the user didn't input anything yet
     // false when the user provided invalid input and
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 c33b3160fcff4..692ec14f3c207 100644
--- a/ee/spec/frontend/vulnerabilities/new_vulnerability/section_identifiers_spec.js
+++ b/ee/spec/frontend/vulnerabilities/new_vulnerability/section_identifiers_spec.js
@@ -80,6 +80,13 @@ describe('New vulnerability - Section Identifiers', () => {
 
     expect(findIdentifierRows()).toHaveLength(2);
 
+    expect(wrapper.emitted('change')[0][0]).toEqual({
+      identifiers: [
+        { name: '', url: '' },
+        { name: '', url: '' },
+      ],
+    });
+
     wrapper.findByLabelText('Remove identifier row').trigger('click');
     await nextTick();
 
-- 
GitLab