0.0.1-alpha.5.fix.1

This commit is contained in:
2026-09-28 10:02:47 +02:00
parent c17b7068a3
commit a1b56af8ed
23 changed files with 427 additions and 55 deletions

View File

@@ -1,5 +1,5 @@
// file: crates/knowledge-domain-lib/src/lib.rs
// version: 2
// version: 3
//! Shared domain contracts for SaseDev Knowledge.
//!
@@ -11,6 +11,3 @@ mod source;
pub use crate::content_family::ContentFamily;
pub use crate::source::{ContentSource, SourceId, SourceIdError};
#[cfg(test)]
mod unit_tests;

View File

@@ -1,5 +1,5 @@
// file: crates/knowledge-domain-lib/src/source.rs
// version: 2
// version: 3
//! Source identities independent of repository and forge providers.
@@ -66,3 +66,7 @@ impl crate::ContentSource {
return self.family;
}
}
#[cfg(test)]
#[path = "../unit_tests/source.rs"]
mod tests;

View File

@@ -1,5 +1,5 @@
// file: crates/knowledge-domain-lib/src/unit_tests.rs
// version: 2
// file: crates/knowledge-domain-lib/unit_tests/source.rs
// version: 1
#[test]
fn source_id_rejects_empty_values() {

View File

@@ -1,5 +1,5 @@
// file: crates/knowledge-git-api/src/lib.rs
// version: 1
// version: 2
//! Provider-neutral contracts for Git-backed Knowledge sources.
//!
@@ -54,4 +54,5 @@ pub trait GitRepository {
}
#[cfg(test)]
mod unit_tests;
#[path = "../unit_tests/lib.rs"]
mod tests;

View File

@@ -1,4 +1,4 @@
// file: crates/knowledge-git-api/src/unit_tests.rs
// file: crates/knowledge-git-api/unit_tests/lib.rs
// version: 1
#[derive(Debug, Eq, PartialEq)]

View File

@@ -1,5 +1,5 @@
// file: crates/knowledge-sync-api/src/lib.rs
// version: 1
// version: 2
//! Contracts for provider-neutral repository synchronization signals.
//!
@@ -54,4 +54,5 @@ pub trait RepositoryEventSource {
}
#[cfg(test)]
mod unit_tests;
#[path = "../unit_tests/lib.rs"]
mod tests;

View File

@@ -1,4 +1,4 @@
// file: crates/knowledge-sync-api/src/unit_tests.rs
// file: crates/knowledge-sync-api/unit_tests/lib.rs
// version: 1
#[derive(Debug, Eq, PartialEq)]

View File

@@ -1,5 +1,5 @@
// file: crates/knowledge-web-lib/src/assets.rs
// version: 1
// version: 2
//! Vite development and production asset resolution.
@@ -193,3 +193,7 @@ fn local_static_mount_path(base: &str) -> Option<String> {
}
return Some(format!("{}/assets", normalized.trim_end_matches('/')));
}
#[cfg(test)]
#[path = "../unit_tests/assets.rs"]
mod tests;

View File

@@ -1,5 +1,5 @@
// file: crates/knowledge-web-lib/src/lib.rs
// version: 1
// version: 2
//! Shared Actix Web and Maud composition for the three Knowledge server launchers.
//!
@@ -22,6 +22,3 @@ pub(crate) use self::assets::ViteAssets;
pub(crate) use self::assets::load_assets_from_environment;
/// Internal Maud renderer for the public foundation page.
pub(crate) use self::page::render_index_page;
#[cfg(test)]
mod unit_tests;

View File

@@ -1,5 +1,5 @@
// file: crates/knowledge-web-lib/src/page.rs
// version: 1
// version: 2
//! Maud rendering adapted from the static template-lab contract.
@@ -50,3 +50,7 @@ fn family_slug(family: knowledge_domain_lib::ContentFamily) -> &'static str {
knowledge_domain_lib::ContentFamily::ProjectLocal => return "project-local",
}
}
#[cfg(test)]
#[path = "../unit_tests/page.rs"]
mod tests;

View File

@@ -1,7 +1,7 @@
// file: crates/knowledge-web-lib/src/unit_tests.rs
// file: crates/knowledge-web-lib/unit_tests/assets.rs
// version: 1
//! Unit tests for shared Web composition primitives.
//! Unit tests for Vite asset resolution.
#[test]
fn development_assets_include_vite_client_before_main_entry() {
@@ -50,23 +50,3 @@ fn manifest_requires_the_stable_main_entry() {
let result = crate::ViteAssets::from_manifest_text(manifest, "/", std::path::PathBuf::from("/tmp/knowledge-assets"));
assert!(result.is_err());
}
#[test]
fn maud_page_uses_resolved_assets_and_site_identity() {
let assets = match crate::ViteAssets::from_manifest_text(
r#"{"src/main.ts": {"file": "assets/main.js", "css": ["assets/main.css"], "isEntry": true}}"#,
"/",
std::path::PathBuf::from("/tmp/knowledge-assets"),
) {
Ok(value) => value,
Err(error) => {
assert!(error.is_empty(), "unexpected manifest error: {error}");
return;
},
};
let rendered = crate::render_index_page(crate::ServerSite::Pgr, &assets).into_string();
assert!(rendered.contains("SaseDev Knowledge — PGR"));
assert!(rendered.contains("/assets/main.js"));
assert!(rendered.contains("/assets/main.css"));
assert!(rendered.contains("data-content-family=\"pgr\""));
}

View File

@@ -0,0 +1,24 @@
// file: crates/knowledge-web-lib/unit_tests/page.rs
// version: 1
//! Unit tests for Maud page rendering.
#[test]
fn maud_page_uses_resolved_assets_and_site_identity() {
let assets = match crate::ViteAssets::from_manifest_text(
r#"{"src/main.ts": {"file": "assets/main.js", "css": ["assets/main.css"], "isEntry": true}}"#,
"/",
std::path::PathBuf::from("/tmp/knowledge-assets"),
) {
Ok(value) => value,
Err(error) => {
assert!(error.is_empty(), "unexpected manifest error: {error}");
return;
},
};
let rendered = crate::render_index_page(crate::ServerSite::Pgr, &assets).into_string();
assert!(rendered.contains("SaseDev Knowledge — PGR"));
assert!(rendered.contains("/assets/main.js"));
assert!(rendered.contains("/assets/main.css"));
assert!(rendered.contains("data-content-family=\"pgr\""));
}