镜像自地址
https://github.com/lhly/cloud-drive-renamer.git
已同步 2026-10-20 13:47:47 +08:00
fix: skip i18n for raw error texts
这个提交包含在:
父节点
ec172a8762
当前提交
eb53123490
@ -74,9 +74,17 @@ export class VirtualPreviewList extends LitElement {
|
|||||||
* Render a single preview item
|
* Render a single preview item
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
|
private isTranslationCandidate(error: string): boolean {
|
||||||
|
return /^[a-z0-9_]+$/.test(error);
|
||||||
|
}
|
||||||
|
|
||||||
private resolveErrorText(error?: string): string | undefined {
|
private resolveErrorText(error?: string): string | undefined {
|
||||||
if (!error) return undefined;
|
if (!error) return undefined;
|
||||||
|
|
||||||
|
if (!this.isTranslationCandidate(error)) {
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
const translationKey = `error_${error}`;
|
const translationKey = `error_${error}`;
|
||||||
const translated = I18nService.t(translationKey);
|
const translated = I18nService.t(translationKey);
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import { describe, expect, it } from 'vitest';
|
import { describe, expect, it, vi } from 'vitest';
|
||||||
import { VirtualPreviewList } from '../../src/content/components/virtual-preview-list';
|
import { VirtualPreviewList } from '../../src/content/components/virtual-preview-list';
|
||||||
import { I18nService } from '../../src/utils/i18n';
|
import { I18nService } from '../../src/utils/i18n';
|
||||||
|
|
||||||
@ -118,4 +118,35 @@ describe('VirtualPreviewList pending preview mapping', () => {
|
|||||||
|
|
||||||
element.remove();
|
element.remove();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('renders raw error text without warning when given a network error message', async () => {
|
||||||
|
const warnSpy = vi.spyOn(console, 'warn').mockImplementation(() => {});
|
||||||
|
|
||||||
|
const element = new VirtualPreviewList();
|
||||||
|
element.items = [
|
||||||
|
{
|
||||||
|
file: {
|
||||||
|
id: 'file-network',
|
||||||
|
name: 'old-network.mkv',
|
||||||
|
ext: 'mkv',
|
||||||
|
size: 1,
|
||||||
|
mtime: Date.now(),
|
||||||
|
isDir: false,
|
||||||
|
},
|
||||||
|
newName: 'new-network.mkv',
|
||||||
|
conflict: false,
|
||||||
|
error: 'Network error',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
document.body.appendChild(element);
|
||||||
|
await element.updateComplete;
|
||||||
|
|
||||||
|
const textContent = element.shadowRoot?.textContent ?? '';
|
||||||
|
expect(textContent).toContain('Network error');
|
||||||
|
expect(warnSpy).not.toHaveBeenCalled();
|
||||||
|
|
||||||
|
warnSpy.mockRestore();
|
||||||
|
element.remove();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户