const request = require("supertest") const { expect, describe, test, } = require('@jest/globals'); const app = require("../app") const { bullpenSession } = require("./data/bullpenSession.test.data") const validateBullpenSession = (bullpenSession) => { expect(bullpenSession.id).toBeDefined(); expect(bullpenSession.id).toBeGreaterThan(0); expect(bullpenSession.pitches).toBeDefined(); expect(Array.isArray(bullpenSession.pitches)).toBe(true); expect(bullpenSession.pitches.length).toBe(2); } describe("Test bullpen session", () => { test("should create bullpen session with pitches", async () => { let response = await request(app) .post("/api/auth/login") .send({ email: 'player@example.com', password: 'hash1234' }); const user = response.body; response = await request(app) .post("/api/bullpen_session") .set('x-access-token', user.accessToken) .send(bullpenSession); expect(response.statusCode).toBe(201); const bullpenSessionData = await response.body; expect(bullpenSessionData).toBeDefined(); validateBullpenSession(bullpenSessionData); }); test("should get all bullpen sessions", async () => { let response = await request(app) .post("/api/auth/login") .send({ email: 'player@example.com', password: 'hash1234' }); const user = response.body; response = await request(app) .get("/api/bullpen_session") .set('x-access-token', user.accessToken); expect(response.statusCode).toBe(200); const { totalCount, data, totalPages, currentPage } = await response.body; expect(data).toBeDefined(); expect(Array.isArray(data)).toBe(true); expect(data.length).toBe(1); expect(totalCount).toBe(1); expect(totalPages).toBe(1); expect(currentPage).toBe(0); const bullpenSessionData = data[0]; validateBullpenSession(bullpenSessionData); }) test("should get all bullpen sessions for user", async () => { let response = await request(app) .post("/api/auth/login") .send({ email: 'player@example.com', password: 'hash1234' }); const user = response.body; response = await request(app) .get("/api/bullpen_session") .set('x-access-token', user.accessToken) .query({ user: user.id }); expect(response.statusCode).toBe(200); const { totalCount, data, totalPages, currentPage } = await response.body; expect(data).toBeDefined(); expect(Array.isArray(data)).toBe(true); expect(data.length).toBe(1); expect(totalCount).toBe(1); expect(totalPages).toBe(1); expect(currentPage).toBe(0); const bullpenSessionData = data[0]; validateBullpenSession(bullpenSessionData); }) })