v0.2.12-pre.002-fix.001
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
// file: crates/ksp-app-solprices-desk/tests/desktop_contract.rs
|
||||
// version: 1
|
||||
// version: 2
|
||||
|
||||
//! Desktop scaffold contract audits for SOL Prices Desk `0.2.12-pre.002`.
|
||||
//! Desktop scaffold and shared-template contract audits for SOL Prices Desk `0.2.12-pre.002` and its fixes.
|
||||
|
||||
fn app_root() -> std::path::PathBuf {
|
||||
return std::path::PathBuf::from(env!("CARGO_MANIFEST_DIR"));
|
||||
@@ -37,7 +37,9 @@ fn pre_002_shell_uses_reserved_ports_windows_and_owned_backend_paths() {
|
||||
let tauri = read_json(root.join("tauri.conf.json").as_path());
|
||||
assert_eq!(tauri.pointer("/productName").and_then(serde_json::Value::as_str), std::option::Option::Some("KSP SOL Prices Desk"));
|
||||
assert_eq!(tauri.pointer("/identifier").and_then(serde_json::Value::as_str), std::option::Option::Some("com.sasedev.ksp-app-solprices-desk"));
|
||||
assert_eq!(tauri.pointer("/version").and_then(serde_json::Value::as_str), std::option::Option::Some("0.2.12-pre.2"));
|
||||
assert_eq!(tauri.pointer("/version").and_then(serde_json::Value::as_str), std::option::Option::Some("0.2.12-pre.2.fix.1"));
|
||||
let package = read_json(root.join("package.json").as_path());
|
||||
assert_eq!(package.pointer("/version").and_then(serde_json::Value::as_str), std::option::Option::Some("0.2.12-pre.2.fix.1"));
|
||||
assert_eq!(tauri.pointer("/build/devUrl").and_then(serde_json::Value::as_str), std::option::Option::Some("http://localhost:1434"));
|
||||
assert_eq!(tauri.pointer("/build/beforeDevCommand/script").and_then(serde_json::Value::as_str), std::option::Option::Some("npm run dev"));
|
||||
assert_eq!(tauri.pointer("/build/beforeDevCommand/cwd").and_then(serde_json::Value::as_str), std::option::Option::Some("."));
|
||||
@@ -75,7 +77,8 @@ fn pre_002_package_is_mixed_lib_bin_and_frontend_is_scaffold_only() {
|
||||
let lib_rs = read_text(root.join("src/lib.rs").as_path());
|
||||
assert!(lib_rs.contains("pub use self::tauri::run"));
|
||||
let tauri_rs = read_text(root.join("src/tauri.rs").as_path());
|
||||
assert!(tauri_rs.contains("tauri::generate_handler![emit_frontend_log, runtime_status, splash_frontend_ready]"));
|
||||
assert!(tauri_rs.contains("get_runtime_status"));
|
||||
assert!(!tauri_rs.contains("fn runtime_status("));
|
||||
let main_html = read_text(root.join("frontend/main.html").as_path());
|
||||
assert!(main_html.contains("data-view=\"prices\""));
|
||||
assert!(main_html.contains("data-view=\"diagnostics\""));
|
||||
@@ -98,3 +101,50 @@ fn pre_002_packaging_contains_current_ten_config_resources_only() {
|
||||
assert!(tauri_source.contains("ksp_config_lib::prepare_packaged_runtime"));
|
||||
assert!(tauri_source.contains("std::env::set_current_dir(layout.runtime_root())"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn pre_002_fix_001_reuses_the_common_ksp_desktop_template() {
|
||||
let root = app_root();
|
||||
let package = read_text(root.join("package.json").as_path());
|
||||
for dependency in ["@fltsci/tauri-plugin-tracing", "@fortawesome/fontawesome-free", "@tauri-apps/api", "bootstrap", "resize-observer-polyfill", "simplebar"]
|
||||
{
|
||||
assert!(package.contains(dependency), "missing common frontend dependency {dependency}");
|
||||
}
|
||||
let main_typescript = read_text(root.join("frontend/ts/main.ts").as_path());
|
||||
assert!(main_typescript.contains(r#"import ResizeObserver from "resize-observer-polyfill""#));
|
||||
assert!(main_typescript.contains(".ResizeObserver = ResizeObserver"));
|
||||
assert!(main_typescript.contains("getCurrentWindow().label"));
|
||||
assert!(main_typescript.contains(r#""get_runtime_status""#));
|
||||
let main_html = read_text(root.join("frontend/main.html").as_path());
|
||||
assert!(main_html.contains(r#"<footer class="app-footer bg-dark text-light">"#));
|
||||
assert!(main_html.contains(r#"class="app-placeholder""#));
|
||||
assert!(main_html.contains(r#"class="row mb-0 app-runtime-list""#));
|
||||
assert!(!main_html.contains("runtimeVersionBadge"));
|
||||
let splash_html = read_text(root.join("frontend/splash.html").as_path());
|
||||
assert!(splash_html.contains("<title>KSP SOL Prices Desk — Chargement</title>"));
|
||||
let splash_scss = read_text(root.join("frontend/sass/splash.scss").as_path());
|
||||
assert!(splash_scss.contains("DOS_Amazigh.ttf"));
|
||||
assert!(splash_scss.contains(r#"font-family: "Dos Amazigh", sans-serif"#));
|
||||
let font_manifest = read_text(root.join("frontend/fonts/README.md").as_path());
|
||||
assert!(font_manifest.contains("a01ff4b5a0d699db7cefcf5336bf0e379ff6fbf0d096087571a13c8782f9aa02"));
|
||||
let font = std::fs::read(root.join("frontend/fonts/DOS_Amazigh.ttf"));
|
||||
let config_font = std::fs::read(root.join("../ksp-app-config-desk/frontend/fonts/DOS_Amazigh.ttf"));
|
||||
let wallet_font = std::fs::read(root.join("../ksp-app-wallet-desk/frontend/fonts/DOS_Amazigh.ttf"));
|
||||
assert!(font.is_ok());
|
||||
assert!(config_font.is_ok());
|
||||
assert!(wallet_font.is_ok());
|
||||
if let (std::result::Result::Ok(font), std::result::Result::Ok(config_font), std::result::Result::Ok(wallet_font)) = (font, config_font, wallet_font) {
|
||||
assert_eq!(font, config_font);
|
||||
assert_eq!(font, wallet_font);
|
||||
}
|
||||
for relative in ["_bootswatch.scss", "_fontawesome.scss", "_simplebar.scss", "_variables.scss", "main.scss", "splash.scss"] {
|
||||
let sol = read_text(root.join("frontend/sass").join(relative).as_path());
|
||||
let config = read_text(root.join("../ksp-app-config-desk/frontend/sass").join(relative).as_path());
|
||||
let wallet = read_text(root.join("../ksp-app-wallet-desk/frontend/sass").join(relative).as_path());
|
||||
let sol_body = sol.lines().skip(3).collect::<std::vec::Vec<_>>().join("\n");
|
||||
let config_body = config.lines().skip(3).collect::<std::vec::Vec<_>>().join("\n");
|
||||
let wallet_body = wallet.lines().skip(3).collect::<std::vec::Vec<_>>().join("\n");
|
||||
assert_eq!(sol_body, config_body, "SOL Prices Desk diverges from Config Desk template in {relative}");
|
||||
assert_eq!(sol_body, wallet_body, "SOL Prices Desk diverges from Wallet Desk template in {relative}");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user