firebase_admin_auth_rs/
lib.rs1mod header_parser;
2mod jwk;
3pub mod jwk_auth;
4mod verifier;
5
6#[cfg(test)]
7mod tests {
8 use crate::jwk::{Jwk, KeyResponse};
9 use wiremock::matchers::{method, path};
10 use wiremock::{Mock, MockServer, ResponseTemplate};
11
12 pub const MAXAGE: u64 = 20045;
13 pub const PATH: &'static str = "/test";
14 pub fn get_test_keys() -> Vec<Jwk> {
15 vec![
16 Jwk {
17 alg: "RS256".to_string(),
18 kid: "kid-0".to_string(),
19 e: "AQAB".to_string(),
20 n: "n-string".to_string(),
21 kty: "RSA".to_string(),
22 r#use: "sig".to_string(),
23 },
24 Jwk {
25 e: "AQAB".to_string(),
26 kty: "RSA".to_string(),
27 n: "n-string".to_string(),
28 kid: "kid-1".to_string(),
29 alg: "RS256".to_string(),
30 r#use: "sig".to_string(),
31 },
32 ]
33 }
34 pub async fn get_mock_server() -> MockServer {
35 let mock_server = MockServer::start().await;
36
37 Mock::given(method("GET"))
38 .and(path(PATH))
39 .respond_with(
40 ResponseTemplate::new(200)
41 .insert_header(
42 "Cache-Control",
43 &format!("public, max-age={}, must-revalidate, no-transform", MAXAGE)
44 as &str,
45 )
46 .set_body_json(KeyResponse {
47 keys: get_test_keys(),
48 }),
49 )
50 .mount(&mock_server)
51 .await;
52
53 mock_server
54 }
55
56 pub async fn get_mock_server_invalid_response() -> MockServer {
57 let mock_server = MockServer::start().await;
58
59 Mock::given(method("GET"))
60 .and(path(PATH))
61 .respond_with(ResponseTemplate::new(200))
62 .mount(&mock_server)
63 .await;
64
65 mock_server
66 }
67
68 pub fn get_mock_url(mock_server: &MockServer) -> String {
69 format!("{}{}", mock_server.uri(), PATH)
70 }
71}