Merge remote-tracking branch 'origin/dev' into gruppPP

This commit is contained in:
Peter KW 2024-04-17 22:29:45 +02:00
commit 99eb5f17b5
9 changed files with 333 additions and 5 deletions

View file

@ -47,6 +47,8 @@ type Database interface {
GetUserName(id int) (string, error)
UnsignWeeklyReport(reportId int, projectManagerId int) error
DeleteReport(reportID int) error
ChangeProjectName(projectName string, newProjectName string) error
ChangeUserPassword(username string, password string) error
}
// This struct is a wrapper type that holds the database connection
@ -670,3 +672,14 @@ func (d *Db) DeleteReport(reportID int) error {
_, err := d.Exec("DELETE FROM weekly_reports WHERE report_id = ?", reportID)
return err
}
// ChangeProjectName is a handler that changes the name of a project
func (d *Db) ChangeProjectName(projectName string, newProjectName string) error {
_, err := d.Exec("UPDATE projects SET name = ? WHERE name = ?", newProjectName, projectName)
return err
}
func (d *Db) ChangeUserPassword(username string, password string) error {
_, err := d.Exec("UPDATE users SET password = ? WHERE username = ?", password, username)
return err
}

View file

@ -1092,3 +1092,53 @@ func TestDeleteReport(t *testing.T) {
}
}
func TestChangeProjectName(t *testing.T) {
db, err := setupAdvancedState()
if err != nil {
t.Error("setupState failed:", err)
}
// Promote user to Admin
err = db.PromoteToAdmin("demouser")
if err != nil {
t.Error("PromoteToAdmin failed:", err)
}
// Change project name
err = db.ChangeProjectName("projecttest", "newprojectname")
if err != nil {
t.Error("ChangeProjectName failed:", err)
}
// Check if the project name was changed
projects, err := db.GetAllProjects()
if err != nil {
t.Error("GetAllProjects failed:", err)
}
if projects[0].Name != "newprojectname" {
t.Error("ChangeProjectName failed: expected newprojectname, got", projects[0].Name)
}
}
func TestChangeUserPassword(t *testing.T) {
db, err := setupState()
if err != nil {
t.Error("setupState failed:", err)
}
// Add a user
_ = db.AddUser("testuser", "password")
// Change user password
err = db.ChangeUserPassword("testuser", "newpassword")
if err != nil {
t.Error("ChangeUserPassword failed:", err)
}
// Check if the password was changed
if !db.CheckUser("testuser", "newpassword") {
t.Error("ChangeUserPassword failed: password not changed")
}
}