You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

33 lines
1.2 KiB

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);
})