Compare commits
3 commits
b69f8d82ff
...
dbb2ff84e5
Author | SHA1 | Date | |
---|---|---|---|
![]() |
dbb2ff84e5 | ||
![]() |
0d053add5e | ||
![]() |
23dd22eab5 |
3 changed files with 40 additions and 10 deletions
|
@ -267,6 +267,14 @@ func (gs *GState) SubmitWeeklyReport(c *fiber.Ctx) error {
|
|||
return c.Status(400).SendString(err.Error())
|
||||
}
|
||||
|
||||
// Make sure all the fields of the report are valid
|
||||
if report.Week < 1 || report.Week > 52 {
|
||||
return c.Status(400).SendString("Invalid week number")
|
||||
}
|
||||
if report.DevelopmentTime < 0 || report.MeetingTime < 0 || report.AdminTime < 0 || report.OwnWorkTime < 0 || report.StudyTime < 0 || report.TestingTime < 0 {
|
||||
return c.Status(400).SendString("Invalid time report")
|
||||
}
|
||||
|
||||
if err := gs.Db.AddWeeklyReport(report.ProjectName, username, report.Week, report.DevelopmentTime, report.MeetingTime, report.AdminTime, report.OwnWorkTime, report.StudyTime, report.TestingTime); err != nil {
|
||||
return c.Status(500).SendString(err.Error())
|
||||
}
|
||||
|
|
|
@ -3,19 +3,19 @@ package types
|
|||
// This is what should be submitted to the server, the username will be derived from the JWT token
|
||||
type NewWeeklyReport struct {
|
||||
// The name of the project, as it appears in the database
|
||||
ProjectName string
|
||||
ProjectName string `json:"projectName"`
|
||||
// The week number
|
||||
Week int
|
||||
Week int `json:"week"`
|
||||
// Total time spent on development
|
||||
DevelopmentTime int
|
||||
DevelopmentTime int `json:"developmentTime"`
|
||||
// Total time spent in meetings
|
||||
MeetingTime int
|
||||
MeetingTime int `json:"meetingTime"`
|
||||
// Total time spent on administrative tasks
|
||||
AdminTime int
|
||||
AdminTime int `json:"adminTime"`
|
||||
// Total time spent on personal projects
|
||||
OwnWorkTime int
|
||||
OwnWorkTime int `json:"ownWorkTime"`
|
||||
// Total time spent on studying
|
||||
StudyTime int
|
||||
StudyTime int `json:"studyTime"`
|
||||
// Total time spent on testing
|
||||
TestingTime int
|
||||
TestingTime int `json:"testingTime"`
|
||||
}
|
||||
|
|
26
testing.py
26
testing.py
|
@ -11,7 +11,7 @@ def randomString(len=10):
|
|||
|
||||
# Defined once per test run
|
||||
username = randomString()
|
||||
token = None
|
||||
projectName = randomString()
|
||||
|
||||
# The base URL of the API
|
||||
base_url = "http://localhost:8080"
|
||||
|
@ -20,6 +20,7 @@ base_url = "http://localhost:8080"
|
|||
registerPath = base_url + "/api/register"
|
||||
loginPath = base_url + "/api/login"
|
||||
addProjectPath = base_url + "/api/project"
|
||||
submitReportPath = base_url + "/api/submitReport"
|
||||
|
||||
|
||||
# Posts the username and password to the register endpoint
|
||||
|
@ -58,7 +59,6 @@ def test_create_user():
|
|||
def test_add_project():
|
||||
loginResponse = login(username, "always_same")
|
||||
token = loginResponse.json()["token"]
|
||||
projectName = randomString()
|
||||
response = requests.post(
|
||||
addProjectPath,
|
||||
json={"name": projectName, "description": "This is a project"},
|
||||
|
@ -69,7 +69,29 @@ def test_add_project():
|
|||
print("Add project successful")
|
||||
|
||||
|
||||
def test_submit_report():
|
||||
token = login(username, "always_same").json()["token"]
|
||||
response = requests.post(
|
||||
submitReportPath,
|
||||
json={
|
||||
"projectName": "report1",
|
||||
"week": 1,
|
||||
"developmentTime": 10,
|
||||
"meetingTime": 5,
|
||||
"adminTime": 5,
|
||||
"ownWorkTime": 10,
|
||||
"studyTime": 10,
|
||||
"testingTime": 10,
|
||||
},
|
||||
headers={"Authorization": "Bearer " + token},
|
||||
)
|
||||
print(response.text)
|
||||
assert response.status_code == 200, "Submit report failed"
|
||||
print("Submit report successful")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
test_create_user()
|
||||
test_login()
|
||||
test_add_project()
|
||||
test_submit_report()
|
||||
|
|
Loading…
Reference in a new issue