@@ -2,6 +2,8 @@ package authcontrol_test
22
33import (
44 "context"
5+ "net/http"
6+ "net/http/httptest"
57 "testing"
68
79 "github.com/0xsequence/authcontrol"
@@ -57,3 +59,34 @@ func TestDecode(t *testing.T) {
5759 accessKey := authcontrol .GenerateAccessKey (ctx , 237 )
5860 t .Log ("=> k" , accessKey , "| prefix =>" , authcontrol .GetAccessKeyPrefix (accessKey ))
5961}
62+
63+ func TestForwardAccessKeyTransport (t * testing.T ) {
64+ // Create a test server that captures the request headers
65+ var capturedHeaders http.Header
66+ server := httptest .NewServer (http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
67+ capturedHeaders = r .Header .Clone ()
68+ w .WriteHeader (http .StatusOK )
69+ }))
70+ defer server .Close ()
71+
72+ // Create context with access key
73+ accessKey := "test-access-key-123"
74+ ctx := authcontrol .WithAccessKey (context .Background (), accessKey )
75+
76+ // Create HTTP client with ForwardAccessKeyTransport
77+ client := & http.Client {
78+ Transport : authcontrol .ForwardAccessKeyTransport (http .DefaultTransport ),
79+ }
80+
81+ // Create request with the context
82+ req , err := http .NewRequestWithContext (ctx , "GET" , server .URL , nil )
83+ require .NoError (t , err )
84+
85+ // Make the request
86+ resp , err := client .Do (req )
87+ require .NoError (t , err )
88+ defer resp .Body .Close ()
89+
90+ // Verify the access key header was set
91+ require .Equal (t , accessKey , capturedHeaders .Get (authcontrol .HeaderAccessKey ))
92+ }
0 commit comments