50 lines
1.7 KiB
TypeScript
50 lines
1.7 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import {
|
|
youthCompilationIssueMessage,
|
|
youthTaskIssueMessage,
|
|
} from '@/pages/ImageCanvas/youth-issue-copy';
|
|
|
|
describe('youth AI Design issue copy', () => {
|
|
it('uses code and path instead of exposing a compiler message', () => {
|
|
const message = youthCompilationIssueMessage({
|
|
code: 'aspect_ratio_required',
|
|
message: 'Choose an aspect ratio supported by the frozen route.',
|
|
severity: 'blocker',
|
|
path: 'output.aspect_ratio',
|
|
});
|
|
|
|
expect(message).toBe('先选择作品形状。');
|
|
expect(message).not.toContain('frozen route');
|
|
});
|
|
|
|
it('keeps unknown compiler codes safe and actionable', () => {
|
|
const message = youthCompilationIssueMessage({
|
|
code: 'future_compiler_rule',
|
|
message: 'Internal compiler graph node 17 is invalid.',
|
|
severity: 'blocker',
|
|
});
|
|
|
|
expect(message).toBe('还需要调整一个关键设置,请打开“精细调整”看看。');
|
|
expect(message).not.toContain('compiler');
|
|
});
|
|
|
|
it('uses a calm fallback for unknown platform task failures', () => {
|
|
const message = youthTaskIssueMessage({
|
|
code: 'future_provider_error',
|
|
message: 'HTTP 422 from provider operation abc.',
|
|
recoveryOwner: 'platform',
|
|
});
|
|
|
|
expect(message).toBe('这次制作没有完成,请调整后再试。');
|
|
expect(message).not.toContain('HTTP');
|
|
});
|
|
|
|
it('explains unknown operator recovery without suggesting a duplicate run', () => {
|
|
expect(youthTaskIssueMessage({
|
|
code: 'future_resolution_case',
|
|
message: 'Manual reconciliation required.',
|
|
recoveryOwner: 'operator',
|
|
})).toBe('平台正在确认这次制作,不会重复制作或重复扣费。');
|
|
});
|
|
});
|