diff --git a/packages/snjs/mocha/history.test.js b/packages/snjs/mocha/history.test.js index a4cb4fcbcfe..a684e2f39ee 100644 --- a/packages/snjs/mocha/history.test.js +++ b/packages/snjs/mocha/history.test.js @@ -4,7 +4,7 @@ import { createNoteParams } from './lib/Items.js' chai.use(chaiAsPromised) const expect = chai.expect -describe.skip('history manager', () => { +describe('history manager', () => { const largeCharacterChange = 25 let application, history, email, password @@ -265,23 +265,21 @@ describe.skip('history manager', () => { expect(itemHistoryOrError.isFailed()).to.equal(true) }) - it('create basic history entries 2', async function () { + it('should save initial revisions on server', async () => { const item = await Factory.createSyncedNote(application) + await Factory.sleep(Factory.ServerRevisionCreationDelay) - let itemHistoryOrError = await application.listRevisions.execute({ itemUuid: item.uuid }) - let itemHistory = itemHistoryOrError.getValue() + const itemHistoryOrError = await application.listRevisions.execute({ itemUuid: item.uuid }) + expect(itemHistoryOrError.isFailed()).to.equal(false) - /** Server history should save initial revision */ + const itemHistory = itemHistoryOrError.getValue() expect(itemHistory.length).to.equal(1) + }) - /** Sync within 5 seconds (ENV VAR dependend on self-hosted setup), should not create a new entry */ - await Factory.markDirtyAndSyncItem(application, item) - itemHistoryOrError = await application.listRevisions.execute({ itemUuid: item.uuid }) - itemHistory = itemHistoryOrError.getValue() - expect(itemHistory.length).to.equal(1) + it('should not create new revisions within the revision frequency window', async () => { + const item = await Factory.createSyncedNote(application) - /** Sync with different contents, should not create a new entry */ await application.changeAndSaveItem.execute( item, (mutator) => { @@ -291,13 +289,17 @@ describe.skip('history manager', () => { undefined, syncOptions, ) + await Factory.sleep(Factory.ServerRevisionCreationDelay) - itemHistoryOrError = await application.listRevisions.execute({ itemUuid: item.uuid }) - itemHistory = itemHistoryOrError.getValue() + + const itemHistoryOrError = await application.listRevisions.execute({ itemUuid: item.uuid }) + expect(itemHistoryOrError.isFailed()).to.equal(false) + + const itemHistory = itemHistoryOrError.getValue() expect(itemHistory.length).to.equal(1) }) - it('returns revisions from server', async function () { + it('should create new revisions outside the revision frequency window', async function () { let item = await Factory.createSyncedNote(application) await Factory.sleep(Factory.ServerRevisionFrequency) diff --git a/packages/snjs/mocha/lib/VaultsContext.js b/packages/snjs/mocha/lib/VaultsContext.js index d068a6da9ad..521e2d22192 100644 --- a/packages/snjs/mocha/lib/VaultsContext.js +++ b/packages/snjs/mocha/lib/VaultsContext.js @@ -35,7 +35,7 @@ export class VaultsContext extends AppContext { } async syncAndAwaitNotificationsProcessing() { - await this.sleep(0.25, 'Waiting for notifications to propagate') + await this.sleep(1, 'Waiting for notifications to propagate') const promise = this.resolveWhenAsyncFunctionCompletes(this.notifications, 'handleReceivedNotifications') @@ -43,7 +43,7 @@ export class VaultsContext extends AppContext { await this.awaitPromiseOrDoNothing( promise, - 0.25, + 1, 'Waiting for notifications timed out. Notifications might have been processed in previous sync.' ) diff --git a/packages/snjs/mocha/lib/factory.js b/packages/snjs/mocha/lib/factory.js index 5a1b59b9aa4..d8557a9cb49 100644 --- a/packages/snjs/mocha/lib/factory.js +++ b/packages/snjs/mocha/lib/factory.js @@ -287,8 +287,8 @@ export async function storagePayloadCount(application) { * The number of seconds between changes before a server creates a new revision. * Controlled via docker/syncing-server-js.env */ -export const ServerRevisionFrequency = 2.5 -export const ServerRevisionCreationDelay = 2.5 +export const ServerRevisionFrequency = 2.1 +export const ServerRevisionCreationDelay = 1.0 export function yesterday() { return new Date(new Date().setDate(new Date().getDate() - 1))