92 lines
3.0 KiB
JavaScript
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")
|
|
.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);
|
|
})
|
|
})
|