use rabbitmq_http_client::{
blocking_api::Client,
responses::{FeatureFlagStability, FeatureFlagState},
};
use crate::test_helpers::{
PASSWORD, USERNAME, endpoint, expected_stable_version_feature_flag,
rabbitmq_version_is_at_least,
};
#[test]
fn test_blocking_list_feature_flags() {
let endpoint = endpoint();
let rc = Client::new(&endpoint, USERNAME, PASSWORD);
let Some(expected_ff) = expected_stable_version_feature_flag() else {
return;
};
let result = rc.list_feature_flags();
assert!(result.is_ok());
let vec = result.unwrap();
assert!(
vec.0
.into_iter()
.any(|ff| ff.name == expected_ff && ff.stability == FeatureFlagStability::Stable)
);
}
#[test]
fn test_blocking_enable_a_feature_flag() {
let endpoint = endpoint();
let rc = Client::new(&endpoint, USERNAME, PASSWORD);
if !rabbitmq_version_is_at_least(4, 0, 0) {
return;
}
let ff_name = "detailed_queues_endpoint";
let result1 = rc.enable_feature_flag(ff_name);
assert!(result1.is_ok());
let result2 = rc.list_feature_flags();
assert!(result2.is_ok());
let vec = result2.unwrap();
assert!(
vec.0
.into_iter()
.any(|ff| ff.name == ff_name && ff.state == FeatureFlagState::Enabled)
);
}
#[test]
fn test_blocking_enable_all_stable_feature_flags() {
let endpoint = endpoint();
let rc = Client::new(&endpoint, USERNAME, PASSWORD);
let Some(expected_ff) = expected_stable_version_feature_flag() else {
return;
};
let result1 = rc.enable_all_stable_feature_flags();
assert!(result1.is_ok());
let result2 = rc.list_feature_flags();
assert!(result2.is_ok());
let vec = result2.unwrap();
assert!(
vec.0
.into_iter()
.any(|ff| ff.name == expected_ff && ff.state == FeatureFlagState::Enabled)
);
}