Skip to content

Commit

Permalink
[Missions] Correction du champ createdAtUtc retourné lors d'un `upd…
Browse files Browse the repository at this point in the history
…ate` (#1167)

## Related Pull Requests & Issues

- Resolve #1147

----

- [ ] Tests E2E (Cypress)
  • Loading branch information
louptheron committed Feb 1, 2024
2 parents 3292be2 + c898307 commit c5903d9
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@ class CreateOrUpdateMission(
UpdateMissionEvent(savedMission.mission),
)

return savedMission.mission
/**
* TODO When doing an update, the `createdAtUtc` field is returned as null.
* To fix this, we return the stored `createdAtUtc`
*/
return savedMission.mission.copy(
createdAtUtc = savedMission.mission.createdAtUtc ?: storedMission?.createdAtUtc,
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@ class CreateOrUpdateMissionUTests {
MissionEntity(
id = 100,
endDateTimeUtc = ZonedDateTime.parse("2022-01-23T20:29:03Z"),
createdAtUtc = ZonedDateTime.parse("2022-01-23T20:29:03Z"),
updatedAtUtc = ZonedDateTime.now(),
facade = "La Face Ade",
hasMissionOrder = false,
isClosed = false,
Expand Down Expand Up @@ -154,4 +156,61 @@ class CreateOrUpdateMissionUTests {
)
assertThat(createdMission).isEqualTo(expectedCreatedMission)
}

@Test
fun `should return the stored createAtUtc field When an update returned null createAtUtc`() {
// Given
val missionToUpdate =
MissionEntity(
id = 100,
missionTypes = listOf(MissionTypeEnum.LAND),
facade = "Outre-Mer",
geom = null,
startDateTimeUtc = ZonedDateTime.parse("2022-01-15T04:50:09Z"),
endDateTimeUtc = ZonedDateTime.parse("2022-01-23T20:29:03Z"),
isClosed = false,
missionSource = MissionSourceEnum.MONITORENV,
hasMissionOrder = false,
isDeleted = false,
isUnderJdp = false,
isGeometryComputedFromControls = false,
)

val returnedSavedMission =
MissionEntity(
id = 100,
endDateTimeUtc = ZonedDateTime.parse("2022-01-23T20:29:03Z"),
createdAtUtc = null,
updatedAtUtc = ZonedDateTime.now(),
facade = "La Face Ade",
hasMissionOrder = false,
isClosed = false,
isDeleted = false,
isGeometryComputedFromControls = false,
isUnderJdp = false,
missionSource = MissionSourceEnum.MONITORENV,
missionTypes = listOf(MissionTypeEnum.LAND),
startDateTimeUtc = ZonedDateTime.parse("2022-01-15T04:50:09Z"),
)

given(facadeAreasRepository.findFacadeFromGeometry(anyOrNull())).willReturn("La Face Ade")
given(missionRepository.findById(100))
.willReturn(missionToUpdate.copy(createdAtUtc = ZonedDateTime.parse("2022-01-23T20:29:03Z")))
given(missionRepository.save(anyOrNull()))
.willReturn(MissionDTO(mission = returnedSavedMission))

// When
val createdMission =
CreateOrUpdateMission(
missionRepository = missionRepository,
facadeRepository = facadeAreasRepository,
eventPublisher = applicationEventPublisher,
)
.execute(
missionToUpdate,
)

// Then
assertThat(createdMission.createdAtUtc).isEqualTo(ZonedDateTime.parse("2022-01-23T20:29:03Z"))
}
}

0 comments on commit c5903d9

Please sign in to comment.