92 lines
3.1 KiB
JavaScript
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);
|
|
});
|
|
});
|