Files
zeekay b90ee3f34a fix: drop passport-oauth2 from external so static require lands in cjs
When passport-oauth2 was external, tsup emitted __require("passport-oauth2")
(dynamic-require wrapper) in dist/passport.cjs. Downstream bundlers
(esbuild, webpack) cannot trace through __require — the team monorepo
ships a single bundle.js without node_modules and hit
MODULE_NOT_FOUND at runtime.

Removing passport-oauth2 from external lets tsup emit a static
require('passport-oauth2') (still externalized via the dependencies
field, so the SDK doesn't inline it — but esbuild can now resolve it
statically from the consumer's node_modules). 0.9.3 ships this fix.
2026-05-14 11:17:52 -07:00

65 lines
1.7 KiB
Go

// Copyright 2026 Hanzo AI.
// Licensed under the Apache License, Version 2.0.
package tenant
import (
"net/http"
"net/http/httptest"
"testing"
)
func TestHeaderVerifierOK(t *testing.T) {
r := httptest.NewRequest(http.MethodGet, "/", nil)
r.Header.Set("X-Org-Id", "acme")
r.Header.Set("X-User-Id", "u-1")
r.Header.Set("X-User-Email", "[email protected]")
id, err := HeaderVerifier{}.Verify(r)
if err != nil {
t.Fatalf("unexpected err: %v", err)
}
if id.Org != "acme" || id.UserID != "u-1" || id.Email != "[email protected]" {
t.Fatalf("bad identity: %+v", id)
}
}
func TestHeaderVerifierMissing(t *testing.T) {
r := httptest.NewRequest(http.MethodGet, "/", nil)
if _, err := (HeaderVerifier{}).Verify(r); err != ErrUnauthenticated {
t.Fatalf("want ErrUnauthenticated, got %v", err)
}
}
func TestRequireMiddleware(t *testing.T) {
called := false
next := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
called = true
id, ok := FromContext(r.Context())
if !ok || id.Org != "acme" {
t.Fatalf("missing identity in ctx: %+v", id)
}
w.WriteHeader(http.StatusOK)
})
h := Require(HeaderVerifier{}, next)
// Authed
r := httptest.NewRequest(http.MethodGet, "/", nil)
r.Header.Set("X-Org-Id", "acme")
r.Header.Set("X-User-Id", "u-1")
w := httptest.NewRecorder()
h.ServeHTTP(w, r)
if w.Code != http.StatusOK || !called {
t.Fatalf("authed call failed: code=%d called=%v", w.Code, called)
}
// Unauthed
called = false
r2 := httptest.NewRequest(http.MethodGet, "/", nil)
w2 := httptest.NewRecorder()
h.ServeHTTP(w2, r2)
if w2.Code != http.StatusUnauthorized || called {
t.Fatalf("unauthed should 401: code=%d called=%v", w2.Code, called)
}
}