fix: sync refactor — fix 6 bugs + cache refresh na sync
- setDeletedAt update nu ook updatedAt (bug 2) - getAllMeasurements filtert deletedAt IS NULL, nieuwe getAllMeasurementsForSync voor sync - mergeMeasurements detecteert server deleted:true → deletedAt (bug 1) - syncAll: pull-push split met remoteUpdatedMap, geen double-push (bug 3) - hard delete alleen na API-succes (bug 4) - DashboardScreen: refreshCache() na syncAll zodat UI niet op Laden blijft hangen - deleteMeasurement() dead code verwijderd (bug 5) - tests: 3 nieuwe testcases voor deleted → deletedAt mapping, 15/15 pass
This commit is contained in:
parent
55572a1455
commit
df05fb75dd
13 changed files with 405 additions and 62 deletions
|
|
@ -53,4 +53,24 @@ describe('mergeMeasurements', () => {
|
|||
const r = mergeMeasurements([local], [remote])
|
||||
expect(r[0].deletedAt).toBeUndefined()
|
||||
})
|
||||
|
||||
it('server deleted flag mapped to deletedAt when remote wins', () => {
|
||||
const local = make({ updatedAt: '2024-06-01T08:00:00.000Z' })
|
||||
const remote: any = { ...make({ updatedAt: '2024-06-03T08:00:00.000Z' }), deleted: true }
|
||||
const r = mergeMeasurements([local], [remote])
|
||||
expect(r[0].deletedAt).toBe('2024-06-03T08:00:00.000Z')
|
||||
})
|
||||
|
||||
it('server deleted flag ignored when local wins', () => {
|
||||
const local = make({ updatedAt: '2024-06-05T08:00:00.000Z' })
|
||||
const remote: any = { ...make({ updatedAt: '2024-06-03T08:00:00.000Z' }), deleted: true }
|
||||
const r = mergeMeasurements([local], [remote])
|
||||
expect(r[0].deletedAt).toBeUndefined()
|
||||
})
|
||||
|
||||
it('server deleted flag works with no local record', () => {
|
||||
const remote: any = { ...make({ id: 'r1', updatedAt: '2024-06-03T08:00:00.000Z' }), deleted: true }
|
||||
const r = mergeMeasurements([], [remote])
|
||||
expect(r[0].deletedAt).toBe('2024-06-03T08:00:00.000Z')
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Reference in a new issue