@@ -15,9 +15,11 @@ mod tests {
1515 use std:: sync:: Arc ;
1616 use tokio:: sync:: RwLock ;
1717 use ulid:: Ulid ;
18- use unleash_edge:: edge_builder:: { EdgeStateArgs , build_edge_state, resolve_license} ;
18+ use unleash_edge:: edge_builder:: {
19+ EdgeStateArgs , PersistenceArgs , build_edge_state, resolve_license,
20+ } ;
1921 use unleash_edge_cli:: OtelExporterProtocol :: Grpc ;
20- use unleash_edge_cli:: { AuthHeaders , CliArgs , EdgeArgs , HttpServerArgs } ;
22+ use unleash_edge_cli:: { AuthHeaders , EdgeArgs , LogFormat } ;
2123 use unleash_edge_http_client:: {
2224 ClientMetaInformation , HttpClientArgs , UnleashClient , new_reqwest_client,
2325 } ;
@@ -68,6 +70,10 @@ mod tests {
6870 self . server . server_url ( "/" ) . unwrap ( ) . to_string ( )
6971 }
7072
73+ pub fn as_url ( & self ) -> Url {
74+ self . server . server_url ( "/" ) . unwrap ( )
75+ }
76+
7177 async fn heartbeat ( State ( s) : State < MockState > ) -> impl IntoResponse {
7278 match s. license_result {
7379 Ok ( license_state) => (
@@ -96,67 +102,6 @@ mod tests {
96102 }
97103 }
98104
99- fn mock_cli_args ( ) -> CliArgs {
100- CliArgs {
101- http : HttpServerArgs {
102- port : 3063 ,
103- interface : "127.0.0.1" . to_string ( ) ,
104- base_path : "" . to_string ( ) ,
105- tls : unleash_edge_cli:: TlsOptions {
106- tls_enable : false ,
107- tls_server_key : None ,
108- tls_server_cert : None ,
109- tls_server_port : 3043 ,
110- redirect_http_to_https : false ,
111- } ,
112- cors : unleash_edge_cli:: CorsOptions {
113- cors_origin : None ,
114- cors_allowed_headers : None ,
115- cors_max_age : 172800 ,
116- cors_exposed_headers : None ,
117- cors_methods : None ,
118- } ,
119- allow_list : None ,
120- deny_list : None ,
121- workers : None ,
122- } ,
123- mode : unleash_edge_cli:: EdgeMode :: default ( ) ,
124- instance_id : "test-instance" . to_string ( ) ,
125- client_id : Some ( "test" . to_string ( ) ) ,
126- app_name : "unleash-edge-test" . to_string ( ) ,
127- markdown_help : false ,
128- trust_proxy : unleash_edge_cli:: TrustProxy {
129- trust_proxy : false ,
130- proxy_trusted_servers : vec ! [ ] ,
131- } ,
132- disable_all_endpoint : false ,
133- edge_request_timeout : 5 ,
134- edge_keepalive_timeout : 5 ,
135- log_format : unleash_edge_cli:: LogFormat :: Plain ,
136- auth_headers : AuthHeaders :: default ( ) ,
137- token_header : None ,
138- internal_backstage : unleash_edge_cli:: InternalBackstageArgs {
139- disable_metrics_batch_endpoint : false ,
140- disable_metrics_endpoint : false ,
141- disable_features_endpoint : false ,
142- disable_tokens_endpoint : false ,
143- disable_instance_data_endpoint : false ,
144- } ,
145- sentry_config : unleash_edge_cli:: SentryConfig {
146- sentry_dsn : None ,
147- sentry_tracing_rate : 0.1 ,
148- sentry_debug : false ,
149- sentry_enable_logs : false ,
150- } ,
151- datadog_config : unleash_edge_cli:: DatadogConfig { datadog_url : None } ,
152- otel_config : unleash_edge_cli:: OpenTelemetryConfig {
153- otel_exporter_otlp_endpoint : None ,
154- otel_exporter_otlp_protocol : Grpc ,
155- } ,
156- hosting_type : Some ( Hosting :: EnterpriseSelfHosted ) ,
157- }
158- }
159-
160105 fn build_client ( client_meta_information : & ClientMetaInformation ) -> Client {
161106 new_reqwest_client ( HttpClientArgs {
162107 skip_ssl_verification : false ,
@@ -228,20 +173,40 @@ mod tests {
228173 let ( http_client, client_meta_information, instances_observed_for_app_context) =
229174 build_edge_state_data ( ) ;
230175
231- let args = mock_cli_args ( ) ;
232176 let edge_args = EdgeArgs {
233177 upstream_url : upstream. url ( ) ,
234178 tokens : vec ! [ EdgeToken :: from_str( "*:development.hashyhashhash" ) . unwrap( ) ] ,
235179 ..EdgeArgs :: default ( )
236180 } ;
237181
238182 let maybe_edge_state = build_edge_state ( EdgeStateArgs {
239- args,
240- edge_args,
241183 client_meta_information,
242184 instances_observed_for_app_context,
243185 auth_headers : AuthHeaders :: default ( ) ,
244186 http_client,
187+ hosting_type : Hosting :: SelfHosted ,
188+ client_id : "" . to_string ( ) ,
189+ app_id : Default :: default ( ) ,
190+ otel_endpoint_url : None ,
191+ otel_protocol : Grpc ,
192+ log_format : LogFormat :: Plain ,
193+ upstream_url : upstream. as_url ( ) ,
194+ custom_client_headers : vec ! [ ] ,
195+ tokens : edge_args. tokens . clone ( ) ,
196+ base_path : "" . to_string ( ) ,
197+ http_deny_list : None ,
198+ http_allow_list : None ,
199+ streaming : false ,
200+ delta : false ,
201+ persistence_args : PersistenceArgs :: from ( & edge_args) ,
202+ pretrusted_tokens : None ,
203+ features_refresh_interval : Duration :: seconds ( 30 ) ,
204+ metrics_interval_seconds : 30 ,
205+ token_revalidation_interval_seconds : 30 ,
206+ prometheus_remote_write_url : None ,
207+ prometheus_push_interval : 0 ,
208+ prometheus_username : None ,
209+ prometheus_password : None ,
245210 } )
246211 . await ;
247212
@@ -257,20 +222,40 @@ mod tests {
257222 let ( http_client, client_meta_information, instances_observed_for_app_context) =
258223 build_edge_state_data ( ) ;
259224
260- let args = mock_cli_args ( ) ;
261225 let edge_args = EdgeArgs {
262226 upstream_url : upstream. url ( ) ,
263227 tokens : vec ! [ EdgeToken :: from_str( "*:development.hashyhashhash" ) . unwrap( ) ] ,
264228 ..EdgeArgs :: default ( )
265229 } ;
266230
267231 let maybe_edge_state = build_edge_state ( EdgeStateArgs {
268- args,
269- edge_args,
270232 client_meta_information,
271233 instances_observed_for_app_context,
272234 auth_headers : AuthHeaders :: default ( ) ,
273235 http_client,
236+ hosting_type : Hosting :: SelfHosted ,
237+ client_id : "" . to_string ( ) ,
238+ app_id : Default :: default ( ) ,
239+ otel_endpoint_url : None ,
240+ otel_protocol : Grpc ,
241+ log_format : LogFormat :: Plain ,
242+ upstream_url : upstream. as_url ( ) ,
243+ custom_client_headers : vec ! [ ] ,
244+ tokens : edge_args. tokens . clone ( ) ,
245+ base_path : "" . to_string ( ) ,
246+ http_deny_list : None ,
247+ http_allow_list : None ,
248+ streaming : false ,
249+ delta : false ,
250+ persistence_args : Default :: default ( ) ,
251+ pretrusted_tokens : None ,
252+ features_refresh_interval : Default :: default ( ) ,
253+ metrics_interval_seconds : 30i64 ,
254+ token_revalidation_interval_seconds : 30 ,
255+ prometheus_remote_write_url : None ,
256+ prometheus_push_interval : 0 ,
257+ prometheus_username : None ,
258+ prometheus_password : None ,
274259 } )
275260 . await ;
276261
0 commit comments