fix: v0.10.3 GB大小显示修复、主进程同步IO异步化、双进程重复逻辑收敛 - fmtSize补GB档(文件夹对比GB级文件此前显示1024.0MB)、scan-cache读盘与偏好写盘改fs.promises(IPC全异步原则补漏)、TEXT_EXTENSIONS/normDir/IGNORE_RULES_MAX收敛src/shared、安装包排除e2e与playwright配置、扫描进度E2E采样方式修稳
This commit is contained in:
+14
-5
@@ -501,8 +501,9 @@ test.describe('文件夹对比(主进程真实扫描链路)', () => {
|
||||
const { mkdir, writeFile: wf } = await import('fs/promises')
|
||||
await mkdir(leftDir, { recursive: true })
|
||||
await mkdir(rightDir, { recursive: true })
|
||||
// 2000 个大小一致条目需读内容比对(125 个并发批次),进度事件可见窗口足够
|
||||
for (let i = 0; i < 2000; i++) {
|
||||
// 4000 个大小一致条目需读内容比对(250 个并发批次):快机上比对窗口约数百毫秒,
|
||||
// 进度文本存在时间足够被轮询采样抓到(2000 条在快机上仅 ~120ms,采样易错过)
|
||||
for (let i = 0; i < 4000; i++) {
|
||||
const name = `f${String(i).padStart(4, '0')}.txt`
|
||||
await wf(join(leftDir, name), `L${i}`)
|
||||
await wf(join(rightDir, name), `R${i}`)
|
||||
@@ -511,15 +512,23 @@ test.describe('文件夹对比(主进程真实扫描链路)', () => {
|
||||
const { app, window } = await launchApp()
|
||||
await stubOpenDialogSeq(app, [[leftDir], [rightDir]])
|
||||
await window.getByRole('button', { name: '对比文件夹' }).click()
|
||||
// 瞬态进度文案:轮询抓取扫描期间的遮罩文本(完成后遮罩消失)
|
||||
// 瞬态进度文案:轮询抓取扫描期间的遮罩文本(完成后遮罩消失)。
|
||||
// evaluate 直读 DOM:遮罩消失后 querySelector 返回空串立即结束本轮采样,
|
||||
// 避免 locator.textContent() 的自动重试在元素消失后阻塞 10s 吞掉后续采样窗口;
|
||||
// intervals 前密后疏,抓住数百毫秒级的瞬态窗口
|
||||
await expect
|
||||
.poll(
|
||||
async () =>
|
||||
/已比对 \d+ \/ 2000/.test((await window.locator('.computing-overlay').textContent()) ?? '')
|
||||
/已比对 \d+ \/ 4000/.test(
|
||||
(await window.evaluate(
|
||||
() => document.querySelector('.computing-overlay')?.textContent ?? ''
|
||||
)) ?? ''
|
||||
),
|
||||
{ intervals: [50, 100] }
|
||||
)
|
||||
.toBe(true)
|
||||
// 扫描完成:全量判定与遮罩消失
|
||||
await expect(window.getByText('不同 2000')).toBeVisible()
|
||||
await expect(window.getByText('不同 4000')).toBeVisible()
|
||||
await expect(window.locator('.computing-overlay')).toHaveCount(0)
|
||||
await app.close()
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user