feat: record split mode/percentage changes in history diff
This commit is contained in:
@@ -69,6 +69,10 @@ public class HistoryService {
|
||||
addIfChanged(changes, "personalUseAmount", before.getPersonalUseAmount(), after.getPersonalUseAmount());
|
||||
addIfChanged(changes, "otherPersonAmount", before.getOtherPersonAmount(), after.getOtherPersonAmount());
|
||||
addIfChanged(changes, "category", before.getCategory(), after.getCategory());
|
||||
addIfChanged(changes, "splitMode",
|
||||
before.getSplitMode() == null ? null : before.getSplitMode().name(),
|
||||
after.getSplitMode() == null ? null : after.getSplitMode().name());
|
||||
addIfChanged(changes, "splitPercentage", before.getSplitPercentage(), after.getSplitPercentage());
|
||||
addIfChanged(changes, "date", before.getDate(), after.getDate());
|
||||
addIfChanged(changes, "owner",
|
||||
before.getOwner() == null ? null : before.getOwner().getUsername(),
|
||||
|
||||
@@ -24,6 +24,7 @@ import de.zendric.app.xpensely_server.model.ExpenseHistoryEntry;
|
||||
import de.zendric.app.xpensely_server.model.ExpenseList;
|
||||
import de.zendric.app.xpensely_server.model.FieldChange;
|
||||
import de.zendric.app.xpensely_server.model.HistoryEntryType;
|
||||
import de.zendric.app.xpensely_server.model.SplitMode;
|
||||
import de.zendric.app.xpensely_server.repo.ExpenseHistoryRepository;
|
||||
import de.zendric.app.xpensely_server.services.HistoryService;
|
||||
|
||||
@@ -86,6 +87,22 @@ class HistoryServiceTest {
|
||||
assertThat(changes).containsExactly(new FieldChange("owner", "alice", "ben"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void diff_reportsSplitModeAndPercentageChanges() {
|
||||
Expense before = new Expense();
|
||||
before.setSplitMode(SplitMode.DETAILED);
|
||||
before.setSplitPercentage(null);
|
||||
|
||||
Expense after = new Expense();
|
||||
after.setSplitMode(SplitMode.PERCENTAGE);
|
||||
after.setSplitPercentage(70);
|
||||
|
||||
List<FieldChange> changes = service.diff(before, after);
|
||||
|
||||
assertThat(changes).contains(new FieldChange("splitMode", "DETAILED", "PERCENTAGE"));
|
||||
assertThat(changes).contains(new FieldChange("splitPercentage", null, "70"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void diff_nullToValue_isReported() {
|
||||
Expense before = expense("Taxi", 9.0, null, LocalDate.of(2026, 7, 1), user(1L, "alice"));
|
||||
|
||||
Reference in New Issue
Block a user