diff --git a/test/auth.test.ts b/test/auth.test.ts index c4979ca85ae49dd70551a59c552495212b90e828..58d65f40361a3b033ccfdd33ee0f08a18a9459f4 100644 --- a/test/auth.test.ts +++ b/test/auth.test.ts @@ -44,5 +44,7 @@ describe("POST /api/login", () => { }); expect(result.status).toEqual(200); + expect(result.body.accessToken).toBeDefined(); + expect(result.header["set-cookie"][0]).toBeDefined(); }); }); \ No newline at end of file diff --git a/test/premium-album.test.ts b/test/premium-album.test.ts index 1f8e6939a5bd6e17d6610c074825d70ccf7ee6a1..dc6afe16d554b18201bda30c8d033261f58bb9bc 100644 --- a/test/premium-album.test.ts +++ b/test/premium-album.test.ts @@ -1,49 +1,96 @@ import supertest from "supertest"; import { app } from "../src/cores/app"; import { - addManyPremiumAlbumTest, - deleteAllPremiumAlbumTest, + addManyPremiumAlbumTest, + deleteAllPremiumAlbumTest, + deleteUsersTest, } from "./test-util"; +const signup = async () => { +await supertest(app) + .post("/api/signup") + .send({ + username: "test", + password: "test", + }); +} + describe("POST /api/premium-album", () => { + beforeEach(async () => { + await signup(); + }); + afterEach(async () => { await deleteAllPremiumAlbumTest(); + await deleteUsersTest(); }); it("Should be able to create a new premium album.", async () => { + // login first + const loginResult = await supertest(app) + .post("/api/login") + .send({ + username: "test", + password: "test", + }); + + const token = loginResult.body.accessToken; + const fingerprintCookie = loginResult.header["set-cookie"][0]; + + // create new premium album const result = await supertest(app) - .post("/api/premium-album") - .send({ - albumName: "test", - releaseDate: new Date("2021-01-01"), - genre: "test", - artist: "test", - coverFilename: "test", - }); + .post("/api/premium-album") + .set("Authorization", `Bearer ${token}`) + .set("Cookie", fingerprintCookie) + .send({ + albumName: "test", + releaseDate: new Date("2021-01-01"), + genre: "test", + artist: "test", + coverFilename: "test", + }); + expect(result.status).toEqual(200); - expect(result.body.data.albumName).toBe("test"); - expect(result.body.data.artist).toBe("test"); - expect(result.body.data.releaseDate.toString()).toBe( + expect(result.body.albumName).toBe("test"); + expect(result.body.artist).toBe("test"); + expect(result.body.releaseDate.toString()).toBe( "2021-01-01T00:00:00.000Z", ); - expect(result.body.data.genre).toBe("test"); - expect(result.body.data.coverFilename).toBe("test"); + expect(result.body.genre).toBe("test"); + expect(result.body.coverFilename).toBe("test"); }); }); describe("GET /api/premium-albums", () => { beforeEach(async () => { + await signup(); await deleteAllPremiumAlbumTest(); await addManyPremiumAlbumTest(); }); afterEach(async () => { await deleteAllPremiumAlbumTest(); + await deleteUsersTest(); }); it("Should be able to get all premium albums.", async () => { - const result = await supertest(app).get("/api/premium-albums").query({ + // login first + const loginResult = await supertest(app) + .post("/api/login") + .send({ + username: "test", + password: "test", + }); + + const token = loginResult.body.accessToken; + const fingerprintCookie = loginResult.header["set-cookie"][0]; + + const result = await supertest(app) + .get("/api/premium-albums") + .set("Authorization", `Bearer ${token}`) + .set("Cookie", fingerprintCookie) + .query({ size: 10, page: 1, searchQuery: "", diff --git a/test/test-util.ts b/test/test-util.ts index 70dda70266c3e9ed3ea92680484b6ad0d97809c3..10cc73f2fe66debc11541f7519e7760ea3dbbf38 100644 --- a/test/test-util.ts +++ b/test/test-util.ts @@ -20,4 +20,12 @@ export const addManyPremiumAlbumTest = async () => { } }); } -}; \ No newline at end of file +}; + +export const deleteUsersTest = async () => { + await prismaClient.user.delete({ + where: { + username: "test", + } + }) +}