File tree Expand file tree Collapse file tree
tests/integration/meteroid_it Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -33,6 +33,30 @@ pub async fn start_rest_server(
3333 store : Store ,
3434 services : Services ,
3535 ready : std:: sync:: Arc < std:: sync:: atomic:: AtomicBool > ,
36+ ) -> Result < ( ) , Box < dyn std:: error:: Error > > {
37+ let listener = TcpListener :: bind ( & config. rest_api_addr )
38+ . await
39+ . expect ( "Could not bind listener" ) ;
40+ start_rest_server_with_listener (
41+ config,
42+ object_store,
43+ stripe_adapter,
44+ store,
45+ services,
46+ ready,
47+ listener,
48+ )
49+ . await
50+ }
51+
52+ pub async fn start_rest_server_with_listener (
53+ config : Config ,
54+ object_store : Arc < dyn ObjectStoreService > ,
55+ stripe_adapter : Arc < Stripe > ,
56+ store : Store ,
57+ services : Services ,
58+ ready : std:: sync:: Arc < std:: sync:: atomic:: AtomicBool > ,
59+ listener : TcpListener ,
3660) -> Result < ( ) , Box < dyn std:: error:: Error > > {
3761 let app_state = AppState {
3862 object_store,
@@ -101,10 +125,6 @@ pub async fn start_rest_server(
101125
102126 tracing:: info!( "Starting REST API on {}" , config. rest_api_addr) ;
103127
104- let listener = TcpListener :: bind ( & config. rest_api_addr )
105- . await
106- . expect ( "Could not bind listener" ) ;
107-
108128 axum:: serve ( listener, app. into_make_service ( ) ) . await ?;
109129
110130 Ok ( ( ) )
Original file line number Diff line number Diff line change @@ -94,7 +94,10 @@ pub async fn start_meteroid_with_port(
9494 usage_client : Arc < dyn UsageClient > ,
9595 mailer : Arc < dyn MailerService > ,
9696) -> MeteroidSetup {
97- let rest_api_addr = helpers:: network:: free_local_socket ( ) . expect ( "Could not get webhook addr" ) ;
97+ let rest_listener = tokio:: net:: TcpListener :: bind ( "127.0.0.1:0" )
98+ . await
99+ . expect ( "Could not bind REST listener" ) ;
100+ let rest_api_addr = rest_listener. local_addr ( ) . expect ( "Could not get REST addr" ) ;
98101
99102 let config = super :: config:: mocked_config (
100103 postgres_connection_string,
@@ -140,13 +143,14 @@ pub async fn start_meteroid_with_port(
140143 let stripe_adapter = Arc :: new ( Stripe { client : stripe } ) ;
141144
142145 let ready = std:: sync:: Arc :: new ( std:: sync:: atomic:: AtomicBool :: new ( true ) ) ;
143- let rest_server = meteroid:: api_rest:: server:: start_rest_server (
146+ let rest_server = meteroid:: api_rest:: server:: start_rest_server_with_listener (
144147 config. clone ( ) ,
145148 in_memory_object_store ( ) ,
146149 stripe_adapter,
147150 store. clone ( ) ,
148151 services. clone ( ) ,
149152 ready,
153+ rest_listener,
150154 ) ;
151155
152156 let join_handle_meteroid = tokio:: spawn ( async move {
You can’t perform that action at this time.
0 commit comments