52 lines
1.9 KiB
JavaScript
52 lines
1.9 KiB
JavaScript
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);
|
|
});
|
|
});
|