⏱️ Reduce e2e time (#729)

⏱️ Reduce e2e time (#729)
This commit is contained in:
Montassar Ghanmy
2024-11-13 09:26:29 +01:00
committed by GitHub
parent 328bb7f161
commit 9dc23fdb52
4 changed files with 51 additions and 125 deletions
+1 -1
View File
@@ -29,7 +29,7 @@
"test:unit:watch": "npm run test:unit -- --watchAll --verbose false | pino-pretty",
"test:merge:json": "npx istanbul report --dir coverage/merged --include 'coverage/**/coverage-final.json' json-summary",
"test:merge:text": "npx istanbul report --dir coverage/merged --include 'coverage/**/coverage-final.json' text > coverage/merged/coverage-report.txt",
"test:all": "jest test --forceExit --coverage --detectOpenHandles --testTimeout=600000 --verbose false --runInBand",
"test:all": "jest test --forceExit --coverage --detectOpenHandles --testTimeout=600000 --verbose false",
"kill": "kill $(lsof -t -i:3000) | exit 0"
},
"jest": {
@@ -6,6 +6,9 @@ import UserApi from "../common/user-api";
describe("The Documents Browser Window and API", () => {
let platform: TestPlatform;
let currentUser: UserApi;
let sharedWIthMeFolder: string;
let myDriveId: string;
let files: any;
beforeEach(async () => {
platform = await init({
@@ -25,75 +28,63 @@ describe("The Documents Browser Window and API", () => {
],
});
currentUser = await UserApi.getInstance(platform);
sharedWIthMeFolder = "shared_with_me";
myDriveId = "user_" + currentUser.user.id;
files = await currentUser.uploadAllFilesOneByOne(myDriveId);
expect(files).toBeDefined();
expect(files.entries()).toBeDefined();
expect(Array.from(files.entries())).toHaveLength(UserApi.ALL_FILES.length);
});
afterAll(async () => {
await platform?.tearDown();
// @ts-ignore
platform = null;
});
describe("My Drive", () => {
it("Should successfully upload filed to the 'Shared Drive' and browse them", async () => {
const myDriveId = "user_" + currentUser.user.id;
const result = await currentUser.uploadAllFilesOneByOne(myDriveId);
expect(result).toBeDefined();
expect(result.entries()).toBeDefined();
expect(Array.from(result.entries())).toHaveLength(UserApi.ALL_FILES.length);
it("Should successfully upload filed to the 'My Drive' and browse them", async () => {
const docs = await currentUser.browseDocuments(myDriveId, {});
expect(docs).toBeDefined();
expect(docs.children).toBeDefined();
expect(docs.children.length).toEqual(UserApi.ALL_FILES.length)
expect(docs.children.length).toEqual(UserApi.ALL_FILES.length);
});
it("Should not be visible for other users", async () => {
const myDriveId = "user_" + currentUser.user.id;
const anotherUser = await UserApi.getInstance(platform, true, {companyRole: "admin"});
await currentUser.uploadAllFilesOneByOne(myDriveId);
await new Promise(r => setTimeout(r, 5000));
const anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
const docs = await currentUser.browseDocuments(myDriveId, {});
expect(docs).toBeDefined();
expect(docs.children).toBeDefined();
expect(docs.children.length).toEqual(UserApi.ALL_FILES.length)
expect(docs.children.length).toEqual(UserApi.ALL_FILES.length);
const anotherUserDocs = await anotherUser.searchDocument({});
expect(anotherUserDocs).toBeDefined();
expect(anotherUserDocs.entities).toBeDefined();
expect(anotherUserDocs.entities.length).toEqual(0);
});
});
describe("Shared Drive", () => {
it("Should successfully upload filed to the 'Shared Drive' and browse them", async () => {
const result = await currentUser.uploadAllFilesOneByOne("root");
expect(result).toBeDefined();
expect(result.entries()).toBeDefined();
expect(Array.from(result.entries())).toHaveLength(UserApi.ALL_FILES.length);
const docs = await currentUser.browseDocuments("root", {});
expect(docs).toBeDefined();
expect(docs.children).toBeDefined();
expect(docs.children.length).toEqual(UserApi.ALL_FILES.length);
});
});
describe("Shared With Me", () => {
it("Shouldn't contain user personal files", async () => {
const sharedWIthMeFolder = "shared_with_me";
await currentUser.uploadAllFilesOneByOne("user_" + currentUser.user.id);
await new Promise(r => setTimeout(r, 5000));
let docs = await currentUser.browseDocuments(sharedWIthMeFolder, {});
expect(docs).toBeDefined();
expect(docs.children?.length).toEqual(0)
expect(docs.children?.length).toEqual(0);
await currentUser.uploadAllFilesOneByOne("root");
docs = await currentUser.browseDocuments("shared_with_me", {});
@@ -103,11 +94,7 @@ describe("The Documents Browser Window and API", () => {
});
it("Should contain files that were shared with the user", async () => {
const sharedWIthMeFolder = "shared_with_me";
const oneUser = await UserApi.getInstance(platform, true, {companyRole: "admin"});
const anotherUser = await UserApi.getInstance(platform, true, {companyRole: "admin"});
let files = await oneUser.uploadAllFilesOneByOne();
await new Promise(r => setTimeout(r, 5000));
const anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
//then:: files are not searchable for user without permissions
expect((await anotherUser.browseDocuments("shared_with_me", {})).children).toHaveLength(0);
@@ -119,48 +106,49 @@ describe("The Documents Browser Window and API", () => {
level: "read",
grantor: null,
});
await oneUser.updateDocument(files[0].id, files[0]);
await currentUser.updateDocument(files[0].id, files[0]);
await new Promise(r => setTimeout(r, 3000));
//then file become searchable
expect((await anotherUser.browseDocuments("shared_with_me", {pageSize: 1})).children).toHaveLength(1);
expect(
(await anotherUser.browseDocuments("shared_with_me", { pageSize: 1 })).children,
).toHaveLength(1);
});
it("Should return ALL the files that was share by user at one", async () => {
const oneUser = await UserApi.getInstance(platform, true, {companyRole: "admin"});
const anotherUser = await UserApi.getInstance(platform, true, {companyRole: "admin"});
let files = await oneUser.uploadAllFilesOneByOne();
await anotherUser.uploadAllFilesOneByOne();
await new Promise(r => setTimeout(r, 5000));
const anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
//give permissions to the file
files[2].access_info.entities.push({
type: "user",
id: anotherUser.user.id,
level: "read",
// @ts-ignore
grantor: null,
});
await oneUser.updateDocument(files[2].id, files[2]);
await currentUser.updateDocument(files[2].id, files[2]);
await new Promise(r => setTimeout(r, 3000));
//then file become searchable
expect((await anotherUser.browseDocuments("shared_with_me", {pagination: {limitStr: 100}})).children).toHaveLength(1);
expect(
(await anotherUser.browseDocuments("shared_with_me", { pagination: { limitStr: 100 } }))
.children,
).toHaveLength(1);
});
it("User should be able to delete file that was shared with him with 'manage' permissions", async () => {
const oneUser = await UserApi.getInstance(platform, true, {companyRole: "admin"});
const anotherUser = await UserApi.getInstance(platform, true, {companyRole: "admin"});
const oneUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
const anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
let files = await oneUser.uploadAllFilesOneByOne("user_" + oneUser.user.id);
await new Promise(r => setTimeout(r, 5000));
await new Promise(r => setTimeout(r, 3000));
let toDeleteDoc = files[2];
toDeleteDoc.access_info.entities.push({
type: "user",
id: anotherUser.user.id,
level: "manage",
// @ts-ignore
grantor: null,
});
await oneUser.updateDocument(toDeleteDoc.id, toDeleteDoc);
@@ -179,12 +167,13 @@ describe("The Documents Browser Window and API", () => {
await oneUser.uploadAllFilesOneByOne(level2Dir.id);
await oneUser.uploadAllFilesOneByOne(level2Dir2.id);
await oneUser.uploadAllFilesOneByOne(dir.id);
await new Promise(r => setTimeout(r, 5000));
await new Promise(r => setTimeout(r, 3000));
dir.access_info.entities.push({
type: "user",
id: anotherUser.user.id,
level: "manage",
// @ts-ignore
grantor: null,
});
await oneUser.updateDocument(dir.id, dir);
@@ -203,6 +192,7 @@ describe("The Documents Browser Window and API", () => {
type: "user",
id: anotherUser.user.id,
level: "manage",
// @ts-ignore
grantor: null,
});
await oneUser.updateDocument(dir.id, dir);
@@ -220,7 +210,5 @@ describe("The Documents Browser Window and API", () => {
sharedDocs = await anotherUser.browseDocuments("shared_with_me");
expect(sharedDocs.children.length).toBe(0);
});
});
});
@@ -64,7 +64,7 @@ describe("The Drive feature", () => {
const files = await oneUser.uploadAllFilesOneByOne();
// Wait for file processing
await new Promise(r => setTimeout(r, 5000));
await new Promise(r => setTimeout(r, 3000));
// Share the file with recipient user
await anotherUser.shareWithPermissions(files[1], anotherUser.user.id, "read");
@@ -3,8 +3,12 @@ import { init, TestPlatform } from "../setup";
import UserApi from "../common/user-api";
describe("The Documents Browser Window and API", () => {
let sharedWIthMeFolder: string;
let platform: TestPlatform;
let currentUser: UserApi;
let anotherUser: UserApi;
let myDriveId: string;
let files: any;
beforeAll(async () => {
platform = await init({
@@ -23,19 +27,24 @@ describe("The Documents Browser Window and API", () => {
"documents",
],
});
currentUser = await UserApi.getInstance(platform);
currentUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
myDriveId = "user_" + currentUser.user.id;
sharedWIthMeFolder = "shared_with_me";
files = await currentUser.uploadAllFilesOneByOne(myDriveId);
for (const file of files) {
await currentUser.shareWithPermissions(file, anotherUser.user.id, "read");
}
});
afterAll(async () => {
await platform?.tearDown();
// @ts-ignore
platform = null;
});
describe("Pagination and Sorting", () => {
it("Should paginate documents correctly", async () => {
const myDriveId = "user_" + currentUser.user.id;
await currentUser.uploadAllFilesOneByOne(myDriveId);
let page_token = "1";
const limitStr = "2";
let docs = await currentUser.browseDocuments(myDriveId, {
@@ -60,9 +69,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort documents by name in ascending order", async () => {
const myDriveId = "user_" + currentUser.user.id;
await currentUser.uploadAllFilesOneByOne(myDriveId);
const sortBy = "name";
const sortOrder = "asc";
const docs = await currentUser.browseDocuments(myDriveId, {
@@ -75,9 +81,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort documents by name in descending order", async () => {
const myDriveId = "user_" + currentUser.user.id;
await currentUser.uploadAllFilesOneByOne(myDriveId);
const sortBy = "name";
const sortOrder = "desc";
const docs = await currentUser.browseDocuments(myDriveId, {
@@ -90,9 +93,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort documents by date in ascending order", async () => {
const myDriveId = "user_" + currentUser.user.id;
await currentUser.uploadAllFilesOneByOne(myDriveId);
const sortBy = "date";
const sortOrder = "asc";
const docs = await currentUser.browseDocuments(myDriveId, {
@@ -107,9 +107,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort documents by date in descending order", async () => {
const myDriveId = "user_" + currentUser.user.id;
await currentUser.uploadAllFilesOneByOne(myDriveId);
const sortBy = "date";
const sortOrder = "desc";
const docs = await currentUser.browseDocuments(myDriveId, {
@@ -124,9 +121,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort documents by size in ascending order", async () => {
const myDriveId = "user_" + currentUser.user.id;
await currentUser.uploadAllFilesOneByOne(myDriveId);
const sortBy = "size";
const sortOrder = "asc";
const docs = await currentUser.browseDocuments(myDriveId, {
@@ -139,9 +133,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort documents by size in descending order", async () => {
const myDriveId = "user_" + currentUser.user.id;
await currentUser.uploadAllFilesOneByOne(myDriveId);
const sortBy = "size";
const sortOrder = "desc";
const docs = await currentUser.browseDocuments(myDriveId, {
@@ -154,17 +145,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should paginate shared with me ", async () => {
const sharedWIthMeFolder = "shared_with_me";
const oneUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
const anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
let files = await oneUser.uploadAllFilesOneByOne();
for (const file of files) {
await oneUser.shareWithPermissions(file, anotherUser.user.id, "read");
}
// wait for files to be indexed
await new Promise(r => setTimeout(r, 5000));
let page_token: any = "1";
const limitStr = "2";
let docs = await anotherUser.browseDocuments(sharedWIthMeFolder, {
@@ -189,13 +169,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort shared with me by name in ascending order", async () => {
const sharedWIthMeFolder = "shared_with_me";
const oneUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
const anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
let files = await oneUser.uploadAllFilesOneByOne();
for (const file of files) {
await oneUser.shareWithPermissions(file, anotherUser.user.id, "read");
}
const sortBy = "name";
const sortOrder = "asc";
const docs = await anotherUser.browseDocuments(sharedWIthMeFolder, {
@@ -208,13 +181,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort shared with me by name in descending order", async () => {
const sharedWIthMeFolder = "shared_with_me";
const oneUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
const anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
let files = await oneUser.uploadAllFilesOneByOne();
for (const file of files) {
await oneUser.shareWithPermissions(file, anotherUser.user.id, "read");
}
const sortBy = "name";
const sortOrder = "desc";
const docs = await anotherUser.browseDocuments(sharedWIthMeFolder, {
@@ -227,13 +193,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort shared with me by size in ascending order", async () => {
const sharedWIthMeFolder = "shared_with_me";
const oneUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
const anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
let files = await oneUser.uploadAllFilesOneByOne();
for (const file of files) {
await oneUser.shareWithPermissions(file, anotherUser.user.id, "read");
}
const sortBy = "size";
const sortOrder = "asc";
const docs = await anotherUser.browseDocuments(sharedWIthMeFolder, {
@@ -246,13 +205,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort shared with me by size in descending order", async () => {
const sharedWIthMeFolder = "shared_with_me";
const oneUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
const anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
let files = await oneUser.uploadAllFilesOneByOne();
for (const file of files) {
await oneUser.shareWithPermissions(file, anotherUser.user.id, "read");
}
const sortBy = "size";
const sortOrder = "desc";
const docs = await anotherUser.browseDocuments(sharedWIthMeFolder, {
@@ -265,13 +217,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort shared with me by date in ascending order", async () => {
const sharedWIthMeFolder = "shared_with_me";
const oneUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
const anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
let files = await oneUser.uploadAllFilesOneByOne();
for (const file of files) {
await oneUser.shareWithPermissions(file, anotherUser.user.id, "read");
}
const sortBy = "date";
const sortOrder = "asc";
const docs = await anotherUser.browseDocuments(sharedWIthMeFolder, {
@@ -286,13 +231,6 @@ describe("The Documents Browser Window and API", () => {
});
it("Should sort shared with me by date in descending order", async () => {
const sharedWIthMeFolder = "shared_with_me";
const oneUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
const anotherUser = await UserApi.getInstance(platform, true, { companyRole: "admin" });
let files = await oneUser.uploadAllFilesOneByOne();
for (const file of files) {
await oneUser.shareWithPermissions(file, anotherUser.user.id, "read");
}
const sortBy = "date";
const sortOrder = "desc";
const docs = await anotherUser.browseDocuments(sharedWIthMeFolder, {