const request = require("supertest") const { expect, describe, test, } = require('@jest/globals'); const app = require("../app") const { signupPlayer } = require("./data/player.test.data") describe("Test player creation, authentication and retrieval", () => { test("should create a player", 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/players") .set('x-access-token', user.accessToken) .send(signupPlayer); expect(response.header['content-type']).toBe('application/json; charset=utf-8'); expect(response.statusCode).toBe(201); const player = response.body; response = await request(app) .get(`/api/players/${player.id}`) .set('x-access-token', user.accessToken); expect(response.header['content-type']).toBe('application/json; charset=utf-8'); expect(response.statusCode).toBe(200); expect(response.body).toEqual(player); response = await request(app) .get(`/api/players/user/${player.userId}`) .set('x-access-token', user.accessToken); expect(response.header['content-type']).toBe('application/json; charset=utf-8'); expect(response.statusCode).toBe(200); expect(response.body).toEqual(player); response = await request(app) .get('/api/players') .set('x-access-token', user.accessToken); expect(response.header['content-type']).toBe('application/json; charset=utf-8'); expect(response.statusCode).toBe(200); expect(response.body.filter(p => p.user.id === player.user.id).shift()).toEqual(player); }); });