fix: make initDatabase idempotent to prevent empty history after sync

This commit is contained in:
Eddy de Vink 2026-06-27 23:27:24 +02:00
commit 3d1263b713
2 changed files with 26 additions and 10 deletions

View file

@ -1,4 +1,3 @@
import { initDatabase, insertMeasurement, getAllMeasurements, getLatestMeasurement, updateMeasurement } from '../src/database/db'
import { Measurement } from '../src/types'
import * as SQLite from 'expo-sqlite'
@ -24,14 +23,30 @@ const mockMeasurement: Measurement = {
describe('database', () => {
let db: any
let initDatabase: any
let insertMeasurement: any
let getAllMeasurements: any
let getLatestMeasurement: any
let updateMeasurement: any
beforeEach(() => {
beforeEach(async () => {
jest.resetModules()
jest.doMock('expo-sqlite', () => ({
openDatabaseAsync: jest.fn(),
}))
db = {
execAsync: jest.fn(),
runAsync: jest.fn(),
getAllAsync: jest.fn(),
}
;(SQLite.openDatabaseAsync as jest.Mock).mockResolvedValue(db)
const sqlite = require('expo-sqlite')
;(sqlite.openDatabaseAsync as jest.Mock).mockResolvedValue(db)
const mod = require('../src/database/db')
initDatabase = mod.initDatabase
insertMeasurement = mod.insertMeasurement
getAllMeasurements = mod.getAllMeasurements
getLatestMeasurement = mod.getLatestMeasurement
updateMeasurement = mod.updateMeasurement
})
it('initDatabase creates the measurements table', async () => {