From 25fa8267f1c3532a273b1b25681604b903064e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Raimund=20Schl=C3=BC=C3=9Fler?= Date: Sat, 7 Oct 2023 14:05:19 +0200 Subject: [PATCH] fix: don't set percent to 0 for NEEDS-ACTION 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 | 4 +++- tests/javascript/unit/models/task.spec.js | 20 +++++++++++++++----- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/models/task.js b/src/models/task.js index d4de8e5ee..f85ef8f64 100644 --- a/src/models/task.js +++ b/src/models/task.js @@ -346,8 +346,10 @@ export default class Task { this.setComplete(1) } } else if (status === 'NEEDS-ACTION' || status === null) { - this.setComplete(0) this.setCompleted(false) + if (this.complete === 100) { + this.setComplete(99) + } } } diff --git a/tests/javascript/unit/models/task.spec.js b/tests/javascript/unit/models/task.spec.js index c1220f3e0..acc667bc5 100644 --- a/tests/javascript/unit/models/task.spec.js +++ b/tests/javascript/unit/models/task.spec.js @@ -39,14 +39,24 @@ describe('task', () => { expect(task.completedDate).not.toEqual(null) }) - it('Should set complete to 0 when status is "NEEDS-ACTION".', () => { + it('Should set complete to <100 when status is "NEEDS-ACTION".', () => { const task = new Task(loadICS('vcalendars/vcalendar-default'), {}) task.complete = 100 task.status = 'NEEDS-ACTION' - expect(task.complete).toEqual(0) - // Check that property gets removed instead of being set to zero + expect(task.complete).toBeLessThan(100) const complete = task.vtodo.getFirstPropertyValue('percent-complete') - expect(complete).toEqual(null) + expect(complete).toEqual(99) + expect(task.completed).toEqual(false) + expect(task.completedDate).toEqual(null) + }) + + it('Should not adjust complete when not completed and status is "NEEDS-ACTION".', () => { + const task = new Task(loadICS('vcalendars/vcalendar-default'), {}) + task.complete = 90 + task.status = 'NEEDS-ACTION' + expect(task.complete).toBeLessThan(100) + const complete = task.vtodo.getFirstPropertyValue('percent-complete') + expect(complete).toEqual(90) expect(task.completed).toEqual(false) expect(task.completedDate).toEqual(null) }) @@ -213,7 +223,7 @@ describe('task', () => { expect(complete).toEqual(null) }) - it('Indicates cloesed when completed or cancelled', () => { + it('Indicates closed when completed or cancelled', () => { const task = new Task(loadICS('vcalendars/vcalendar-default'), {}) task.status = 'CANCELLED' expect(task.closed).toEqual(true)