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); }); });