Skip to content

Commit

Permalink
test(twilight-model): Pass ID as &'static str in select_menu test
Browse files Browse the repository at this point in the history
This commit changes the inner `check_select` function in
`message::component::tests::select_menu` to take a vector of select
menu default values *and* the respective &'static str. This allows
removing the previous Box::leak that was necessary to convert a
dynamically generated string into a 'static str slice.
  • Loading branch information
archer-321 committed Oct 31, 2023
1 parent b398c8a commit e33f30f
Showing 1 changed file with 12 additions and 11 deletions.
23 changes: 12 additions & 11 deletions twilight-model/src/channel/message/component/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -943,11 +943,13 @@ mod tests {

#[test]
fn select_menu() {
fn check_select(default_values: Option<Vec<SelectDefaultValue>>) {
fn check_select(default_values: Option<Vec<(SelectDefaultValue, &'static str)>>) {
let select_menu = Component::SelectMenu(SelectMenu {
channel_types: None,
custom_id: String::from("my_select"),
default_values: default_values.clone(),
default_values: default_values
.clone()
.map(|values| values.into_iter().map(|pair| pair.0).collect()),
disabled: false,
kind: SelectMenuType::User,
max_values: None,
Expand All @@ -974,11 +976,7 @@ mod tests {
len: Some(default_values.len()),
},
]);
for value in &default_values {
let id = match value {
SelectDefaultValue::User(id) => id.to_string(),
_ => panic!("unsupported select default value"),
};
for (_, id) in default_values {
tokens.extend_from_slice(&[
Token::Struct {
name: "SelectDefaultValue",
Expand All @@ -991,7 +989,7 @@ mod tests {
},
Token::Str("id"),
Token::NewtypeStruct { name: "Id" },
Token::Str(Box::leak::<'static>(Box::new(id))),
Token::Str(id),
Token::StructEnd,
])
}
Expand All @@ -1006,10 +1004,13 @@ mod tests {
}

check_select(None);
check_select(Some(vec![SelectDefaultValue::User(Id::new(1234))]));
check_select(Some(vec![
check_select(Some(vec![(
SelectDefaultValue::User(Id::new(1234)),
SelectDefaultValue::User(Id::new(5432)),
"1234",
)]));
check_select(Some(vec![
(SelectDefaultValue::User(Id::new(1234)), "1234"),
(SelectDefaultValue::User(Id::new(5432)), "5432"),
]));
}

Expand Down

0 comments on commit e33f30f

Please sign in to comment.