320 lines
7.4 KiB
JavaScript
320 lines
7.4 KiB
JavaScript
import User from "../../dist/models/user";
|
|
import mongoose from "../../dist/db/mongoose";
|
|
const conn = mongoose.connection;
|
|
const createUser = require("../fixtures/createUser");
|
|
const createUser2 = require("../fixtures/createUser2");
|
|
const createFile = require("../fixtures/createFile");
|
|
const crypto = require("crypto");
|
|
const path = require("path");
|
|
import env from "../../dist/enviroment/env";
|
|
const request = require("supertest");
|
|
const jwt = require("jsonwebtoken");
|
|
const ObjectID = require('mongodb').ObjectID
|
|
import servers from "../../dist/server/server";
|
|
import Folder from "../../dist/models/folder";
|
|
const temp = require("temp").track();
|
|
const binaryPhraser = require("superagent-binary-parser");
|
|
|
|
const {server, serverHttps} = servers;
|
|
|
|
const app = server;
|
|
|
|
let user;
|
|
let userToken;
|
|
let user2;
|
|
let userToken2;
|
|
let file;
|
|
let folder;
|
|
|
|
process.env.KEY = "1234";
|
|
env.key = "1234";
|
|
|
|
|
|
beforeEach(async(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) => {
|
|
|
|
let bucket = new mongoose.mongo.GridFSBucket(conn.db);
|
|
|
|
await User.deleteMany({});
|
|
await Folder.deleteMany({});
|
|
|
|
const allFiles = await conn.db.collection("fs.files").find({}).toArray();
|
|
|
|
for (let i = 0; i < allFiles.length; i++) {
|
|
|
|
const currentFileID = allFiles[i]._id;
|
|
await bucket.delete(ObjectID(currentFileID));
|
|
}
|
|
|
|
done();
|
|
})
|
|
|
|
test("When giving folderID, should return folder info", async() => {
|
|
|
|
const folderID = folder._id;
|
|
|
|
await request(app)
|
|
.get(`/folder-service/info/${folderID}`)
|
|
.set("Authorization", `Bearer ${userToken}`)
|
|
.send()
|
|
.expect(200);
|
|
})
|
|
|
|
test("When not authorized for folder info, should return 401 error", async() => {
|
|
|
|
const folderID = folder._id;
|
|
|
|
await request(app)
|
|
.get(`/folder-service/info/${folderID}`)
|
|
.send()
|
|
.expect(401);
|
|
})
|
|
|
|
test("When giving wrong authorization for folder info, should return 404 error", async() => {
|
|
|
|
const folderID = folder._id;
|
|
|
|
await request(app)
|
|
.get(`/folder-service/info/${folderID}`)
|
|
.set("Authorization", `Bearer ${userToken2}`)
|
|
.send()
|
|
.expect(404);
|
|
})
|
|
|
|
test("When giving folderID, should return subfolder list", async() => {
|
|
|
|
const folderID = folder._id;
|
|
|
|
await request(app)
|
|
.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)
|
|
.get(`/folder-service/subfolder-list`)
|
|
.set("Authorization", `Bearer ${userToken}`)
|
|
.send()
|
|
.expect(404);
|
|
})
|
|
|
|
test("When giving no authorization for subfolder list, should return 401 error", async() => {
|
|
|
|
const folderID = folder._id;
|
|
|
|
await request(app)
|
|
.get(`/folder-service/subfolder-list?id=${folderID}`)
|
|
.send()
|
|
.expect(401);
|
|
})
|
|
|
|
test("When giving wrong authorization for subfolder list, should return 404 error", async() => {
|
|
|
|
|
|
const folderID = folder._id;
|
|
|
|
await request(app)
|
|
.get(`/folder-service/subfolder-list?id=${folderID}`)
|
|
.set("Authorization", `Bearer ${userToken2}`)
|
|
.send()
|
|
.expect(404);
|
|
|
|
})
|
|
|
|
test("When giving default query, should return folder list", async() => {
|
|
|
|
const query = {}
|
|
|
|
await request(app)
|
|
.get(`/folder-service/list?query=${query}`)
|
|
.set("Authorization", `Bearer ${userToken}`)
|
|
.send()
|
|
.expect(200);
|
|
})
|
|
|
|
test("When giving no authorization for folder list, should return 401 error", async() => {
|
|
|
|
const query = {}
|
|
|
|
await request(app)
|
|
.get(`/folder-service/list?query=${query}`)
|
|
.send()
|
|
.expect(401);
|
|
})
|
|
|
|
test("When giving ID and parent, should move folder", async() => {
|
|
|
|
const folderData = {
|
|
name: "bunny",
|
|
parent: "/",
|
|
owner: user._id,
|
|
parentList: ["/"]
|
|
}
|
|
|
|
const folder2 = new Folder(folderData);
|
|
await folder2.save();
|
|
const parentID = folder2._id;
|
|
|
|
const folderID = folder._id;
|
|
|
|
await request(app)
|
|
.patch(`/folder-service/move`)
|
|
.set("Authorization", `Bearer ${userToken}`)
|
|
.send({
|
|
id: folderID,
|
|
parent: parentID
|
|
})
|
|
.expect(200);
|
|
})
|
|
|
|
test("When giving a folder id that does not exist for move folder, should return 500 error", async() => {
|
|
|
|
const folderData = {
|
|
name: "bunny",
|
|
parent: "/",
|
|
owner: user._id,
|
|
parentList: ["/"]
|
|
}
|
|
|
|
const folder2 = new Folder(folderData);
|
|
await folder2.save();
|
|
const parentID = folder2._id;
|
|
|
|
await request(app)
|
|
.patch(`/folder-service/move`)
|
|
.set("Authorization", `Bearer ${userToken}`)
|
|
.send({
|
|
id: "1234",
|
|
parent: parentID
|
|
})
|
|
.expect(500);
|
|
|
|
})
|
|
|
|
test("When giving parent id that does not exist for move folder, should return 500 error", async() => {
|
|
|
|
const folderID = folder._id;
|
|
|
|
await request(app)
|
|
.patch(`/folder-service/move`)
|
|
.set("Authorization", `Bearer ${userToken}`)
|
|
.send({
|
|
id: folderID,
|
|
parent: "1234"
|
|
})
|
|
.expect(500);
|
|
})
|
|
|
|
test("When giving folder id and title, should rename folder", async() => {
|
|
|
|
const folderID = folder._id;
|
|
const title = "new name";
|
|
|
|
await request(app)
|
|
.patch(`/folder-service/rename`)
|
|
.set("Authorization", `Bearer ${userToken}`)
|
|
.send({
|
|
id: folderID,
|
|
title
|
|
})
|
|
.expect(200);
|
|
})
|
|
|
|
test("When giving not authorization for rename folder, should return 401 error", async() => {
|
|
|
|
const folderID = folder._id;
|
|
const title = "new name";
|
|
|
|
await request(app)
|
|
.patch(`/folder-service/rename`)
|
|
.send({
|
|
id: folderID,
|
|
title
|
|
})
|
|
.expect(401);
|
|
})
|
|
|
|
test("When giving id for folder that does not exist for rename, should return 404 error", async() => {
|
|
|
|
|
|
const wrongFolderID = "123456789012";
|
|
const title = "new name";
|
|
|
|
await request(app)
|
|
.patch(`/folder-service/rename`)
|
|
.set("Authorization", `Bearer ${userToken}`)
|
|
.send({
|
|
id: wrongFolderID,
|
|
title
|
|
})
|
|
.expect(404);
|
|
|
|
}) |