added epress folder routes test, also fixed issue with it saying home files when searching
This commit is contained in:
@@ -18,6 +18,7 @@ const binaryPhraser = require("superagent-binary-parser");
|
||||
const session = require("supertest-session");
|
||||
const loginUser = require("../fixtures/loginUser");
|
||||
const createUserNotEmailVerified = require("../fixtures/createUserNotEmailVerified");
|
||||
const Thumbnail = require("../../dist/models/thumbnail");
|
||||
|
||||
const {server, serverHttps} = servers;
|
||||
|
||||
@@ -92,6 +93,8 @@ afterEach(async(done) => {
|
||||
|
||||
await User.deleteMany({});
|
||||
|
||||
await Thumbnail.deleteMany({});
|
||||
|
||||
const allFiles = await conn.db.collection("fs.files").find({}).toArray();
|
||||
|
||||
for (let i = 0; i < allFiles.length; i++) {
|
||||
@@ -327,6 +330,68 @@ test("When giving wrong auth token for file info, should return 404 error", asyn
|
||||
expect(response.body).toEqual({});
|
||||
})
|
||||
|
||||
test("When not email verified should not get file info, and should return 401", async() => {
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
const {userData: userData3, user: user3} = await createUserNotEmailVerified();
|
||||
await loginUser(appSession, userData3);
|
||||
|
||||
const initVect = crypto.randomBytes(16);
|
||||
const filename = "bunny.png";
|
||||
const filepath = path.join(__dirname, "../fixtures/media/folder.png")
|
||||
const metadata = {
|
||||
owner: user3._id,
|
||||
parent: "/",
|
||||
parentList: "/",
|
||||
"IV": initVect,
|
||||
}
|
||||
|
||||
const file2 = await createFile(filename, filepath, metadata, user3);
|
||||
|
||||
const fileID = file2._id;
|
||||
|
||||
const response = await appSession
|
||||
.get(`/file-service/info/${fileID}`)
|
||||
.send()
|
||||
.expect(401);
|
||||
|
||||
expect(response.body).toEqual({})
|
||||
})
|
||||
|
||||
test("When not email verified but email verification disabled should return file info", async() => {
|
||||
|
||||
env.disableEmailVerification = true;
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
const {userData: userData3, user: user3} = await createUserNotEmailVerified();
|
||||
await loginUser(appSession, userData3);
|
||||
|
||||
const initVect = crypto.randomBytes(16);
|
||||
const filename = "bunny.png";
|
||||
const filepath = path.join(__dirname, "../fixtures/media/folder.png")
|
||||
const metadata = {
|
||||
owner: user3._id,
|
||||
parent: "/",
|
||||
parentList: "/",
|
||||
"IV": initVect,
|
||||
}
|
||||
|
||||
const file2 = await createFile(filename, filepath, metadata, user3);
|
||||
|
||||
const fileID = file2._id;
|
||||
|
||||
const response = await appSession
|
||||
.get(`/file-service/info/${fileID}`)
|
||||
.send()
|
||||
.expect(200);
|
||||
|
||||
expect(response.body._id).toEqual(fileID.toString());
|
||||
|
||||
env.disableEmailVerification = undefined;
|
||||
})
|
||||
|
||||
test("When giving the wrong tempToken for public file info, should return 404 error", async() => {
|
||||
|
||||
const userID = user._id;
|
||||
|
||||
@@ -14,86 +14,131 @@ import servers from "../../dist/server/server";
|
||||
import Folder from "../../dist/models/folder";
|
||||
const temp = require("temp").track();
|
||||
const binaryPhraser = require("superagent-binary-parser");
|
||||
const session = require("supertest-session");
|
||||
const loginUser = require("../fixtures/loginUser");
|
||||
const createUserNotEmailVerified = require("../fixtures/createUserNotEmailVerified");
|
||||
|
||||
|
||||
const {server, serverHttps} = servers;
|
||||
|
||||
const app = server;
|
||||
|
||||
let user;
|
||||
let userToken;
|
||||
let user2;
|
||||
let userToken2;
|
||||
let userData;
|
||||
let userData2;
|
||||
let file;
|
||||
let folder;
|
||||
|
||||
process.env.KEY = "1234";
|
||||
env.key = "1234";
|
||||
|
||||
const waitForDatabase = () => {
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
if (conn.readyState !== 1) {
|
||||
|
||||
conn.once("open", () => {
|
||||
|
||||
resolve();
|
||||
|
||||
})
|
||||
|
||||
} else {
|
||||
|
||||
resolve();
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
beforeEach(async(done) => {
|
||||
|
||||
if (conn.readyState === 0) {
|
||||
await waitForDatabase();
|
||||
|
||||
conn.on("open", async() => {
|
||||
|
||||
// user = await createUser();
|
||||
// userToken = user.tokens[0].token;
|
||||
|
||||
// user2 = await createUser2();
|
||||
// userToken2 = user2.tokens[0].token;
|
||||
|
||||
const {user: gotUser, token: gotToken} = await createUser();
|
||||
user = gotUser;
|
||||
userToken = gotToken;
|
||||
|
||||
const {user: gotUser2, token: gotToken2} = await createUser2();
|
||||
user2 = gotUser2;
|
||||
userToken2 = gotToken2;
|
||||
|
||||
const folderData = {
|
||||
name: "bunny",
|
||||
parent: "/",
|
||||
owner: user._id,
|
||||
parentList: ["/"]
|
||||
}
|
||||
|
||||
folder = new Folder(folderData);
|
||||
await folder.save();
|
||||
|
||||
done();
|
||||
|
||||
})
|
||||
|
||||
} else {
|
||||
|
||||
// user = await createUser();
|
||||
// userToken = user.tokens[0].token;
|
||||
const {user: gotUser, userData: gotUserData} = await createUser();
|
||||
user = gotUser;
|
||||
userData = gotUserData;
|
||||
|
||||
// user2 = await createUser2();
|
||||
// userToken2 = user2.tokens[0].token;
|
||||
const {user: gotUser, token: gotToken} = await createUser();
|
||||
user = gotUser;
|
||||
userToken = gotToken;
|
||||
|
||||
const {user: gotUser2, token: gotToken2} = await createUser2();
|
||||
user2 = gotUser2;
|
||||
userToken2 = gotToken2;
|
||||
|
||||
|
||||
const folderData = {
|
||||
name: "bunny",
|
||||
parent: "/",
|
||||
owner: user._id,
|
||||
parentList: ["/"]
|
||||
}
|
||||
|
||||
folder = new Folder(folderData);
|
||||
await folder.save();
|
||||
|
||||
done();
|
||||
|
||||
const {user: gotUser2, userData: gotUserData2} = await createUser2();
|
||||
user2 = gotUser2;
|
||||
userData2 = gotUserData2;
|
||||
|
||||
const folderData = {
|
||||
name: "bunny",
|
||||
parent: "/",
|
||||
owner: user._id,
|
||||
parentList: ["/"]
|
||||
}
|
||||
|
||||
folder = new Folder(folderData);
|
||||
await folder.save();
|
||||
|
||||
done();
|
||||
|
||||
// if (conn.readyState === 0) {
|
||||
|
||||
// conn.on("open", async() => {
|
||||
|
||||
// // user = await createUser();
|
||||
// // userToken = user.tokens[0].token;
|
||||
|
||||
// // user2 = await createUser2();
|
||||
// // userToken2 = user2.tokens[0].token;
|
||||
|
||||
// const {user: gotUser, token: gotToken} = await createUser();
|
||||
// user = gotUser;
|
||||
// userToken = gotToken;
|
||||
|
||||
// const {user: gotUser2, token: gotToken2} = await createUser2();
|
||||
// user2 = gotUser2;
|
||||
// userToken2 = gotToken2;
|
||||
|
||||
// const folderData = {
|
||||
// name: "bunny",
|
||||
// parent: "/",
|
||||
// owner: user._id,
|
||||
// parentList: ["/"]
|
||||
// }
|
||||
|
||||
// folder = new Folder(folderData);
|
||||
// await folder.save();
|
||||
|
||||
// done();
|
||||
|
||||
// })
|
||||
|
||||
// } else {
|
||||
|
||||
// // user = await createUser();
|
||||
// // userToken = user.tokens[0].token;
|
||||
|
||||
// // user2 = await createUser2();
|
||||
// // userToken2 = user2.tokens[0].token;
|
||||
// const {user: gotUser, token: gotToken} = await createUser();
|
||||
// user = gotUser;
|
||||
// userToken = gotToken;
|
||||
|
||||
// const {user: gotUser2, token: gotToken2} = await createUser2();
|
||||
// user2 = gotUser2;
|
||||
// userToken2 = gotToken2;
|
||||
|
||||
|
||||
// const folderData = {
|
||||
// name: "bunny",
|
||||
// parent: "/",
|
||||
// owner: user._id,
|
||||
// parentList: ["/"]
|
||||
// }
|
||||
|
||||
// folder = new Folder(folderData);
|
||||
// await folder.save();
|
||||
|
||||
// done();
|
||||
|
||||
|
||||
// }
|
||||
})
|
||||
|
||||
afterEach(async(done) => {
|
||||
@@ -116,11 +161,14 @@ afterEach(async(done) => {
|
||||
|
||||
test("When giving folderID, should return folder info", async() => {
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
await loginUser(appSession, userData);
|
||||
|
||||
const folderID = folder._id;
|
||||
|
||||
await request(app)
|
||||
await appSession
|
||||
.get(`/folder-service/info/${folderID}`)
|
||||
.set("Authorization", `Bearer ${userToken}`)
|
||||
.send()
|
||||
.expect(200);
|
||||
})
|
||||
@@ -137,31 +185,40 @@ test("When not authorized for folder info, should return 401 error", async() =>
|
||||
|
||||
test("When giving wrong authorization for folder info, should return 404 error", async() => {
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
await loginUser(appSession, userData2);
|
||||
|
||||
const folderID = folder._id;
|
||||
|
||||
await request(app)
|
||||
await appSession
|
||||
.get(`/folder-service/info/${folderID}`)
|
||||
.set("Authorization", `Bearer ${userToken2}`)
|
||||
.send()
|
||||
.expect(404);
|
||||
})
|
||||
|
||||
test("When giving folderID, should return subfolder list", async() => {
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
await loginUser(appSession, userData);
|
||||
|
||||
const folderID = folder._id;
|
||||
|
||||
await request(app)
|
||||
await appSession
|
||||
.get(`/folder-service/subfolder-list?id=${folderID}`)
|
||||
.set("Authorization", `Bearer ${userToken}`)
|
||||
.send()
|
||||
.expect(200);
|
||||
})
|
||||
|
||||
test("When giving no folderID for subfolder list, should return 404 error", async() => {
|
||||
|
||||
await request(app)
|
||||
const appSession = session(app);
|
||||
|
||||
await loginUser(appSession, userData);
|
||||
|
||||
await appSession
|
||||
.get(`/folder-service/subfolder-list`)
|
||||
.set("Authorization", `Bearer ${userToken}`)
|
||||
.send()
|
||||
.expect(404);
|
||||
})
|
||||
@@ -178,12 +235,14 @@ test("When giving no authorization for subfolder list, should return 401 error",
|
||||
|
||||
test("When giving wrong authorization for subfolder list, should return 404 error", async() => {
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
await loginUser(appSession, userData2);
|
||||
|
||||
const folderID = folder._id;
|
||||
|
||||
await request(app)
|
||||
await appSession
|
||||
.get(`/folder-service/subfolder-list?id=${folderID}`)
|
||||
.set("Authorization", `Bearer ${userToken2}`)
|
||||
.send()
|
||||
.expect(404);
|
||||
|
||||
@@ -191,11 +250,14 @@ test("When giving wrong authorization for subfolder list, should return 404 erro
|
||||
|
||||
test("When giving default query, should return folder list", async() => {
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
await loginUser(appSession, userData);
|
||||
|
||||
const query = {}
|
||||
|
||||
await request(app)
|
||||
await appSession
|
||||
.get(`/folder-service/list?query=${query}`)
|
||||
.set("Authorization", `Bearer ${userToken}`)
|
||||
.send()
|
||||
.expect(200);
|
||||
})
|
||||
@@ -212,6 +274,10 @@ test("When giving no authorization for folder list, should return 401 error", as
|
||||
|
||||
test("When giving ID and parent, should move folder", async() => {
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
await loginUser(appSession, userData);
|
||||
|
||||
const folderData = {
|
||||
name: "bunny",
|
||||
parent: "/",
|
||||
@@ -225,9 +291,8 @@ test("When giving ID and parent, should move folder", async() => {
|
||||
|
||||
const folderID = folder._id;
|
||||
|
||||
await request(app)
|
||||
await appSession
|
||||
.patch(`/folder-service/move`)
|
||||
.set("Authorization", `Bearer ${userToken}`)
|
||||
.send({
|
||||
id: folderID,
|
||||
parent: parentID
|
||||
@@ -237,6 +302,10 @@ test("When giving ID and parent, should move folder", async() => {
|
||||
|
||||
test("When giving a folder id that does not exist for move folder, should return 500 error", async() => {
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
await loginUser(appSession, userData);
|
||||
|
||||
const folderData = {
|
||||
name: "bunny",
|
||||
parent: "/",
|
||||
@@ -248,9 +317,8 @@ test("When giving a folder id that does not exist for move folder, should return
|
||||
await folder2.save();
|
||||
const parentID = folder2._id;
|
||||
|
||||
await request(app)
|
||||
await appSession
|
||||
.patch(`/folder-service/move`)
|
||||
.set("Authorization", `Bearer ${userToken}`)
|
||||
.send({
|
||||
id: "1234",
|
||||
parent: parentID
|
||||
@@ -261,11 +329,14 @@ test("When giving a folder id that does not exist for move folder, should return
|
||||
|
||||
test("When giving parent id that does not exist for move folder, should return 500 error", async() => {
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
await loginUser(appSession, userData);
|
||||
|
||||
const folderID = folder._id;
|
||||
|
||||
await request(app)
|
||||
await appSession
|
||||
.patch(`/folder-service/move`)
|
||||
.set("Authorization", `Bearer ${userToken}`)
|
||||
.send({
|
||||
id: folderID,
|
||||
parent: "1234"
|
||||
@@ -275,12 +346,15 @@ test("When giving parent id that does not exist for move folder, should return 5
|
||||
|
||||
test("When giving folder id and title, should rename folder", async() => {
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
await loginUser(appSession, userData);
|
||||
|
||||
const folderID = folder._id;
|
||||
const title = "new name";
|
||||
|
||||
await request(app)
|
||||
await appSession
|
||||
.patch(`/folder-service/rename`)
|
||||
.set("Authorization", `Bearer ${userToken}`)
|
||||
.send({
|
||||
id: folderID,
|
||||
title
|
||||
@@ -304,13 +378,15 @@ test("When giving not authorization for rename folder, should return 401 error",
|
||||
|
||||
test("When giving id for folder that does not exist for rename, should return 404 error", async() => {
|
||||
|
||||
const appSession = session(app);
|
||||
|
||||
await loginUser(appSession, userData);
|
||||
|
||||
const wrongFolderID = "123456789012";
|
||||
const title = "new name";
|
||||
|
||||
await request(app)
|
||||
await appSession
|
||||
.patch(`/folder-service/rename`)
|
||||
.set("Authorization", `Bearer ${userToken}`)
|
||||
.send({
|
||||
id: wrongFolderID,
|
||||
title
|
||||
Reference in New Issue
Block a user