Got /users to work

This commit is contained in:
Sebastiaan de Schaetzen 2025-05-08 10:00:36 +02:00
parent 858cb429d1
commit 7f6a1f2977
4 changed files with 11 additions and 8 deletions

View File

@ -8,7 +8,7 @@ import "github.com/gavv/httpexpect/v2"
func startServer(t *testing.T) {
config := ServerConfig{
Datasource: ":memory:",
Port: "8080",
Port: "8181",
Started: make(chan bool),
}
go start(t.Context(), &config)
@ -17,8 +17,9 @@ func startServer(t *testing.T) {
func TestGetUsers(t *testing.T) {
startServer(t)
e := httpexpect.Default(t, "http://localhost:8080/api")
e.GET("/users").Expect().
Status(200).JSON().
Path("$").Array().Length().IsInt(0)
e := httpexpect.Default(t, "http://localhost:8181/api")
result := e.GET("/users").Expect().Status(200).JSON()
result.Array().Length().IsEqual(2)
result.Path("$[0].name").InList("Seeseemelk", "Huffle")
result.Path("$[1].name").InList("Seeseemelk", "Huffle")
}

View File

@ -15,7 +15,6 @@ func NewDb(datasource string) *Db {
if err != nil {
log.Fatal(err)
}
defer db.MustClose()
// Apply migrations
err = db.MigrateDb(migrations, "migrations")
@ -28,9 +27,9 @@ func NewDb(datasource string) *Db {
func (db *Db) GetUsers() ([]User, error) {
var err error
var users []User
users := make([]User, 0)
for row := range db.db.Query("SELECT id, name FROM users").Range(&err) {
for row := range db.db.Query("select id, name from users").Range(&err) {
user := User{}
err = row.Scan(&user.ID, &user.Name)
if err != nil {

View File

@ -39,6 +39,7 @@ func main() {
func start(ctx context.Context, config *ServerConfig) {
db = NewDb(config.Datasource)
defer db.db.MustClose()
router := gin.Default()
router.GET("/api/users", getUsers)

View File

@ -28,3 +28,5 @@ create table tasks
reward integer not null,
assigned integer
);
insert into users (name) values ('Seeseemelk'), ('Huffle');