chore(m197): 三处拆文件守 400 行硬线(复审 r1 后新增内容把三个文件顶过线)

- `core/src/setting/keys.rs` 396(原 400 → 我的 +15 到 415):`download.proxy_mode` /
  `proxy_url` / `gh_proxy` 三键搬进新 `keys/proxy.rs`(`specs()` + 一句「空串 ≠ 关」的守卫),
  主表留一行 `.with_all(proxy::specs())`——与 `font` / `update` 同一种形状。
- `core/tests/download/engine_mock_test.rs` 407 → 364:404 那条用例整条搬进
  `tests/download/engine_mock/not_found.rs`(`#[path]` 子模块,仍是 `engine_mock` 这个 target)。
- `pages/settings/java/downloads/tests.rs` 423 → 313:gh-proxy 两条守卫搬进
  `downloads/tests/gh_proxy.rs`(`#[path = "tests/gh_proxy.rs"]`)。

纯搬移 + 一条新单测(`keys/proxy.rs` 的「空串 = 跟随内置默认,不是关」);行为不变。
This commit is contained in:
AskaEth committed 2026-11-08 21:42:15 +08:00
1 parent a14b00aced
commit 7b79d5c397
6 files changed
+274 -191

No files matched your search

+6 -25
View File
@@ -37,8 +37,10 @@ pub const JAVA_INSTALL_ROOT_UNSET: &str = "";
/// 必须同一份集合(setting 层不依赖 game 层),一致性由 `tests/setting/java_install_keys.rs` 守。
pub const JDK_VENDORS: &[&str] = &["temurin", "oracle", "microsoft", "zulu", "termux"];
/// 拆到各自文件的键域:中文字体 CDN(M168)/ 自更新(M161)。主表各留一行登记。
/// 拆到各自文件的键域:中文字体 CDN(M168)/ 自更新(M161)/ 代理与 gh-proxy(M197)。
/// 主表各留一行登记。
pub mod font;
pub mod proxy;
pub mod update;
/// launcher.json 当前 schema 版本。
@@ -132,30 +134,9 @@ pub fn launcher_schema() -> SettingSchema {
AiPolicy::audited(),
"镜像偏好:auto(健康度评分)/ official(官方源优先)/ mirror(镜像优先)",
))
.with(SettingSpec::enumeration(
"download.proxy_mode",
"none",
PROXY_MODES,
AiPolicy::sensitive(),
"代理模式:none / system / manual",
))
.with(SettingSpec::text(
"download.proxy_url",
"",
512,
AiPolicy::sensitive(),
"manual 代理地址(如 http://127.0.0.1:7890)",
))
// M197:gh-proxy 前缀的用户覆盖。语义在 `core::download::region`:
// 空串 = 跟随内置默认(镜像表里的 gh-proxy.com,且只有镜像优先/国内判定才启用);
// `off` = 明确关掉;其余非空值 = 用这个前缀覆盖。
.with(SettingSpec::text(
"download.gh_proxy",
"",
256,
AiPolicy::sensitive(),
"GitHub 下载的加速前缀(gh-proxy)。留空 = 跟随内置默认(镜像表里的 gh-proxy.com,仅镜像优先/国内判定时启用);填 off 关闭;填一个 URL 前缀则覆盖它",
))
// M197:代理与 gh-proxy 三键(`download.proxy_mode` / `proxy_url` / `gh_proxy`)搬到
// [`proxy`]——主表这一段的注释也一起搬过去,见那个模块的表格。
.with_all(proxy::specs())
.with(SettingSpec::path(
"java.selected_path",
AiPolicy::sensitive(),