补齐AGC跨平台路径确定性回归
Project CI / Backend tests (pull_request) Successful in 2m39s
Project CI / Frontend tests (pull_request) Failing after 21s
Project CI / Repository checks (pull_request) Failing after 43s
Project CI / Native shell tests (pull_request) Failing after 2m52s

新增链接父目录与不存在叶目录的跨平台测试
将临时路径规范化纳入可靠清理边界
同步跨平台路径回归文档与踩坑记录
This commit is contained in:
2026-07-31 14:29:05 +08:00
parent 9406378935
commit 66cf0bcfc8
3 changed files with 24 additions and 3 deletions
@@ -435,8 +435,29 @@ async function runConfigWizardRegressionChecks() {
const testRoot = fs.mkdtempSync(
path.join(os.tmpdir(), 'genarrative-agc-config-check-'),
);
const canonicalTestRoot = fs.realpathSync.native(testRoot);
try {
const canonicalTestRoot = fs.realpathSync.native(testRoot);
const realConfigAncestor = path.join(testRoot, 'real-config-ancestor');
const linkedConfigAncestor = path.join(testRoot, 'linked-config-ancestor');
fs.mkdirSync(realConfigAncestor);
fs.symlinkSync(
realConfigAncestor,
linkedConfigAncestor,
process.platform === 'win32' ? 'junction' : 'dir',
);
const missingLinkedConfigDir = path.join(
linkedConfigAncestor,
'missing-appdata',
);
assert.equal(fs.existsSync(missingLinkedConfigDir), false);
assert.equal(
await assertSafeGameCreatorConfigDestination(missingLinkedConfigDir),
path.join(
fs.realpathSync.native(realConfigAncestor),
'missing-appdata',
),
);
const gitRoot = path.join(testRoot, 'tracked-repository');
const trackedConfigDir = path.join(gitRoot, 'runtime-config');
fs.mkdirSync(trackedConfigDir, { recursive: true });