From 0bf84e28863627ef4d4f4ffab28182af6a63a91f Mon Sep 17 00:00:00 2001 From: Suzumiya Date: Sun, 4 Oct 2026 00:39:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E9=99=A4=20AGC=20=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=AF=B9=20HOME=20=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E7=9A=84=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - export.rs:npm_export_tests 的 2 条用例(npm_package_contains_dist_project_root_assets_and_publish_readme、本批新增的 built_project_publish_payload_includes_uploaded_assets_and_prefers_dist_assets)不再用 std::env::var("HOME") 拼临时根,改用仓库既有约定的 crate::tests::canonical_test_tempdir - 动机:Windows 只设 USERPROFILE、不设 HOME 时,std::env::var("HOME").unwrap() 会以 NotPresent panic;改后与本批另 5 条 publish_export_tests 的临时根口径一致 - 未动断言:两条用例的断言与语义保持不变,只替换临时根来源(canonical_test_tempdir 同样返回 tempfile::TempDir,root.path() 用法不变) - 验证(同一命令 cargo test --locked --manifest-path apps/ai-game-creator-shell/src-tauri/Cargo.toml --bin genarrative-ai-game-creator-shell -- --test-threads=1 project::export::):HOME 未设置(env -u HOME)→ exit 0,test result: ok. 12 passed; 0 failed;HOME=C:/Users/dongy → exit 0,test result: ok. 12 passed; 0 failed - 顺带核对:project/verification.rs 仍有 1 处同名 HOME 写法,属其它模块范围,本次不动 --- .../src-tauri/src/project/export.rs | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/apps/ai-game-creator-shell/src-tauri/src/project/export.rs b/apps/ai-game-creator-shell/src-tauri/src/project/export.rs index d55fdcd59..1937bb784 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/project/export.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/project/export.rs @@ -934,9 +934,9 @@ mod npm_export_tests { #[test] fn npm_package_contains_dist_project_root_assets_and_publish_readme() { - let base = PathBuf::from(std::env::var("HOME").unwrap()).join("data/tmp"); - fs::create_dir_all(&base).unwrap(); - let root = tempfile::tempdir_in(base).unwrap(); + // 仓库约定的跨平台临时根(基于 std::env::temp_dir()):不依赖 HOME, + // Windows 上只有 USERPROFILE 时同样可跑。 + let root = crate::tests::canonical_test_tempdir("agc-npm-export-"); for directory in [ "dist/assets/uploads", "assets/uploads", @@ -993,9 +993,8 @@ mod npm_export_tests { #[test] fn built_project_publish_payload_includes_uploaded_assets_and_prefers_dist_assets() { - let base = PathBuf::from(std::env::var("HOME").unwrap()).join("data/tmp"); - fs::create_dir_all(&base).unwrap(); - let root = tempfile::tempdir_in(base).unwrap(); + // 与同批另 5 条 publish_export_tests 同口径:用仓库的跨平台临时根,不依赖 HOME。 + let root = crate::tests::canonical_test_tempdir("agc-publish-payload-"); for directory in [ "dist/assets/uploads", "assets/uploads",