Merge branch 'dev' into frontend
This commit is contained in:
commit
7cc74866fc
6 changed files with 59 additions and 98 deletions
|
@ -1,87 +0,0 @@
|
|||
import { describe, expect, test } from "@jest/globals";
|
||||
import { api } from "../API/API";
|
||||
import { NewUser, NewWeeklyReport } from "../Types/goTypes";
|
||||
|
||||
describe("API", () => {
|
||||
test("registerUser", async () => {
|
||||
const user: NewUser = {
|
||||
username: "lol", // Add the username property
|
||||
password: "lol",
|
||||
};
|
||||
const response = await api.registerUser(user);
|
||||
console.log(response.message);
|
||||
expect(response.success).toBe(true);
|
||||
expect(response.data).toHaveProperty("userId");
|
||||
});
|
||||
|
||||
test("createProject", async () => {
|
||||
const project = {
|
||||
name: "Project X",
|
||||
description: "This is a test project",
|
||||
};
|
||||
const token =
|
||||
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6ZmFsc2UsImV4cCI6MTcxMDk0MDIwMywibmFtZSI6InJyZ3VtZHpwbWMifQ.V9NHoYMYV61t";
|
||||
|
||||
const response = await api.createProject(project, token);
|
||||
console.log(response.message);
|
||||
expect(response.success).toBe(true);
|
||||
expect(response.data).toHaveProperty("projectId");
|
||||
});
|
||||
|
||||
test("renewToken", async () => {
|
||||
const refreshToken =
|
||||
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6ZmFsc2UsImV4cCI6MTcxMDk0MDIwMywibmFtZSI6InJyZ3VtZHpwbWMifQ.V9NHoYMYV61t";
|
||||
|
||||
const response = await api.renewToken(refreshToken);
|
||||
console.log(response.message);
|
||||
expect(response.success).toBe(true);
|
||||
expect(response.data).toHaveProperty("accessToken");
|
||||
expect(response.data).toHaveProperty("refreshToken");
|
||||
});
|
||||
|
||||
test("getUserProjects", async () => {
|
||||
const token =
|
||||
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6ZmFsc2UsImV4cCI6MTcxMDk0MDIwMywibmFtZSI6InJyZ3VtZHpwbWMifQ.V9NHoYMYV61t";
|
||||
const username = "rrgumdzpmc";
|
||||
const response = await api.getUserProjects(username, token);
|
||||
console.log(response.message);
|
||||
expect(response.success).toBe(true);
|
||||
expect(response.data).toHaveProperty("projects");
|
||||
});
|
||||
|
||||
test("submitWeeklyReport", async () => {
|
||||
const report: NewWeeklyReport = {
|
||||
projectName: "vtmosxssst",
|
||||
week: 2,
|
||||
developmentTime: 40,
|
||||
meetingTime: 5,
|
||||
adminTime: 2,
|
||||
ownWorkTime: 10,
|
||||
studyTime: 12,
|
||||
testingTime: 41,
|
||||
};
|
||||
const token =
|
||||
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhZG1pbiI6ZmFsc2UsImV4cCI6MTcxMDk0MDIwMywibmFtZSI6InJyZ3VtZHpwbWMifQ.V9NHoYMYV61t";
|
||||
|
||||
const response = await api.submitWeeklyReport(report, token);
|
||||
console.log(response.message);
|
||||
expect(response.success).toBe(true);
|
||||
expect(response.data).toHaveProperty(
|
||||
"message",
|
||||
"Report submitted successfully",
|
||||
);
|
||||
});
|
||||
|
||||
test("login", async () => {
|
||||
const user: NewUser = {
|
||||
username: "rrgumdzpmc", // Add an empty string value for the username property
|
||||
password: "always_same",
|
||||
};
|
||||
|
||||
const response = await api.login(user);
|
||||
console.log(response.message);
|
||||
expect(response.success).toBe(true);
|
||||
expect(response.data).toHaveProperty("accessToken");
|
||||
expect(response.data).toHaveProperty("refreshToken");
|
||||
});
|
||||
});
|
|
@ -20,6 +20,10 @@ interface API {
|
|||
registerUser(user: NewUser): Promise<APIResponse<User>>;
|
||||
/** Remove a user */
|
||||
removeUser(username: string, token: string): Promise<APIResponse<User>>;
|
||||
/** Login */
|
||||
login(NewUser: NewUser): Promise<APIResponse<string>>;
|
||||
/** Renew the token */
|
||||
renewToken(token: string): Promise<APIResponse<string>>;
|
||||
/** Create a project */
|
||||
createProject(
|
||||
project: NewProject,
|
||||
|
@ -29,16 +33,19 @@ interface API {
|
|||
submitWeeklyReport(
|
||||
project: NewWeeklyReport,
|
||||
token: string,
|
||||
): Promise<APIResponse<Project>>;
|
||||
/** Renew the token */
|
||||
renewToken(token: string): Promise<APIResponse<string>>;
|
||||
): Promise<APIResponse<NewWeeklyReport>>;
|
||||
/**Gets a weekly report*/
|
||||
getWeeklyReport(
|
||||
username: string,
|
||||
projectName: string,
|
||||
week: string,
|
||||
token: string,
|
||||
): Promise<APIResponse<NewWeeklyReport>>;
|
||||
/** Gets all the projects of a user*/
|
||||
getUserProjects(
|
||||
username: string,
|
||||
token: string,
|
||||
): Promise<APIResponse<Project[]>>;
|
||||
/** Login */
|
||||
login(NewUser: NewUser): Promise<APIResponse<string>>;
|
||||
}
|
||||
|
||||
// Export an instance of the API
|
||||
|
@ -169,9 +176,9 @@ export const api: API = {
|
|||
},
|
||||
|
||||
async submitWeeklyReport(
|
||||
project: NewWeeklyReport,
|
||||
weeklyReport: NewWeeklyReport,
|
||||
token: string,
|
||||
): Promise<APIResponse<Project>> {
|
||||
): Promise<APIResponse<NewWeeklyReport>> {
|
||||
try {
|
||||
const response = await fetch("/api/submitWeeklyReport", {
|
||||
method: "POST",
|
||||
|
@ -179,7 +186,7 @@ export const api: API = {
|
|||
"Content-Type": "application/json",
|
||||
Authorization: "Bearer " + token,
|
||||
},
|
||||
body: JSON.stringify(project),
|
||||
body: JSON.stringify(weeklyReport),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
|
@ -189,7 +196,7 @@ export const api: API = {
|
|||
};
|
||||
}
|
||||
|
||||
const data = (await response.json()) as Project;
|
||||
const data = (await response.json()) as NewWeeklyReport;
|
||||
return { success: true, data };
|
||||
} catch (e) {
|
||||
return {
|
||||
|
@ -199,6 +206,33 @@ export const api: API = {
|
|||
}
|
||||
},
|
||||
|
||||
async getWeeklyReport(
|
||||
username: string,
|
||||
projectName: string,
|
||||
week: string,
|
||||
token: string,
|
||||
): Promise<APIResponse<NewWeeklyReport>> {
|
||||
try {
|
||||
const response = await fetch("/api/getWeeklyReport", {
|
||||
method: "GET",
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
Authorization: "Bearer " + token,
|
||||
},
|
||||
body: JSON.stringify({ username, projectName, week }),
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
return { success: false, message: "Failed to get weekly report" };
|
||||
} else {
|
||||
const data = (await response.json()) as NewWeeklyReport;
|
||||
return { success: true, data };
|
||||
}
|
||||
} catch (e) {
|
||||
return { success: false, message: "Failed to get weekly report" };
|
||||
}
|
||||
},
|
||||
|
||||
async login(NewUser: NewUser): Promise<APIResponse<string>> {
|
||||
try {
|
||||
const response = await fetch("/api/login", {
|
||||
|
|
|
@ -40,7 +40,7 @@ export default function Register(): JSX.Element {
|
|||
|
||||
const handleRegister = async (): Promise<void> => {
|
||||
const newUser: NewUser = {
|
||||
userName: username ?? "",
|
||||
username: username ?? "",
|
||||
password: password ?? "",
|
||||
};
|
||||
const response = await api.registerUser(newUser);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue