Handle extra dashes in label names
Extra dashes inside label names would confuse `_computeLabelShortcut`'s
reduce call because the iteration could result in an empty string or
undefined. Use a falsiness check to skip attempting to uppercase
iterations that don't have any characters.
Change-Id: I4a2b267352150a8a66c4a4b94b35697a16c23bb8
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.js b/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.js
index dc41f59..71eba38 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.js
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list.js
@@ -181,6 +181,7 @@
_computeLabelShortcut(labelName) {
return labelName.split('-').reduce((a, i) => {
+ if (!i) { return a; }
return a + i[0].toUpperCase();
}, '');
},
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list_test.html b/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list_test.html
index 3dd8c9d..c499bb4 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list_test.html
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list/gr-change-list_test.html
@@ -128,6 +128,8 @@
assert.equal(element._computeLabelShortcut('polygerrit-review'), 'PR');
assert.equal(element._computeLabelShortcut(
'Some-Special-Label-7'), 'SSL7');
+ assert.equal(element._computeLabelShortcut('--Too----many----dashes---'),
+ 'TMD');
});
test('colspans', () => {