@@ -28,6 +28,18 @@ def test_sync_transport_rejects_non_string_header_pairs():
2828 SyncTransport (api_key = "test-key" , headers = {"X-Correlation-Id" : 123 }) # type: ignore[dict-item]
2929
3030
31+ def test_sync_transport_rejects_empty_header_name ():
32+ with pytest .raises (HyperbrowserError , match = "header names must not be empty" ):
33+ SyncTransport (api_key = "test-key" , headers = {" " : "value" })
34+
35+
36+ def test_sync_transport_rejects_header_newline_values ():
37+ with pytest .raises (
38+ HyperbrowserError , match = "headers must not contain newline characters"
39+ ):
40+ SyncTransport (api_key = "test-key" , headers = {"X-Correlation-Id" : "bad\n value" })
41+
42+
3143def test_async_transport_accepts_custom_headers ():
3244 async def run () -> None :
3345 transport = AsyncTransport (
@@ -49,6 +61,18 @@ def test_async_transport_rejects_non_string_header_pairs():
4961 AsyncTransport (api_key = "test-key" , headers = {"X-Correlation-Id" : 123 }) # type: ignore[dict-item]
5062
5163
64+ def test_async_transport_rejects_empty_header_name ():
65+ with pytest .raises (HyperbrowserError , match = "header names must not be empty" ):
66+ AsyncTransport (api_key = "test-key" , headers = {" " : "value" })
67+
68+
69+ def test_async_transport_rejects_header_newline_values ():
70+ with pytest .raises (
71+ HyperbrowserError , match = "headers must not contain newline characters"
72+ ):
73+ AsyncTransport (api_key = "test-key" , headers = {"X-Correlation-Id" : "bad\n value" })
74+
75+
5276def test_sync_client_config_headers_are_applied_to_transport ():
5377 client = Hyperbrowser (
5478 config = ClientConfig (api_key = "test-key" , headers = {"X-Team-Trace" : "team-1" })
0 commit comments