diff options
| author | Sebastian Holmin <sebastian.holmin@mullvad.net> | 2024-04-17 16:01:26 +0200 |
|---|---|---|
| committer | Sebastian Holmin <sebastian.holmin@mullvad.net> | 2024-04-17 16:06:06 +0200 |
| commit | ce59eb20d2cde53a829f891e5e0aca0938e654a8 (patch) | |
| tree | b5e0b3a6083685de454b47e4b936f971d4fb1373 | |
| parent | 1e0a5831e7d206e4c4b05cf7a0c2d1c69757563b (diff) | |
| download | mullvadvpn-ce59eb20d2cde53a829f891e5e0aca0938e654a8.tar.xz mullvadvpn-ce59eb20d2cde53a829f891e5e0aca0938e654a8.zip | |
Add test
| -rw-r--r-- | mullvad-relay-selector/tests/relay_selector.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/mullvad-relay-selector/tests/relay_selector.rs b/mullvad-relay-selector/tests/relay_selector.rs index d92e7a72a9..7cf2329e9a 100644 --- a/mullvad-relay-selector/tests/relay_selector.rs +++ b/mullvad-relay-selector/tests/relay_selector.rs @@ -1296,3 +1296,30 @@ fn test_daita() { ), } } + +/// Check that if the original user query would yield a relay, the result of running the query +/// which is the intersection between the user query and any of the default queries shall never +/// fail. +#[test] +fn valid_user_setting_should_yield_relay() { + // Make a valid user relay constraint + let location = GeographicLocationConstraint::hostname("se", "got", "se9-wireguard"); + let user_query = RelayQueryBuilder::new().location(location.clone()).build(); + let user_constraints = RelayQueryBuilder::new() + .location(location.clone()) + .into_constraint(); + + let config = SelectorConfig { + relay_settings: user_constraints.into(), + ..SelectorConfig::default() + }; + let relay_selector = RelaySelector::from_list(config, RELAYS.clone()); + let user_result = relay_selector.get_relay_by_query(user_query.clone()); + for retry_attempt in 0..RETRY_ORDER.len() { + let post_unification_result = + relay_selector.get_relay(retry_attempt, RuntimeParameters::default()); + if user_result.is_ok() { + assert!(post_unification_result.is_ok(), "Expected Post-unification query to be valid because original query {:#?} yielded a connection configuration", user_query) + } + } +} |
