Skip to main content

dioxus_auth/
lib.rs

1#![forbid(unsafe_code)]
2#![doc = include_str!("../README.md")]
3
4//! Initial core types for `dioxus-auth`.
5
6mod error;
7mod session;
8mod status;
9mod user;
10
11pub use error::{AuthError, AuthResult};
12pub use session::{Session, SessionId};
13pub use status::AuthStatus;
14pub use user::AuthUser;
15
16#[cfg(test)]
17mod tests {
18    use super::*;
19
20    #[derive(Clone, Debug, Eq, PartialEq)]
21    struct TestUser {
22        id: u64,
23    }
24
25    impl AuthUser for TestUser {
26        type Id = u64;
27
28        fn id(&self) -> Self::Id {
29            self.id
30        }
31    }
32
33    #[test]
34    fn authenticated_status_exposes_user() {
35        let user = TestUser { id: 7 };
36        let status = AuthStatus::Authenticated(user.clone());
37
38        assert!(status.is_authenticated());
39        assert_eq!(status.user(), Some(&user));
40    }
41
42    #[test]
43    fn session_expiration_is_explicit() {
44        let session = Session::new(SessionId::new("session-1"), 7, 100, 200);
45
46        assert!(!session.is_expired_at(199));
47        assert!(session.is_expired_at(200));
48    }
49}