From 10229b78ed0992b593b6ce8aab6db1a5a293c172 Mon Sep 17 00:00:00 2001 From: Jonas Sander <29028262+Jonas-Sander@users.noreply.github.com> Date: Mon, 22 Jan 2024 20:57:14 +0100 Subject: [PATCH] Do nothing when user tries to create "in 0 lessons" due date chip. (#1277) ## Summary by CodeRabbit - **Bug Fixes** - Ensured that the "in X lessons" chip is not added if the lesson count is zero or less. - **Tests** - Added tests to validate the correct behavior when no lessons are specified. --------- Co-authored-by: Nils Reichardt --- .../homework_dialog/homework_dialog.dart | 3 +++ app/test/homework/homework_dialog_test.dart | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/app/lib/homework/homework_dialog/homework_dialog.dart b/app/lib/homework/homework_dialog/homework_dialog.dart index cd7618968..f1e09253e 100644 --- a/app/lib/homework/homework_dialog/homework_dialog.dart +++ b/app/lib/homework/homework_dialog/homework_dialog.dart @@ -513,6 +513,9 @@ class _DueDateChipsController extends ChangeNotifier { } void addInXLessonsChip(InXLessonsDueDateSelection inXLessons) { + if (inXLessons.inXLessons <= 0) { + return; + } final alreadyExists = chips.firstWhereOrNull( (chip) => chip.dueDate == inXLessons, ) != diff --git a/app/test/homework/homework_dialog_test.dart b/app/test/homework/homework_dialog_test.dart index 6f4fea9fd..fb92ac7be 100644 --- a/app/test/homework/homework_dialog_test.dart +++ b/app/test/homework/homework_dialog_test.dart @@ -671,6 +671,22 @@ void main() { expect(controller.getSelectedLessonChips(), ['Nächste Stunde']); expect(nrOfChipsBefore, nrOfChipsAfter); }); + testWidgets( + 'regression test: when trying to create a custom "in 0 lessons" chip no chip will be added', + (tester) async { + final controller = createController(tester); + controller.addCourse(courseWith(id: 'foo_course')); + controller.addNextLessonDates('foo_course', [Date('2023-11-06')]); + await pumpAndSettleHomeworkDialog(tester, + showDueDateSelectionChips: true); + + final nrOfChipsBefore = controller.getLessonChips().length; + await controller.selectCourse('foo_course'); + await controller.createCustomChip(inXLessons: 0); + final nrOfChipsAfter = controller.getLessonChips().length; + + expect(nrOfChipsBefore, nrOfChipsAfter); + }); testWidgets( 'when creating a "in 5 lessons" custom chip it will be selected and the correct date will be selected', (tester) async {