use crate::{http::Request, MatchType::ToHave, Matcher, TypedMatcher};
pub fn query(value: &str) -> Query {
let regex = regex::Regex::new(value);
match regex {
Ok(regex) => Query(regex),
Err(_) => panic!("Invalid regex pattern"),
}
}
pub struct Query(regex::Regex);
impl Matcher<Request> for Query {
fn matches(&self, value: &Request) -> bool {
self.0
.is_match(value.path())
}
fn description(&self) -> String {
format!("query matching {:?}", self.0)
}
}
impl TypedMatcher<Request> for Query {
fn matcher_type(&self) -> crate::MatchType {
ToHave
}
}