1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-12-17 23:27:48 +02:00
Files
joplin/packages/lib/services/MigrationService.test.ts

50 lines
1.7 KiB
TypeScript
Raw Normal View History

2021-06-25 14:51:36 +01:00
import MasterKey from '../models/MasterKey';
import Setting from '../models/Setting';
import { encryptionService, setupDatabaseAndSynchronizer, switchClient } from '../testing/test-utils';
import MigrationService from './MigrationService';
2021-06-26 18:18:10 +01:00
import { setActiveMasterKeyId, setEncryptionEnabled, SyncTargetInfo } from './synchronizer/syncTargetInfoUtils';
2021-06-25 14:51:36 +01:00
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'));
2021-06-26 18:18:10 +01:00
setEncryptionEnabled(true);
setActiveMasterKeyId(mk2.id);
2021-06-25 14:51:36 +01:00
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);
});
});