bullpen/backend/test/bullpenSession.test.js

92 lines
3.0 KiB
JavaScript

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", { params: { user: user.id } })
.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);
})
})