summaryrefslogtreecommitdiff
path: root/handlers_test.go
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2026-06-21 13:30:06 +0200
committerxengineering <me@xengineering.eu>2026-06-21 14:33:19 +0200
commit97516f00e4206823f8c4485449f0080823ac5e35 (patch)
tree9e32c3442e53f08972b8f5674c27c74253863b66 /handlers_test.go
parent7ab03af3f662c90b1868f5ef14e70f443b2d91cd (diff)
downloadfinserv-97516f00e4206823f8c4485449f0080823ac5e35.tar
finserv-97516f00e4206823f8c4485449f0080823ac5e35.tar.zst
finserv-97516f00e4206823f8c4485449f0080823ac5e35.zip
Add authenticate HTTP handler
Diffstat (limited to 'handlers_test.go')
-rw-r--r--handlers_test.go30
1 files changed, 30 insertions, 0 deletions
diff --git a/handlers_test.go b/handlers_test.go
index 3e226d0..c539b60 100644
--- a/handlers_test.go
+++ b/handlers_test.go
@@ -84,3 +84,33 @@ func TestHTTPRegister(t *testing.T) {
testHandler(t, register, cases, setup)
}
+
+func TestHTTPAuthenticate(t *testing.T) {
+ cases := []httpCase{
+ {"basic", "POST", []byte(`{"username":"testuser","password":"mypass"}`), []byte(""), http.StatusOK},
+ {"missing-password", "POST", []byte(`{"username":"testuser"}`), []byte(""), http.StatusBadRequest},
+ {"missing-username", "POST", []byte(`{"password":"mypass"}`), []byte(""), http.StatusBadRequest},
+ {"unknown-field", "POST", []byte(`{"username":"testuser","password":"mypass","foo":"bar"}`), []byte(""), http.StatusBadRequest},
+ {"invalid-json", "POST", []byte(`{username":"testuser","password":"mypass"}`), []byte(""), http.StatusBadRequest},
+ {"wrong-username", "POST", []byte(`{"username":"wronguser","password":"mypass"}`), []byte(""), http.StatusUnauthorized},
+ {"wrong-password", "POST", []byte(`{"username":"testuser","password":"wrongpass"}`), []byte(""), http.StatusUnauthorized},
+ }
+
+ setup := func(t *testing.T) *sql.DB {
+ db, _ := emptyDB(t)
+
+ err := MigrateToLatest(db)
+ if err != nil {
+ t.Fatalf("Could not migrate test database: %v", err)
+ }
+
+ err = Register(db, "testuser", "mypass")
+ if err != nil {
+ t.Fatalf("Failed to register test user: %v", err)
+ }
+
+ return db
+ }
+
+ testHandler(t, authenticate, cases, setup)
+}