From cff21ca05041f74eb4cba4af296e325cdecbed87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raimund=20Schl=C3=BC=C3=9Fler?= Date: Wed, 3 Jan 2024 22:36:04 +0100 Subject: [PATCH] fix: don't show empty category for empty CATEGORIES param MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Raimund Schlüßler --- src/models/task.js | 2 +- tests/assets/loadAsset.js | 12 ++++++++++++ tests/javascript/unit/models/task.spec.js | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/models/task.js b/src/models/task.js index 64c1fe3ca..8dc8fa8b8 100644 --- a/src/models/task.js +++ b/src/models/task.js @@ -535,7 +535,7 @@ export default class Task { let tags = [] for (const t of this.vtodo.getAllProperties('categories')) { if (t) { - tags = tags.concat(t.getValues()) + tags = tags.concat(t.getValues().filter(t => t)) } } return tags diff --git a/tests/assets/loadAsset.js b/tests/assets/loadAsset.js index 53620790f..54748edab 100644 --- a/tests/assets/loadAsset.js +++ b/tests/assets/loadAsset.js @@ -182,6 +182,18 @@ LAST-MODIFIED:20190918T095816 UID:pwen9kz29f SUMMARY:Test 1 END:VTODO +END:VCALENDAR`, + 'vcalendars/vcalendar-categories-empty': `BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//Nextcloud Tasks 0.11.3 +BEGIN:VTODO +CREATED:20181119T183919 +DTSTAMP:20190918T095816 +LAST-MODIFIED:20190918T095816 +UID:pwen9kz29f +SUMMARY:Test 1 +CATEGORIES: +END:VTODO END:VCALENDAR`, 'vcalendars/calendar1/vcalendar-vtodo1': `BEGIN:VCALENDAR VERSION:2.0 diff --git a/tests/javascript/unit/models/task.spec.js b/tests/javascript/unit/models/task.spec.js index 2aae56f43..7b6f8a4f0 100644 --- a/tests/javascript/unit/models/task.spec.js +++ b/tests/javascript/unit/models/task.spec.js @@ -216,6 +216,11 @@ describe('task', () => { expect(task.tags.length).toEqual(0) }) + it('Should show no tag if CATEGORIES parameter is empty.', () => { + const task = new Task(loadICS('vcalendars/vcalendar-categories-empty'), {}) + expect(task.tags.length).toEqual(0) + }) + it('Should remove status property when set to null', () => { const task = new Task(loadICS('vcalendars/vcalendar-default'), {}) task.status = null