elif_http/testing/
assertions.rs

1//! Custom test assertions for HTTP testing
2
3use crate::{errors::HttpError, response::ElifStatusCode, ElifResponse};
4
5pub trait HttpAssertions {
6    fn assert_ok(&self);
7    fn assert_status(&self, expected: ElifStatusCode);
8    fn assert_json_contains(&self, key: &str, value: &str);
9}
10
11impl HttpAssertions for ElifResponse {
12    fn assert_ok(&self) {
13        self.assert_status(ElifStatusCode::OK);
14    }
15
16    fn assert_status(&self, expected: ElifStatusCode) {
17        assert_eq!(self.status_code(), expected, "Response status mismatch");
18    }
19
20    fn assert_json_contains(&self, _key: &str, _value: &str) {
21        // Future implementation for JSON assertion
22    }
23}
24
25pub trait ErrorAssertions {
26    fn assert_error_code(&self, expected: &str);
27    fn assert_status_code(&self, expected: ElifStatusCode);
28}
29
30impl ErrorAssertions for HttpError {
31    fn assert_error_code(&self, expected: &str) {
32        assert_eq!(self.error_code(), expected, "Error code mismatch");
33    }
34
35    fn assert_status_code(&self, expected: ElifStatusCode) {
36        assert_eq!(self.status_code(), expected, "Error status code mismatch");
37    }
38}