Files
myDrive/tests/controller/file-controller.test.js
T
2025-02-12 17:16:27 -05:00

73 lines
2.0 KiB
JavaScript

const request = require("supertest");
const app = require("../utils/express-app");
const mongoose = require("mongoose");
const { MongoMemoryServer } = require("mongodb-memory-server");
const getEnvVariables = require("../../dist-backend/enviroment/get-env-variables");
const getKey = require("../../dist-backend/key/get-key").default;
getEnvVariables();
const env = require("../../dist-backend/enviroment/env");
const { envFileFix } = require("../utils/db-setup");
const { ObjectId } = require("mongodb");
let mongoServer;
describe("File Controller", () => {
let authToken;
let file;
beforeAll(async () => {
envFileFix(env);
await getKey();
mongoServer = await MongoMemoryServer.create();
await mongoose.connect(mongoServer.getUri(), { useNewUrlParser: true });
const user = await request(app)
.post("/user-service/create")
.send({
email: "test@test.com",
password: "test1234",
})
.set("uuid", 12314123123);
file = await mongoose.model("fs.files").create({
_id: new ObjectId("5eb88f29ecb8c9319ddca3c2"),
filename: "test.txt",
uploadDate: new Date(),
length: 10000,
metadata: {
owner: user.body.user._id,
parent: "/",
parentList: "/",
hasThumbnail: false,
size: "10000",
IV: "test",
isVideo: false,
},
});
authToken = user.headers["set-cookie"]
.map((cookie) => cookie.split(";")[0])
.join("; ");
});
afterAll(async () => {
await mongoose.disconnect();
await mongoServer.stop();
});
describe("File info: GET /file-service/info/:id", () => {
test("Should return file info", async () => {
const fileResponse = await request(app)
.get(`/file-service/info/${file._id}`)
.set("Cookie", authToken);
console.log("fileResponse", fileResponse.body);
expect(fileResponse.status).toBe(200);
expect(fileResponse.body.filename).toBe(file.filename);
expect(fileResponse.body.length).toBe(file.length);
});
});
});