mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-08-28 05:27:41 +00:00
Use static RSA key fixture to fix fabro-github test timeouts
Tests were spawning `openssl genpkey` per test, causing timeouts under nextest's per-process parallelism with the 4s hard-kill limit. Replace with a pre-generated key loaded via include_str!. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
43dc4a04d0
commit
46cecf85ee
2 changed files with 40 additions and 24 deletions
|
|
@ -913,20 +913,8 @@ mod tests {
|
|||
// sign_app_jwt
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
fn test_rsa_key() -> String {
|
||||
use std::process::Command;
|
||||
let output = Command::new("openssl")
|
||||
.args([
|
||||
"genpkey",
|
||||
"-algorithm",
|
||||
"RSA",
|
||||
"-pkeyopt",
|
||||
"rsa_keygen_bits:2048",
|
||||
])
|
||||
.output()
|
||||
.expect("openssl should be available");
|
||||
assert!(output.status.success(), "openssl keygen failed");
|
||||
String::from_utf8(output.stdout).unwrap()
|
||||
fn test_rsa_key() -> &'static str {
|
||||
include_str!("testdata/rsa_private.pem")
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -1165,7 +1153,7 @@ mod tests {
|
|||
let pem = test_rsa_key();
|
||||
let creds = GitHubAppCredentials {
|
||||
app_id: "test".to_string(),
|
||||
private_key_pem: pem,
|
||||
private_key_pem: pem.to_string(),
|
||||
};
|
||||
let result = branch_exists(&creds, "owner", "repo", "my-branch", &server.url()).await;
|
||||
assert_eq!(result.unwrap(), true);
|
||||
|
|
@ -1196,7 +1184,7 @@ mod tests {
|
|||
let pem = test_rsa_key();
|
||||
let creds = GitHubAppCredentials {
|
||||
app_id: "test".to_string(),
|
||||
private_key_pem: pem,
|
||||
private_key_pem: pem.to_string(),
|
||||
};
|
||||
let result = branch_exists(&creds, "owner", "repo", "no-such-branch", &server.url()).await;
|
||||
assert_eq!(result.unwrap(), false);
|
||||
|
|
@ -1227,7 +1215,7 @@ mod tests {
|
|||
let pem = test_rsa_key();
|
||||
let creds = GitHubAppCredentials {
|
||||
app_id: "test".to_string(),
|
||||
private_key_pem: pem,
|
||||
private_key_pem: pem.to_string(),
|
||||
};
|
||||
let result = branch_exists(&creds, "owner", "repo", "broken", &server.url()).await;
|
||||
assert!(result.is_err());
|
||||
|
|
@ -1437,7 +1425,7 @@ mod tests {
|
|||
let pem = test_rsa_key();
|
||||
let creds = GitHubAppCredentials {
|
||||
app_id: "test".to_string(),
|
||||
private_key_pem: pem,
|
||||
private_key_pem: pem.to_string(),
|
||||
};
|
||||
let detail = get_pull_request(&creds, "owner", "repo", 42, &server.url())
|
||||
.await
|
||||
|
|
@ -1479,7 +1467,7 @@ mod tests {
|
|||
let pem = test_rsa_key();
|
||||
let creds = GitHubAppCredentials {
|
||||
app_id: "test".to_string(),
|
||||
private_key_pem: pem,
|
||||
private_key_pem: pem.to_string(),
|
||||
};
|
||||
let err = get_pull_request(&creds, "owner", "repo", 999, &server.url())
|
||||
.await
|
||||
|
|
@ -1518,7 +1506,7 @@ mod tests {
|
|||
let pem = test_rsa_key();
|
||||
let creds = GitHubAppCredentials {
|
||||
app_id: "test".to_string(),
|
||||
private_key_pem: pem,
|
||||
private_key_pem: pem.to_string(),
|
||||
};
|
||||
merge_pull_request(&creds, "owner", "repo", 42, "squash", &server.url())
|
||||
.await
|
||||
|
|
@ -1550,7 +1538,7 @@ mod tests {
|
|||
let pem = test_rsa_key();
|
||||
let creds = GitHubAppCredentials {
|
||||
app_id: "test".to_string(),
|
||||
private_key_pem: pem,
|
||||
private_key_pem: pem.to_string(),
|
||||
};
|
||||
let err = merge_pull_request(&creds, "owner", "repo", 42, "squash", &server.url())
|
||||
.await
|
||||
|
|
@ -1583,7 +1571,7 @@ mod tests {
|
|||
let pem = test_rsa_key();
|
||||
let creds = GitHubAppCredentials {
|
||||
app_id: "test".to_string(),
|
||||
private_key_pem: pem,
|
||||
private_key_pem: pem.to_string(),
|
||||
};
|
||||
let err = merge_pull_request(&creds, "owner", "repo", 42, "squash", &server.url())
|
||||
.await
|
||||
|
|
@ -1621,7 +1609,7 @@ mod tests {
|
|||
let pem = test_rsa_key();
|
||||
let creds = GitHubAppCredentials {
|
||||
app_id: "test".to_string(),
|
||||
private_key_pem: pem,
|
||||
private_key_pem: pem.to_string(),
|
||||
};
|
||||
close_pull_request(&creds, "owner", "repo", 42, &server.url())
|
||||
.await
|
||||
|
|
@ -1653,7 +1641,7 @@ mod tests {
|
|||
let pem = test_rsa_key();
|
||||
let creds = GitHubAppCredentials {
|
||||
app_id: "test".to_string(),
|
||||
private_key_pem: pem,
|
||||
private_key_pem: pem.to_string(),
|
||||
};
|
||||
let err = close_pull_request(&creds, "owner", "repo", 999, &server.url())
|
||||
.await
|
||||
|
|
|
|||
28
lib/crates/fabro-github/src/testdata/rsa_private.pem
vendored
Normal file
28
lib/crates/fabro-github/src/testdata/rsa_private.pem
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDS/REfv+cPQntO
|
||||
fOZiSXxXRdREXUvcyTRmCADWAeRka2NT6nXMgcnG0wxhziRb2fbeJi/NkadJde8l
|
||||
9+VxbLfulGYBRFVIFKWFnzYn95IOoRHcuGL8OkGD65YmGLJ6I98dBDkIXRT+Xu16
|
||||
eEK4OZ2Kgw64rtRZMlvcepiDHKBsfwWbAC1jLJ6U2lmKnq1Gde2W40M67GzKvZhs
|
||||
T1u4HzrPYDzNyB0LRP7hzctnGk8GNCadnjmgdj+tmj0DplF9lZffU4SjL8NfND57
|
||||
E80ChgCpk1acFL+6TGwgxBuRQZ1iDo4dUvUQGBZz7uAqMSmvux/v4wSOMl/DDbPE
|
||||
y8jG5EaDAgMBAAECggEAKrlyOUKr8Gwe+hLSuD53Plj2le1qikf4I10lhjCV5jvU
|
||||
vk5xEjuJ94gPLtMGi88EbZHABlmjTX3jMoYTYTeJu3czfLgwqMr9haRq3AcG/Y1i
|
||||
R5bS/I5za9pN6mL/6TnQWVjcj7QBp0zju/QUVqfcHgtR9NX6TCGldm0g6xPl7HIi
|
||||
ORFEtiKTWR15ucOdJ0DB0RIHwv9jIzaqb+T+MhDwd15HrEZl0wuRGAhVeHqE2Ynl
|
||||
nLfFeB2TD53yhzmi6k26TZpKbG7qQag9egveDoAfafe7YRMo9E7KIbkUDNEgokik
|
||||
JvJzRvMueWsd2djRTasiO69tj0mNPFEZ221t+0lfoQKBgQDp5FLNmdO24vvlDNYd
|
||||
GMgZHNTSW8HcfgS3WFXg7f+qZOZEYXyZeVmByX1s35D0Ujp8igkXy16mtpOmh70v
|
||||
t2GaEgXNzNhcTxPnAKSrjSjKBtNV1SWY0DiiGk2DHfQEn26rwK1i6bM27fJWlCww
|
||||
/fAaxOFPbUrV/fvdbYqrixQ+8wKBgQDm7og5vQ3Mjzop5D8QeuFLezKOLEkY8JOn
|
||||
6RCbWaiwEK9/9uTA07r9jlehx1RRu2M3oqGSGnpl/yCgdCcgu9T0zm4j95dWE5u4
|
||||
GOV0Zi3lcQ5BsTjqxyDg844Jlt7rlZiQmUiRkETcz6nfsrXXGdX6mbg1DBaTqw9d
|
||||
YZaeoz1eMQKBgA5LErhXzzVc97HOsAMFMa0/Ms5MJzO3S8h8kHr3cGlUUzIYlwm1
|
||||
/b9NtemCXBRiNgrIULfwiK89dxZ1Mx2IYmGM+mfSPeKePoQeaPHG5Zg7BI05Qlvt
|
||||
VZiqbNQ3b2Mc7yF12+Kwj3Aq6GVcFrtDuXmZUH+PGUSsicjFWfUTwb/7AoGBALPG
|
||||
YABq37Iukf4ItNuUfY0wVDP/38vthVVDB+2YR80AwE8jGgPPEJPRWwETVt3lviCS
|
||||
l6tQt5Ztna2rnsZJ00fc6DtRxNt6mlAf+Yi6/uHOOGYFnCSRblQQ5rMqY1IM/F8d
|
||||
JTREloc7lqgRzKOudjkHsDKDvZOpqGVu0j2fIOgRAoGAYTXTF8jB3qsh5cZBhE38
|
||||
5W1edlsqkGfShaCBzyobjvLsbnOMF5jyk/o68BfRpTzzQ2m0SfzRKHpyF4yz1UWH
|
||||
SYU0y+9jKyQ1dmYc+D7Y0Y1WHfrSXyp+Ef0k5mGA6ludgg/8/7WvvwjzqphYmmeD
|
||||
cFRd9yhNkVVmuGeSkGej8A0=
|
||||
-----END PRIVATE KEY-----
|
||||
Loading…
Add table
Reference in a new issue