Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用 - 添加所有子项目的完整源代码 - 保留原始 .git 为 .git.bak 备份
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
//! Integration tests for ConnectionTestService.
|
||||
//!
|
||||
//! Tests validate input checking, service construction, and error paths.
|
||||
//! Real AWS calls are tested only with fake credentials to verify
|
||||
//! proper error handling (no real accounts needed).
|
||||
|
||||
use nomifun_api_types::{BedrockAuthMethod, BedrockConfig};
|
||||
use nomifun_system::ConnectionTestService;
|
||||
|
||||
fn make_service() -> ConnectionTestService {
|
||||
ConnectionTestService::new(reqwest::Client::new())
|
||||
}
|
||||
|
||||
// ── Bedrock validation ──────────────────────────────────────────────
|
||||
|
||||
#[tokio::test]
|
||||
async fn bedrock_rejects_empty_region() {
|
||||
let svc = make_service();
|
||||
let config = BedrockConfig {
|
||||
auth_method: BedrockAuthMethod::AccessKey,
|
||||
region: "".into(),
|
||||
access_key_id: Some("AKIA".into()),
|
||||
secret_access_key: Some("secret".into()),
|
||||
profile: None,
|
||||
};
|
||||
let err = svc.test_bedrock_connection(config).await.unwrap_err();
|
||||
assert!(err.to_string().contains("region"));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn bedrock_rejects_missing_access_key_id() {
|
||||
let svc = make_service();
|
||||
let config = BedrockConfig {
|
||||
auth_method: BedrockAuthMethod::AccessKey,
|
||||
region: "us-east-1".into(),
|
||||
access_key_id: None,
|
||||
secret_access_key: Some("secret".into()),
|
||||
profile: None,
|
||||
};
|
||||
let err = svc.test_bedrock_connection(config).await.unwrap_err();
|
||||
assert!(err.to_string().contains("accessKeyId"));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn bedrock_rejects_missing_secret_access_key() {
|
||||
let svc = make_service();
|
||||
let config = BedrockConfig {
|
||||
auth_method: BedrockAuthMethod::AccessKey,
|
||||
region: "us-east-1".into(),
|
||||
access_key_id: Some("AKIA".into()),
|
||||
secret_access_key: None,
|
||||
profile: None,
|
||||
};
|
||||
let err = svc.test_bedrock_connection(config).await.unwrap_err();
|
||||
assert!(err.to_string().contains("secretAccessKey"));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn bedrock_rejects_empty_profile() {
|
||||
let svc = make_service();
|
||||
let config = BedrockConfig {
|
||||
auth_method: BedrockAuthMethod::Profile,
|
||||
region: "us-east-1".into(),
|
||||
access_key_id: None,
|
||||
secret_access_key: None,
|
||||
profile: Some("".into()),
|
||||
};
|
||||
let err = svc.test_bedrock_connection(config).await.unwrap_err();
|
||||
assert!(err.to_string().contains("profile"));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn bedrock_rejects_none_profile() {
|
||||
let svc = make_service();
|
||||
let config = BedrockConfig {
|
||||
auth_method: BedrockAuthMethod::Profile,
|
||||
region: "us-east-1".into(),
|
||||
access_key_id: None,
|
||||
secret_access_key: None,
|
||||
profile: None,
|
||||
};
|
||||
let err = svc.test_bedrock_connection(config).await.unwrap_err();
|
||||
assert!(err.to_string().contains("profile"));
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn bedrock_fake_credentials_error() {
|
||||
let svc = make_service();
|
||||
let config = BedrockConfig {
|
||||
auth_method: BedrockAuthMethod::AccessKey,
|
||||
region: "us-east-1".into(),
|
||||
access_key_id: Some("AKIAFAKEKEY1234567890".into()),
|
||||
secret_access_key: Some("fakesecretkey1234567890abcdefgh".into()),
|
||||
profile: None,
|
||||
};
|
||||
// Should fail with credential error, not panic
|
||||
let err = svc.test_bedrock_connection(config).await.unwrap_err();
|
||||
assert!(
|
||||
err.to_string().contains("Bedrock credentials invalid"),
|
||||
"Expected credential error, got: {err}"
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user