v0.1.4-pre.011-fix.001
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// file: crates/ksp-config-lib/tests/ownership.rs
|
||||
// version: 1
|
||||
// version: 2
|
||||
|
||||
//! Workspace ownership audits for KSP application configuration boundaries.
|
||||
|
||||
@@ -94,6 +94,7 @@ fn collect_environment_names(source: &str, names: &mut std::collections::BTreeSe
|
||||
if let std::result::Result::Ok(candidate) = candidate
|
||||
&& candidate.len() > prefix_length
|
||||
&& !candidate.ends_with('_')
|
||||
&& !is_environment_namespace_label(candidate)
|
||||
{
|
||||
names.insert(candidate.to_owned());
|
||||
}
|
||||
@@ -101,6 +102,10 @@ fn collect_environment_names(source: &str, names: &mut std::collections::BTreeSe
|
||||
}
|
||||
}
|
||||
|
||||
fn is_environment_namespace_label(candidate: &str) -> bool {
|
||||
return matches!(candidate, "KSP_PUBLIC" | "KSP_SECRET" | "KSPB_PUBLIC" | "KSPB_SECRET");
|
||||
}
|
||||
|
||||
fn dotenv_example_assignments(source: &str) -> std::collections::BTreeMap<String, usize> {
|
||||
let mut assignments = std::collections::BTreeMap::<String, usize>::new();
|
||||
for (line_index, line) in source.lines().enumerate() {
|
||||
@@ -241,6 +246,30 @@ fn workspace_crates_do_not_hardcode_config_managed_physical_files() {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn environment_name_scanner_ignores_namespace_labels_but_keeps_concrete_names() {
|
||||
let source = r#"
|
||||
const KSP_PUBLIC_LABEL: &str = "KSP_PUBLIC";
|
||||
const KSP_SECRET_LABEL: &str = "KSP_SECRET";
|
||||
const KSPB_PUBLIC_LABEL: &str = "KSPB_PUBLIC";
|
||||
const KSPB_SECRET_LABEL: &str = "KSPB_SECRET";
|
||||
const KSP_PUBLIC_RPC_URL: &str = "KSP_PUBLIC_RPC_URL";
|
||||
const KSP_SECRET_API_KEY: &str = "KSP_SECRET_API_KEY";
|
||||
const KSPB_PUBLIC_ENDPOINT: &str = "KSPB_PUBLIC_ENDPOINT";
|
||||
const KSPB_SECRET_TOKEN: &str = "KSPB_SECRET_TOKEN";
|
||||
"#;
|
||||
let mut names = std::collections::BTreeSet::<String>::new();
|
||||
collect_environment_names(source, &mut names);
|
||||
assert!(!names.contains("KSP_PUBLIC"));
|
||||
assert!(!names.contains("KSP_SECRET"));
|
||||
assert!(!names.contains("KSPB_PUBLIC"));
|
||||
assert!(!names.contains("KSPB_SECRET"));
|
||||
assert!(names.contains("KSP_PUBLIC_RPC_URL"));
|
||||
assert!(names.contains("KSP_SECRET_API_KEY"));
|
||||
assert!(names.contains("KSPB_PUBLIC_ENDPOINT"));
|
||||
assert!(names.contains("KSPB_SECRET_TOKEN"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn dotenv_example_covers_runtime_environment_names_with_comments() {
|
||||
let root = workspace_root();
|
||||
|
||||
Reference in New Issue
Block a user