Added GetAllUsersApplication and corresponding test
This commit is contained in:
parent
0e1ea15cc9
commit
676d6637a2
2 changed files with 77 additions and 0 deletions
|
@ -24,6 +24,7 @@ type Database interface {
|
||||||
AddUserToProject(username string, projectname string, role string) error
|
AddUserToProject(username string, projectname string, role string) error
|
||||||
ChangeUserRole(username string, projectname string, role string) error
|
ChangeUserRole(username string, projectname string, role string) error
|
||||||
GetAllUsersProject(projectname string) ([]UserProjectMember, error)
|
GetAllUsersProject(projectname string) ([]UserProjectMember, error)
|
||||||
|
GetAllUsersApplication() ([]string, error)
|
||||||
}
|
}
|
||||||
|
|
||||||
// This struct is a wrapper type that holds the database connection
|
// This struct is a wrapper type that holds the database connection
|
||||||
|
@ -175,6 +176,36 @@ func (d *Db) GetAllUsersProject(projectname string) ([]UserProjectMember, error)
|
||||||
return users, nil
|
return users, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetAllUsersApplication retrieves all usernames from the database
|
||||||
|
func (d *Db) GetAllUsersApplication() ([]string, error) {
|
||||||
|
// Define the SQL query to fetch all usernames
|
||||||
|
query := `
|
||||||
|
SELECT username FROM users
|
||||||
|
`
|
||||||
|
|
||||||
|
// Execute the query
|
||||||
|
rows, err := d.Queryx(query)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
defer rows.Close()
|
||||||
|
|
||||||
|
// Iterate over the rows and populate the result slice
|
||||||
|
var usernames []string
|
||||||
|
for rows.Next() {
|
||||||
|
var username string
|
||||||
|
if err := rows.Scan(&username); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
usernames = append(usernames, username)
|
||||||
|
}
|
||||||
|
if err := rows.Err(); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return usernames, nil
|
||||||
|
}
|
||||||
|
|
||||||
// Reads a directory of migration files and applies them to the database.
|
// Reads a directory of migration files and applies them to the database.
|
||||||
// This will eventually be used on an embedded directory
|
// This will eventually be used on an embedded directory
|
||||||
func (d *Db) Migrate(dirname string) error {
|
func (d *Db) Migrate(dirname string) error {
|
||||||
|
|
|
@ -240,3 +240,49 @@ func TestGetAllUsersProject(t *testing.T) {
|
||||||
t.Error("User user not found")
|
t.Error("User user not found")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestGetAllUsersApplication(t *testing.T) {
|
||||||
|
db, err := setupState()
|
||||||
|
if err != nil {
|
||||||
|
t.Error("setupState failed:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = db.AddUser("testuser1", "password")
|
||||||
|
if err != nil {
|
||||||
|
t.Error("AddUser failed:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
err = db.AddUser("testuser2", "password")
|
||||||
|
if err != nil {
|
||||||
|
t.Error("AddUser failed:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
users, err := db.GetAllUsersApplication()
|
||||||
|
if err != nil {
|
||||||
|
t.Error("GetAllUsersApplication failed:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if both users are returned
|
||||||
|
if len(users) != 2 {
|
||||||
|
t.Errorf("Expected 2 users, got %d", len(users))
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the test users are included in the list
|
||||||
|
foundTestUser1 := false
|
||||||
|
foundTestUser2 := false
|
||||||
|
for _, user := range users {
|
||||||
|
if user == "testuser1" {
|
||||||
|
foundTestUser1 = true
|
||||||
|
}
|
||||||
|
if user == "testuser2" {
|
||||||
|
foundTestUser2 = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !foundTestUser1 {
|
||||||
|
t.Error("testuser1 not found")
|
||||||
|
}
|
||||||
|
if !foundTestUser2 {
|
||||||
|
t.Error("testuser2 not found")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue