1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-12-23 23:33:01 +02:00
Files
joplin/packages/lib/services/MigrationService.test.ts
Laurent Cozic 05e4b32d9b tests
2021-06-26 18:18:10 +01:00

50 lines
1.7 KiB
TypeScript

import MasterKey from '../models/MasterKey';
import Setting from '../models/Setting';
import { encryptionService, setupDatabaseAndSynchronizer, switchClient } from '../testing/test-utils';
import MigrationService from './MigrationService';
import { setActiveMasterKeyId, setEncryptionEnabled, SyncTargetInfo } from './synchronizer/syncTargetInfoUtils';
function migrationService() {
return new MigrationService();
}
describe('MigrationService', function() {
beforeEach(async (done) => {
await setupDatabaseAndSynchronizer(1);
await switchClient(1);
done();
});
it('should migrate to v40 - with keys', async () => {
const startTime = Date.now();
const mk1 = await MasterKey.save(await encryptionService().generateMasterKey('1'));
const mk2 = await MasterKey.save(await encryptionService().generateMasterKey('2'));
setEncryptionEnabled(true);
setActiveMasterKeyId(mk2.id);
await migrationService().runScript(40);
const info: SyncTargetInfo = JSON.parse(Setting.value('sync.info'));
expect(info.e2ee).toBe(true);
expect(info.activeMasterKeyId).toBe(mk2.id);
expect(info.version).toBe(2);
expect(Object.keys(info.masterKeys).sort()).toEqual([mk1.id, mk2.id].sort());
expect(info.updatedTime).toBeGreaterThanOrEqual(startTime);
});
it('should migrate to v40 - empty', async () => {
const startTime = Date.now();
await migrationService().runScript(40);
const info: SyncTargetInfo = JSON.parse(Setting.value('sync.info'));
expect(info.e2ee).toBe(false);
expect(info.activeMasterKeyId).toBe('');
expect(info.version).toBe(2);
expect(Object.keys(info.masterKeys)).toEqual([]);
expect(info.updatedTime).toBeGreaterThanOrEqual(startTime);
});
});