镜像自地址
https://github.com/lhly/cloud-drive-renamer.git
已同步 2026-10-20 21:57:47 +08:00
新增 OneDrive 个人版适配器、MAIN 桥接、名称校验与冲突检测、目录身份与分页遍历。同步更新三语简介、商店素材、仓库描述及 manifest 域名注册。修复面板键盘冒泡至宿主页面的隔离与工具栏 Escape 作用域。修正 OneDrive 同步结果语义为手动刷新提示, 避免误报同步失败。补全对应单测与浏览器验收脚本。
40 行
1.5 KiB
TypeScript
40 行
1.5 KiB
TypeScript
import { afterEach, describe, expect, it } from 'vitest';
|
|
import { ConfigPanel } from '../../src/content/components/config-panel';
|
|
import { I18nService } from '../../src/utils/i18n';
|
|
|
|
afterEach(() => document.body.replaceChildren());
|
|
|
|
describe('ConfigPanel page sync feedback', () => {
|
|
it('shows manual refresh as a localized notice without a failed state or retry action', async () => {
|
|
const panel = new ConfigPanel();
|
|
panel.finished = true;
|
|
panel.syncSupported = true;
|
|
panel.syncStatus = 'refresh-required';
|
|
document.body.append(panel);
|
|
await panel.updateComplete;
|
|
|
|
const status = panel.shadowRoot!.querySelector('.sync-status');
|
|
expect(status?.textContent?.trim()).toBe(I18nService.t('sync_manual_refresh'));
|
|
expect(status?.classList.contains('failed')).toBe(false);
|
|
expect(panel.shadowRoot!.querySelector('.sync-retry')).toBeNull();
|
|
});
|
|
|
|
it('keeps genuine sync errors visible and retryable', async () => {
|
|
const panel = new ConfigPanel();
|
|
panel.finished = true;
|
|
panel.syncSupported = true;
|
|
panel.syncStatus = 'failed';
|
|
panel.syncMessage = 'Network error';
|
|
document.body.append(panel);
|
|
await panel.updateComplete;
|
|
|
|
expect(panel.shadowRoot!.querySelector('.sync-status.failed')?.textContent).toContain('Network error');
|
|
const retry = panel.shadowRoot!.querySelector<HTMLButtonElement>('.sync-retry');
|
|
expect(retry).not.toBeNull();
|
|
const events: Event[] = [];
|
|
panel.addEventListener('sync', (event) => events.push(event));
|
|
retry!.click();
|
|
expect(events).toHaveLength(1);
|
|
});
|
|
});
|