Skip to content

Commit b56fcc8

Browse files
authored
chore: initial work on no longer using CliArgs longer than we need (#1451)
1 parent b4d0102 commit b56fcc8

File tree

6 files changed

+486
-334
lines changed

6 files changed

+486
-334
lines changed

crates/enterprise/unleash-edge-enterprise-integration-tests/src/lib.rs

Lines changed: 54 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)