home ~ projects ~ socials

Test A Vec Of &str With rstest In Rust

Quick note until I can write more up, but this is how I'm testing to valid a vec of &str in Rust using rstest:

#[rstest]
#[case("alfa", &["alfa"], "")]
#[case("alfa bravo", &["alfa", " ", "bravo"], "")]
#[case("alfa    bravo", &["alfa", " ", "bravo"], "")]
#[case("alfa\nbravo", &["alfa", " ", "bravo"], "")]
#[case("alfa\n\nbravo", &["alfa"], "\n\nbravo")]
#[case("alfa~bravo", &["alfa", "~", "bravo"], "")]
#[case("alfa|bravo", &["alfa", "|", "bravo"], "")]
#[case("alfa||bravo", &["alfa", "||", "bravo"], "")]
#[case("alfa:bravo", &["alfa", ":", "bravo"], "")]
#[case("alfa::bravo", &["alfa", "::", "bravo"], "")]
#[case("alfa~~bravo~~", &["alfa"], "~~bravo~~")]
#[case("alfa ~~bravo~~", &["alfa", " "], "~~bravo~~")]
fn plain_text_span_for_block(#[case] source: &str, #[case] got: &[&str], #[case] remainder: &str) {
    let matcher = (remainder, got.to_vec());
    let parsed = plain_text_span_for_block_paragraph(source).unwrap();
    assert_eq!(matcher, parsed);
}
-- end of line --