user_route_test.go (1131B)
1 package internal 2 3 import ( 4 "net/http" 5 "net/http/httptest" 6 "testing" 7 ) 8 9 func TestUsernameRoute404WhenMissing(t *testing.T) { 10 t.Parallel() 11 db, err := OpenAtPath(t.Context(), t.TempDir()+"/r.db") 12 if err != nil { 13 t.Fatalf("open db: %v", err) 14 } 15 t.Cleanup(func() { _ = db.Close() }) 16 h, err := NewHandler(db) 17 if err != nil { 18 t.Fatalf("handler: %v", err) 19 } 20 srv := httptest.NewServer(h) 21 defer srv.Close() 22 23 // Missing user should 404 24 resp, _ := http.Get(srv.URL + "/nouser") 25 if resp.StatusCode != http.StatusNotFound { 26 t.Fatalf("expected 404 for /nouser, got %d", resp.StatusCode) 27 } 28 29 // Create a user 30 _, err = db.CreateUser(t.Context(), "alice", "pw") 31 if err != nil { 32 t.Fatalf("create user: %v", err) 33 } 34 // Legacy /{username} route removed: should 404 35 resp2, _ := http.Get(srv.URL + "/alice") 36 if resp2.StatusCode != http.StatusNotFound { 37 t.Fatalf("expected 404 for /alice, got %d", resp2.StatusCode) 38 } 39 // New route /u:{username} should serve the page 40 resp3, _ := http.Get(srv.URL + "/u:alice") 41 if resp3.StatusCode != http.StatusOK { 42 t.Fatalf("expected 200 for /u:alice, got %d", resp3.StatusCode) 43 } 44 }