Co-authored-by: al8763be <al8763be@users.noreply.github.com>

This commit is contained in:
Alexander Ek 2024-03-27 21:18:44 +01:00
parent e1b410c850
commit d4cc556366
8 changed files with 155 additions and 4 deletions

View file

@ -41,6 +41,7 @@ type Database interface {
IsProjectManager(username string, projectname string) (bool, error)
GetProjectTimes(projectName string) (map[string]int, error)
UpdateWeeklyReport(projectName string, userName string, week int, developmentTime int, meetingTime int, adminTime int, ownWorkTime int, studyTime int, testingTime int) error
RemoveProject(projectname string) error
}
// This struct is a wrapper type that holds the database connection
@ -549,3 +550,8 @@ func (d *Db) GetProjectTimes(projectName string) (map[string]int, error) {
return totalTime, nil
}
func (d *Db) RemoveProject(projectname string) error {
_, err := d.Exec("DELETE FROM projects WHERE name = ?", projectname)
return err
}

View file

@ -894,3 +894,33 @@ func TestUpdateWeeklyReport(t *testing.T) {
t.Error("UpdateWeeklyReport failed: report not updated correctly")
}
}
func TestRemoveProject(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)
}
// Remove project
err = db.RemoveProject("projecttest")
if err != nil {
t.Error("RemoveProject failed:", err)
}
// Check if the project was removed
projects, err := db.GetAllProjects()
if err != nil {
t.Error("GetAllProjects failed:", err)
}
if len(projects) != 0 {
t.Error("RemoveProject failed: expected 0, got", len(projects))
}
}