Skip to content

Commit

Permalink
⏱️ Reduce e2e time (#729)
Browse files Browse the repository at this point in the history
⏱️ Reduce e2e time (#729)
  • Loading branch information
MontaGhanmy authored Nov 13, 2024
1 parent 328bb7f commit 9dc23fd
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 125 deletions.
2 changes: 1 addition & 1 deletion tdrive/backend/node/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
Expand Down
84 changes: 36 additions & 48 deletions tdrive/backend/node/test/e2e/documents/documents-browser.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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({
Expand All @@ -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", {});
Expand All @@ -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);
Expand All @@ -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);
Expand All @@ -172,19 +160,20 @@ describe("The Documents Browser Window and API", () => {
it("User should be able to delete folder with the files that was shared with him with 'manage' permissions", async () => {
const oneUser = await UserApi.getInstance(platform, true);
const anotherUser = await UserApi.getInstance(platform, true);

const dir = await oneUser.createDirectory("user_" + oneUser.user.id);
const level2Dir = await oneUser.createDirectory(dir.id);
const level2Dir2 = await oneUser.createDirectory(dir.id);
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);
Expand All @@ -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);
Expand All @@ -220,7 +210,5 @@ describe("The Documents Browser Window and API", () => {
sharedDocs = await anotherUser.browseDocuments("shared_with_me");
expect(sharedDocs.children.length).toBe(0);
});

});
});

Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down
Loading

0 comments on commit 9dc23fd

Please sign in to comment.