@@ -20,7 +20,8 @@ suite() ->
2020
2121all () ->
2222 [package_test , release_test , replace_test , user_test , owner_test , keys_test , auth_test , short_url_test ,
23- oauth_device_flow_test , oauth_token_exchange_test , oauth_refresh_token_test , oauth_revoke_test ].
23+ oauth_device_flow_test , oauth_token_exchange_test , oauth_refresh_token_test , oauth_revoke_test ,
24+ publish_with_expect_header_test , publish_without_expect_header_test ].
2425
2526package_test (_Config ) ->
2627 {ok , {200 , _ , Package }} = hex_api_package :get (? CONFIG , <<" ecto" >>),
@@ -45,7 +46,9 @@ release_test(_Config) ->
4546 ok .
4647
4748publish_test (_Config ) ->
48- {ok , {200 , _ , Release }} = hex_api_release :publish (? CONFIG , <<" dummy_tarball" >>),
49+ Metadata = #{<<" name" >> => <<" ecto" >>, <<" version" >> => <<" 1.0.0" >>},
50+ {ok , #{tarball := Tarball }} = hex_tarball :create (Metadata , []),
51+ {ok , {200 , _ , Release }} = hex_api_release :publish (? CONFIG , Tarball ),
4952 #{<<" version" >> := <<" 1.0.0" >>, <<" requirements" >> := Requirements } = Release ,
5053 #{
5154 <<" decimal" >> := #{
@@ -55,7 +58,9 @@ publish_test(_Config) ->
5558 ok .
5659
5760replace_test (_Config ) ->
58- {ok , {201 , _ , Release }} = hex_api_release :publish (? CONFIG , <<" dummy_tarball" >>, [
61+ Metadata = #{<<" name" >> => <<" ecto" >>, <<" version" >> => <<" 1.0.0" >>},
62+ {ok , #{tarball := Tarball }} = hex_tarball :create (Metadata , []),
63+ {ok , {201 , _ , Release }} = hex_api_release :publish (? CONFIG , Tarball , [
5964 {replace , true }
6065 ]),
6166 #{<<" version" >> := <<" 1.0.0" >>, <<" requirements" >> := Requirements } = Release ,
@@ -168,3 +173,25 @@ oauth_revoke_test(_Config) ->
168173 NonExistentToken = <<" non_existent_token" >>,
169174 {ok , {200 , _ , nil }} = hex_api_oauth :revoke_token (? CONFIG , ClientId , NonExistentToken ),
170175 ok .
176+
177+ publish_with_expect_header_test (_Config ) ->
178+ % Test that send_100_continue => true includes Expect: 100-continue header
179+ Metadata = #{<<" name" >> => <<" expect_test" >>, <<" version" >> => <<" 1.0.0" >>},
180+ {ok , #{tarball := Tarball }} = hex_tarball :create (Metadata , []),
181+
182+ % Default config has send_100_continue => true
183+ Config = ? CONFIG ,
184+ {ok , {200 , _ , Release }} = hex_api_release :publish (Config , Tarball ),
185+ #{<<" version" >> := <<" 1.0.0" >>} = Release ,
186+ ok .
187+
188+ publish_without_expect_header_test (_Config ) ->
189+ % Test that send_100_continue => false does not include Expect header
190+ Metadata = #{<<" name" >> => <<" no_expect_test" >>, <<" version" >> => <<" 1.0.0" >>},
191+ {ok , #{tarball := Tarball }} = hex_tarball :create (Metadata , []),
192+
193+ % Explicitly disable send_100_continue
194+ Config = maps :put (send_100_continue , false , ? CONFIG ),
195+ {ok , {200 , _ , Release }} = hex_api_release :publish (Config , Tarball ),
196+ #{<<" version" >> := <<" 1.0.0" >>} = Release ,
197+ ok .
0 commit comments