bullpen/backend/test/team.test.js

92 lines
3.1 KiB
JavaScript

const request = require("supertest")
const {
expect,
describe,
test,
} = require('@jest/globals');
const app = require("../app")
describe("Test team creation, adding and removing player", () => {
test("should create a team", async () => {
let response = await request(app)
.post("/api/auth/login")
.send({
email: 'coach@example.com',
password: 'hash1234'
});
const user = response.body;
response = await request(app)
.post("/api/teams")
.set('x-access-token', user.accessToken)
.send({
name: "Team 1",
description: "Team 1 description"
});
expect(response.statusCode).toBe(201);
const teamId = response.body.id;
const teamName = response.body.name;
response = await request(app)
.get('/api/teams')
.set('x-access-token', user.accessToken);
expect(response.statusCode).toBe(200);
expect(response.body.length).toBeGreaterThan(0);
expect(response.body.filter(t => t.id === teamId).shift()).toBeDefined();
response = await request(app)
.get('/api/players')
.set('x-access-token', user.accessToken);
expect(response.statusCode).toBe(200);
expect(response.body.length).toBe(1);
const playerId = response.body[0].id;
// Add player to team
response = await request(app)
.put(`/api/teams/${teamId}/add_players`)
.set('x-access-token', user.accessToken)
.send({
playerIds: [playerId]
});
expect(response.statusCode).toBe(200);
response = await request(app)
.get('/api/teams')
.set('x-access-token', user.accessToken);
expect(response.statusCode).toBe(200);
expect(response.body.length).toBeGreaterThan(0);
expect(response.body.filter(t => t.id === teamId).shift()).toBeDefined();
response = await request(app)
.get(`/api/players/${playerId}`)
.set('x-access-token', user.accessToken);
expect(response.statusCode).toBe(200);
expect(response.body.teams.length).toBe(1);
expect(response.body.teams[0].name).toBe(teamName);
// Remove player from team
response = await request(app)
.put(`/api/teams/${teamId}/remove_players`)
.set('x-access-token', user.accessToken)
.send({
playerIds: [playerId]
});
expect(response.statusCode).toBe(200);
response = await request(app)
.get(`/api/teams/${teamId}`)
.set('x-access-token', user.accessToken);
expect(response.statusCode).toBe(200);
expect(response.body.players.length).toBe(0);
response = await request(app)
.get(`/api/players/${playerId}`)
.set('x-access-token', user.accessToken);
expect(response.statusCode).toBe(200);
expect(response.body.teams.length).toBe(0);
});
});