Skip to content

Commit 6c3d967

Browse files
committed
Added a JWT failure unit test
1 parent dc73c62 commit 6c3d967

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

tests/tests/signer_jwt_auth.rs

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,52 @@ async fn test_signer_jwt_auth_success() -> Result<()> {
7575

7676
Ok(())
7777
}
78+
79+
#[tokio::test]
80+
async fn test_signer_jwt_auth_fail() -> Result<()> {
81+
setup_test_env();
82+
let chain = Chain::Hoodi;
83+
84+
// Mock JWT secrets
85+
let module_id = ModuleId(JWT_MODULE.to_string());
86+
let mut jwts = HashMap::new();
87+
jwts.insert(module_id.clone(), JWT_SECRET.to_string());
88+
89+
// Create a signer config
90+
let loader = SignerLoader::ValidatorsDir {
91+
keys_path: "data/keystores/keys".into(),
92+
secrets_path: "data/keystores/secrets".into(),
93+
format: ValidatorKeysFormat::Lighthouse,
94+
};
95+
let config = get_signer_config(loader);
96+
let host = config.host;
97+
let port = config.port;
98+
let start_config = get_start_signer_config(config, chain, jwts);
99+
100+
// Run the Signer
101+
let server_handle = tokio::spawn(SigningService::run(start_config));
102+
103+
// Make sure the server is running
104+
tokio::time::sleep(Duration::from_millis(100)).await;
105+
if server_handle.is_finished() {
106+
return Err(eyre::eyre!(
107+
"Signer service failed to start: {}",
108+
server_handle.await.unwrap_err()
109+
));
110+
}
111+
112+
// Create a JWT header
113+
let jwt = create_jwt(&module_id, "incorrect secret")?;
114+
115+
// Run a pubkeys request
116+
let client = reqwest::Client::new();
117+
let url = format!("http://{}:{}{}", host, port, GET_PUBKEYS_PATH);
118+
let response = client.get(&url).bearer_auth(jwt).send().await?;
119+
assert!(response.status().is_client_error(), "Failed to authenticate with JWT");
120+
info!(
121+
"Server returned expected error code {} for invalid JWT: {}",
122+
response.status(),
123+
response.text().await.unwrap_or_else(|_| "No response body".to_string())
124+
);
125+
Ok(())
126+
}

0 commit comments

Comments
 (0)