Skip to content

Commit

Permalink
Don't update trunk version when updating locally
Browse files Browse the repository at this point in the history
  • Loading branch information
seadowg committed Jul 22, 2024
1 parent ef0416b commit 70c6280
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,15 @@ object LocalEntityUseCases {
formEntities?.entities?.forEach { formEntity ->
val id = formEntity.id
if (id != null && entitiesRepository.getLists().contains(formEntity.dataset)) {
if (formEntity.action != EntityAction.UPDATE || entitiesRepository.getEntities(
formEntity.dataset
).any { it.id == id }
) {
val existing = entitiesRepository.getById(formEntity.dataset, formEntity.id)
if (formEntity.action != EntityAction.UPDATE || existing != null) {
val entity = Entity.New(
formEntity.dataset,
id,
formEntity.label,
formEntity.version,
formEntity.properties
formEntity.properties,
trunkVersion = existing?.trunkVersion
)

entitiesRepository.save(entity)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,31 @@ class LocalEntityUseCasesTest {

private val entitiesRepository = InMemEntitiesRepository()

@Test
fun `updateLocalEntitiesFromForm does not override trunk version`() {
entitiesRepository.save(
Entity.New(
"things",
"id",
"label",
version = 1,
trunkVersion = 1
)
)

val formEntity =
FormEntity(EntityAction.UPDATE, "things", "id", "label", 2, emptyList())
val formEntities =
EntitiesExtra(
listOf(formEntity)
)

LocalEntityUseCases.updateLocalEntitiesFromForm(formEntities, entitiesRepository)
val entities = entitiesRepository.getEntities("things")
assertThat(entities.size, equalTo(1))
assertThat(entities[0].trunkVersion, equalTo(1))
}

@Test
fun `updateLocalEntitiesFromForm does not save updated entity that doesn't already exist`() {
val formEntity =
Expand Down

0 comments on commit 70c6280

Please sign in to comment.