diff --git a/src/main/java/com/amcamp/domain/task/domain/Task.java b/src/main/java/com/amcamp/domain/task/domain/Task.java index 157d050a..aa010023 100644 --- a/src/main/java/com/amcamp/domain/task/domain/Task.java +++ b/src/main/java/com/amcamp/domain/task/domain/Task.java @@ -89,9 +89,12 @@ public void updateTaskBasicInfo(TaskBasicInfoUpdateRequest request) { } public void updateTaskStatus() { - if (this.taskStatus != TaskStatus.COMPLETED) this.taskStatus = TaskStatus.COMPLETED; - else { + if (this.taskStatus != TaskStatus.COMPLETED) { + this.taskStatus = TaskStatus.COMPLETED; + this.dueDt = LocalDate.now(); + } else { this.taskStatus = TaskStatus.ON_GOING; + this.dueDt = null; } } diff --git a/src/test/java/com/amcamp/domain/task/TaskServiceTest.java b/src/test/java/com/amcamp/domain/task/TaskServiceTest.java index cb9a0593..8821b0f8 100644 --- a/src/test/java/com/amcamp/domain/task/TaskServiceTest.java +++ b/src/test/java/com/amcamp/domain/task/TaskServiceTest.java @@ -271,6 +271,7 @@ class 태스크_수정_시 { } @Test + @Transactional void 정상적으로_완료된_태스크를_미완료처리한다() { // given TaskCreateRequest taskRequest = @@ -283,12 +284,14 @@ class 태스크_수정_시 { .orElseThrow(() -> new CommonException(TaskErrorCode.TASK_NOT_FOUND)); task.assignTask(participant); - task.updateTaskStatus(); - // when + // when & then task.updateTaskStatus(); + assertThat(task.getDueDt()).isEqualTo(LocalDate.now()); - // then + // when & then + task.updateTaskStatus(); + assertThat(task.getDueDt()).isNull(); assertThat(task.getTaskStatus()).isEqualTo(TaskStatus.ON_GOING); }