From b65265404154b73b9b1e96d8cfba8ee7a5dfd28a Mon Sep 17 00:00:00 2001 From: subnub Date: Thu, 13 Feb 2025 11:42:54 -0500 Subject: [PATCH] more test fixes --- tests/controller/file-controller.test.js | 78 ++++++++++++++++++++---- 1 file changed, 67 insertions(+), 11 deletions(-) diff --git a/tests/controller/file-controller.test.js b/tests/controller/file-controller.test.js index c70f524..5ac6f33 100644 --- a/tests/controller/file-controller.test.js +++ b/tests/controller/file-controller.test.js @@ -10,19 +10,17 @@ const { envFileFix } = require("../utils/db-setup"); const { ObjectId } = require("mongodb"); let mongoServer; +let authToken; +let file; +let user; 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) + user = await request(app) .post("/user-service/create") .send({ email: "test@test.com", @@ -30,6 +28,14 @@ describe("File Controller", () => { }) .set("uuid", 12314123123); + authToken = user.headers["set-cookie"] + .map((cookie) => cookie.split(";")[0]) + .join("; "); + }); + + beforeEach(async () => { + await mongoose.model("fs.files").deleteMany({}); + file = await mongoose.model("fs.files").create({ _id: new ObjectId("5eb88f29ecb8c9319ddca3c2"), filename: "test.txt", @@ -45,10 +51,6 @@ describe("File Controller", () => { isVideo: false, }, }); - - authToken = user.headers["set-cookie"] - .map((cookie) => cookie.split(";")[0]) - .join("; "); }); afterAll(async () => { @@ -92,7 +94,6 @@ describe("File Controller", () => { title: "newname.txt", }); - console.log("fileResponse", fileResponse.body); expect(fileResponse.status).toBe(200); expect(fileResponse.body.filename).toBe("newname.txt"); @@ -328,4 +329,59 @@ describe("File Controller", () => { expect(fileResponse.status).toBe(401); }); }); + + describe("Make private file: PATCH /file-service/remove-link/:id", () => { + test("Should make file private", async () => { + await mongoose + .model("fs.files") + .updateOne( + { _id: file._id }, + { $set: { "metadata.link": "test", "metadata.linkType": "public" } } + ); + + const fileResponse = await request(app) + .patch(`/file-service/remove-link/${file._id}`) + .set("Cookie", authToken); + + expect(fileResponse.status).toBe(200); + + const fileDbCheck = await mongoose.model("fs.files").findOne({ + _id: file._id, + }); + + expect(fileDbCheck.metadata.link).toBeFalsy(); + expect(fileDbCheck.metadata.linkType).toBeFalsy(); + }); + test("Should return 404 if file not found", async () => { + const fileResponse = await request(app) + .patch(`/file-service/remove-link/5f7e5d8d1f962d5a0f5e8a9e`) + .set("Cookie", authToken); + + expect(fileResponse.status).toBe(404); + }); + test("Should return 401 if not authorized", async () => { + const fileResponse = await request(app) + .patch(`/file-service/remove-link/${file._id}`) + .set("Cookie", "access-token=test"); + + expect(fileResponse.status).toBe(401); + }); + }); + + describe("Get public file info: GET /file-service/public/info/:id/:tempToken", () => { + test("Should return public file info", async () => { + const makePublicResponse = await request(app) + .patch(`/file-service/make-public/${file._id}`) + .set("Cookie", authToken); + + const tempToken = makePublicResponse.body.token; + + const fileResponse = await request(app) + .get(`/file-service/public/info/${file._id}/${tempToken}`) + .set("Cookie", authToken); + + expect(fileResponse.status).toBe(200); + expect(file.filename === fileResponse.body.filename).toBeTruthy(); + }); + }); });