Skip to main content

ferridriver_expect/
api_response.rs

1//! `expect(apiResponse).toBeOK()` — synchronous status check on a
2//! captured `ferridriver::http_client::HttpResponse`.
3
4use ferridriver::http_client::HttpResponse;
5
6use crate::AssertionFailure;
7use crate::builder::Expect;
8
9impl Expect<'_, HttpResponse> {
10  pub fn to_be_ok(&self) -> Result<(), AssertionFailure> {
11    let resp = self.subject;
12    let status = resp.status();
13    let pass_raw = (200..300).contains(&status);
14    let pass = if self.is_not { !pass_raw } else { pass_raw };
15    if pass {
16      return Ok(());
17    }
18    let url = resp.url();
19    let status_text = resp.status_text();
20    let not = if self.is_not { ".not" } else { "" };
21    Err(AssertionFailure::new(
22      format!("expect(response){not}.toBeOK() failed"),
23      Some(format!("URL:      {url}\nStatus:   {status} {status_text}")),
24    ))
25  }
26}