chore: refactor history e2e tests (#2468)

This commit is contained in:
Karol Sójko
2023-08-29 10:59:23 +02:00
committed by GitHub
parent f98877cd93
commit 0dd3124acf
3 changed files with 20 additions and 18 deletions

View File

@@ -4,7 +4,7 @@ import { createNoteParams } from './lib/Items.js'
chai.use(chaiAsPromised) chai.use(chaiAsPromised)
const expect = chai.expect const expect = chai.expect
describe.skip('history manager', () => { describe('history manager', () => {
const largeCharacterChange = 25 const largeCharacterChange = 25
let application, history, email, password let application, history, email, password
@@ -265,23 +265,21 @@ describe.skip('history manager', () => {
expect(itemHistoryOrError.isFailed()).to.equal(true) 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) const item = await Factory.createSyncedNote(application)
await Factory.sleep(Factory.ServerRevisionCreationDelay) await Factory.sleep(Factory.ServerRevisionCreationDelay)
let itemHistoryOrError = await application.listRevisions.execute({ itemUuid: item.uuid }) const itemHistoryOrError = await application.listRevisions.execute({ itemUuid: item.uuid })
let itemHistory = itemHistoryOrError.getValue() expect(itemHistoryOrError.isFailed()).to.equal(false)
/** Server history should save initial revision */ const itemHistory = itemHistoryOrError.getValue()
expect(itemHistory.length).to.equal(1) expect(itemHistory.length).to.equal(1)
})
/** Sync within 5 seconds (ENV VAR dependend on self-hosted setup), should not create a new entry */ it('should not create new revisions within the revision frequency window', async () => {
await Factory.markDirtyAndSyncItem(application, item) const item = await Factory.createSyncedNote(application)
itemHistoryOrError = await application.listRevisions.execute({ itemUuid: item.uuid })
itemHistory = itemHistoryOrError.getValue()
expect(itemHistory.length).to.equal(1)
/** Sync with different contents, should not create a new entry */
await application.changeAndSaveItem.execute( await application.changeAndSaveItem.execute(
item, item,
(mutator) => { (mutator) => {
@@ -291,13 +289,17 @@ describe.skip('history manager', () => {
undefined, undefined,
syncOptions, syncOptions,
) )
await Factory.sleep(Factory.ServerRevisionCreationDelay) 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) 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) let item = await Factory.createSyncedNote(application)
await Factory.sleep(Factory.ServerRevisionFrequency) await Factory.sleep(Factory.ServerRevisionFrequency)

View File

@@ -35,7 +35,7 @@ export class VaultsContext extends AppContext {
} }
async syncAndAwaitNotificationsProcessing() { 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') const promise = this.resolveWhenAsyncFunctionCompletes(this.notifications, 'handleReceivedNotifications')
@@ -43,7 +43,7 @@ export class VaultsContext extends AppContext {
await this.awaitPromiseOrDoNothing( await this.awaitPromiseOrDoNothing(
promise, promise,
0.25, 1,
'Waiting for notifications timed out. Notifications might have been processed in previous sync.' 'Waiting for notifications timed out. Notifications might have been processed in previous sync.'
) )

View File

@@ -287,8 +287,8 @@ export async function storagePayloadCount(application) {
* The number of seconds between changes before a server creates a new revision. * The number of seconds between changes before a server creates a new revision.
* Controlled via docker/syncing-server-js.env * Controlled via docker/syncing-server-js.env
*/ */
export const ServerRevisionFrequency = 2.5 export const ServerRevisionFrequency = 2.1
export const ServerRevisionCreationDelay = 2.5 export const ServerRevisionCreationDelay = 1.0
export function yesterday() { export function yesterday() {
return new Date(new Date().setDate(new Date().getDate() - 1)) return new Date(new Date().setDate(new Date().getDate() - 1))