38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { createElement } from 'react';
|
|
import { renderToStaticMarkup } from 'react-dom/server';
|
|
import { describe, expect, it, vi } from 'vitest';
|
|
import { EditElementsCard } from '@/components/edit/AgentPanel/edit-elements-tool-ui';
|
|
|
|
vi.mock('@/lib/store/stage', () => ({
|
|
useStageStore: (selector: (state: { scenes: unknown[] }) => unknown) => selector({ scenes: [] }),
|
|
}));
|
|
|
|
vi.mock('@/lib/hooks/use-i18n', () => ({
|
|
useI18n: () => ({
|
|
t: (key: string) =>
|
|
({
|
|
'edit.editElements.title': '编辑元素',
|
|
'edit.editElements.editing': '编辑中',
|
|
'edit.editElements.notApplied': '未应用',
|
|
'edit.editElements.applied': '已应用',
|
|
'edit.agent.stopped': '已停止',
|
|
})[key] ?? key,
|
|
}),
|
|
}));
|
|
|
|
describe('ToolCard', () => {
|
|
it('does not render a raw English refusal reason in localized UI', () => {
|
|
const html = renderToStaticMarkup(
|
|
createElement(EditElementsCard, {
|
|
running: false,
|
|
stopped: false,
|
|
failed: true,
|
|
sceneId: 's1',
|
|
}),
|
|
);
|
|
|
|
expect(html).toContain('未应用');
|
|
expect(html).not.toMatch(/locked|refuseReason/);
|
|
});
|
|
});
|