import { SystemEntity } from "../src/realm/entities/System"; import { migratev0 } from "../src/realm/migrations/MigrateV0"; import { migratev1 } from "../src/realm/migrations/MigrateV1"; import MockRealm from "../__mock__/mockRealmObject"; test('Realm migrates to V0', () => { let oldRealm = new MockRealm({schemaVersion: 0}); let newRealm = new MockRealm({schemaVersion: 0}); migratev0(oldRealm, newRealm); expect(newRealm.schemaVersion).toBe(0); }) test('Realm migrates to V1', () => { let oldRealm = new MockRealm({schemaVersion: 0}); let newRealm = new MockRealm({schemaVersion: 0}); migratev0(oldRealm, newRealm); oldRealm = newRealm; newRealm = new MockRealm({schemaVersion: 1}); migratev1(oldRealm, newRealm); expect(newRealm[SystemEntity.name][0].key).toBe('username'); expect(newRealm[SystemEntity.name][0].value).toBe('changeme'); }) test('Realm halts V1 migration when schema is V2+', () => { let oldRealm = new MockRealm({schemaVersion: 2}); newRealm = new MockRealm({schemaVersion: 1}); migratev1(oldRealm, newRealm); oldRealm.create(SystemEntity.name, {key: 'key1', value: 'value'}) expect(oldRealm[SystemEntity.name].length).toBe(1); })