You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.7 KiB
TypeScript
75 lines
1.7 KiB
TypeScript
import supertest from "supertest";
|
|
import app from "../../server";
|
|
import { User } from "../../models/user";
|
|
|
|
const token = process.env.TOKEN_SECRET_TEST as string;
|
|
const request = supertest(app);
|
|
|
|
const testUser: User = {
|
|
id: 1,
|
|
firstname: "John",
|
|
lastname: "Doe",
|
|
username: "Jd",
|
|
password: "password",
|
|
};
|
|
|
|
describe("Users handler", () => {
|
|
it("Should create a new user", async () => {
|
|
const response = await request
|
|
.post("/users")
|
|
.auth(token, { type: "bearer" })
|
|
.send(testUser);
|
|
|
|
expect(response.status).toBe(200);
|
|
});
|
|
|
|
it("Should authenticate a user", async () => {
|
|
const response = await request
|
|
.post("/users/auth")
|
|
.auth(token, { type: "bearer" })
|
|
.send(testUser);
|
|
|
|
expect(response.status).toBe(200);
|
|
});
|
|
|
|
it("Should index users", async () => {
|
|
const response = await request
|
|
.get("/users")
|
|
.auth(token, { type: "bearer" });
|
|
|
|
expect(response.status).toBe(200);
|
|
});
|
|
|
|
it("Should get user by id", async () => {
|
|
const response = await request
|
|
.get("/users/1")
|
|
.auth(token, { type: "bearer" });
|
|
|
|
expect(response.status).toBe(200);
|
|
});
|
|
|
|
it("Should update a user", async () => {
|
|
const updatedUser = {
|
|
id: 1,
|
|
firstname: "Sara",
|
|
lastname: "Doe",
|
|
username: "Sd",
|
|
password: "password123",
|
|
};
|
|
const response = await request
|
|
.put("/users/1")
|
|
.auth(token, { type: "bearer" })
|
|
.send(updatedUser);
|
|
|
|
expect(response.status).toBe(200);
|
|
});
|
|
|
|
it("Should delete a user by id", async () => {
|
|
const response = await request
|
|
.delete("/users/1")
|
|
.auth(token, { type: "bearer" });
|
|
|
|
expect(response.status).toBe(200);
|
|
});
|
|
});
|