🐛 backend: adding editing session key (#525)

This commit is contained in:
Eric Doughty-Papassideris
2024-07-01 19:24:30 +02:00
committed by ericlinagora
parent 3de9829bf0
commit 16dbf8077b
9 changed files with 277 additions and 2 deletions
@@ -75,4 +75,43 @@ describe("the Drive's documents' editing session kind-of-lock", () => {
expect(driveFileRepository?.atomicCompareAndSet(temporaryDocument, "editing_session_key", "124", null)).
rejects.toThrow("no row matched PK");
});
it('rejects invalid editorApplicationId', async () => {
let result = await currentUser.beginEditingDocument(temporaryDocument.id, '');
expect(result.statusCode).toBe(400);
result = await currentUser.beginEditingDocument(temporaryDocument.id, 'e2e-testing');
expect(result.statusCode).toBe(400);
result = await currentUser.beginEditingDocument(temporaryDocument.id, 'e2e_testing_but_this_one_is_likely_too_long_the_max_is_128_with_added_guid_and_ts_added_after_and_counting_towards_128');
expect(result.statusCode).toBe(400);
});
it('can begin an editing session on a document only once', async () => {
const editingSessionKey = await currentUser.beginEditingDocumentExpectOk(temporaryDocument.id, 'e2e_testing');
const secondKey = await currentUser.beginEditingDocumentExpectOk(temporaryDocument.id, 'e2e_testing');
expect(editingSessionKey).toBe(secondKey);
const document = await currentUser.getDocumentOKCheck(temporaryDocument.id)
expect(document.item.editing_session_key).toBe(editingSessionKey);
});
it('cannot begin an editing session on a document without write permissions', async () => {
const secondUser = await UserApi.getInstance(platform!, true);
const editingResult = await secondUser.beginEditingDocument(temporaryDocument.id, 'e2e_testing');
expect(editingResult.statusCode).toBe(401);
});
it('can retreive the document from the editing session key', async () => {
const editingSessionKey = await currentUser.beginEditingDocumentExpectOk(temporaryDocument.id, 'e2e_testing');
let foundDocumentResult = await currentUser.getDocumentByEditingKey(editingSessionKey + "-made-wrong");
expect(foundDocumentResult.statusCode).toBe(404);
foundDocumentResult = await currentUser.getDocumentByEditingKey("");
expect(foundDocumentResult.statusCode).toBe(400);
foundDocumentResult = await currentUser.getDocumentByEditingKey(editingSessionKey);
expect(foundDocumentResult.statusCode).toBe(200);
expect(temporaryDocument.id).toBe(foundDocumentResult.json().id);
});
it('can end an editing session on a document only once with the right key', async () => {
const editingSessionKey = await currentUser.beginEditingDocumentExpectOk(temporaryDocument.id, 'e2e_testing');
});
});