Skip to main content

zendriver_cloudflare/
error.rs

1//! Cloudflare-bypass errors.
2
3#[derive(Debug, thiserror::Error)]
4#[non_exhaustive]
5pub enum CloudflareError {
6    #[error("no Turnstile challenge detected")]
7    NoChallenge,
8
9    #[error("clearance timed out")]
10    ClearanceTimeout,
11
12    #[error("call failed: {0}")]
13    Call(#[from] zendriver_transport::CallError),
14
15    #[error("JS error: {0}")]
16    JsError(String),
17}
18
19#[cfg(test)]
20#[allow(clippy::panic, clippy::unwrap_used)]
21mod tests {
22    use super::*;
23
24    #[test]
25    fn display_no_challenge() {
26        let e = CloudflareError::NoChallenge;
27        assert_eq!(e.to_string(), "no Turnstile challenge detected");
28    }
29
30    #[test]
31    fn display_clearance_timeout() {
32        let e = CloudflareError::ClearanceTimeout;
33        assert_eq!(e.to_string(), "clearance timed out");
34    }
35}