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())
|
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 {
|
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())
|
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
|
// This is what should be submitted to the server, the username will be derived from the JWT token
|
||||||
type NewWeeklyReport struct {
|
type NewWeeklyReport struct {
|
||||||
// The name of the project, as it appears in the database
|
// The name of the project, as it appears in the database
|
||||||
ProjectName string
|
ProjectName string `json:"projectName"`
|
||||||
// The week number
|
// The week number
|
||||||
Week int
|
Week int `json:"week"`
|
||||||
// Total time spent on development
|
// Total time spent on development
|
||||||
DevelopmentTime int
|
DevelopmentTime int `json:"developmentTime"`
|
||||||
// Total time spent in meetings
|
// Total time spent in meetings
|
||||||
MeetingTime int
|
MeetingTime int `json:"meetingTime"`
|
||||||
// Total time spent on administrative tasks
|
// Total time spent on administrative tasks
|
||||||
AdminTime int
|
AdminTime int `json:"adminTime"`
|
||||||
// Total time spent on personal projects
|
// Total time spent on personal projects
|
||||||
OwnWorkTime int
|
OwnWorkTime int `json:"ownWorkTime"`
|
||||||
// Total time spent on studying
|
// Total time spent on studying
|
||||||
StudyTime int
|
StudyTime int `json:"studyTime"`
|
||||||
// Total time spent on testing
|
// 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
|
# Defined once per test run
|
||||||
username = randomString()
|
username = randomString()
|
||||||
token = None
|
projectName = randomString()
|
||||||
|
|
||||||
# The base URL of the API
|
# The base URL of the API
|
||||||
base_url = "http://localhost:8080"
|
base_url = "http://localhost:8080"
|
||||||
|
@ -20,6 +20,7 @@ base_url = "http://localhost:8080"
|
||||||
registerPath = base_url + "/api/register"
|
registerPath = base_url + "/api/register"
|
||||||
loginPath = base_url + "/api/login"
|
loginPath = base_url + "/api/login"
|
||||||
addProjectPath = base_url + "/api/project"
|
addProjectPath = base_url + "/api/project"
|
||||||
|
submitReportPath = base_url + "/api/submitReport"
|
||||||
|
|
||||||
|
|
||||||
# Posts the username and password to the register endpoint
|
# Posts the username and password to the register endpoint
|
||||||
|
@ -58,7 +59,6 @@ def test_create_user():
|
||||||
def test_add_project():
|
def test_add_project():
|
||||||
loginResponse = login(username, "always_same")
|
loginResponse = login(username, "always_same")
|
||||||
token = loginResponse.json()["token"]
|
token = loginResponse.json()["token"]
|
||||||
projectName = randomString()
|
|
||||||
response = requests.post(
|
response = requests.post(
|
||||||
addProjectPath,
|
addProjectPath,
|
||||||
json={"name": projectName, "description": "This is a project"},
|
json={"name": projectName, "description": "This is a project"},
|
||||||
|
@ -69,7 +69,29 @@ def test_add_project():
|
||||||
print("Add project successful")
|
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__":
|
if __name__ == "__main__":
|
||||||
test_create_user()
|
test_create_user()
|
||||||
test_login()
|
test_login()
|
||||||
test_add_project()
|
test_add_project()
|
||||||
|
test_submit_report()
|
||||||
|
|
Loading…
Reference in a new issue