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) { func startServer(t *testing.T) {
config := ServerConfig{ config := ServerConfig{
Datasource: ":memory:", Datasource: ":memory:",
Port: "8080", Port: "8181",
Started: make(chan bool), Started: make(chan bool),
} }
go start(t.Context(), &config) go start(t.Context(), &config)
@ -17,8 +17,9 @@ func startServer(t *testing.T) {
func TestGetUsers(t *testing.T) { func TestGetUsers(t *testing.T) {
startServer(t) startServer(t)
e := httpexpect.Default(t, "http://localhost:8080/api") e := httpexpect.Default(t, "http://localhost:8181/api")
e.GET("/users").Expect(). result := e.GET("/users").Expect().Status(200).JSON()
Status(200).JSON(). result.Array().Length().IsEqual(2)
Path("$").Array().Length().IsInt(0) 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 { if err != nil {
log.Fatal(err) log.Fatal(err)
} }
defer db.MustClose()
// Apply migrations // Apply migrations
err = db.MigrateDb(migrations, "migrations") err = db.MigrateDb(migrations, "migrations")
@ -28,9 +27,9 @@ func NewDb(datasource string) *Db {
func (db *Db) GetUsers() ([]User, error) { func (db *Db) GetUsers() ([]User, error) {
var err 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{} user := User{}
err = row.Scan(&user.ID, &user.Name) err = row.Scan(&user.ID, &user.Name)
if err != nil { if err != nil {

View File

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

View File

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