import { expect, test } from 'vitest'; import { buildPuzzleWorkCoverSlides, formatPlatformWorkDisplayName, formatPlatformWorkDisplayTags, formatPlatformWorldTime, } from './rpgEntryWorldPresentation'; test('formatPlatformWorldTime formats backend seconds timestamp text as date', () => { expect(formatPlatformWorldTime('1777110165.990127Z')).toBe('2026-04-25'); }); test('formatPlatformWorldTime keeps full year for iso date strings', () => { expect(formatPlatformWorldTime('2026-04-25T12:00:00.000Z')).toBe( '2026-04-25', ); }); test('formatPlatformWorldTime uses utc calendar date for zulu time', () => { expect(formatPlatformWorldTime('2026-04-25T00:30:00.000Z')).toBe( '2026-04-25', ); }); test('formatPlatformWorldTime keeps fallback text for invalid values', () => { expect(formatPlatformWorldTime(null)).toBe('未发布'); expect(formatPlatformWorldTime('not-a-date')).toBe('not-a-date'); }); test('platform work display text limits names and tags by character count', () => { expect(formatPlatformWorkDisplayName('热门高分拼图超长标题')).toBe( '热门高分拼图超长', ); expect(formatPlatformWorkDisplayTags(['超长机关标签', '星桥', '超长机关标签'])).toEqual([ '超长机关', '星桥', ]); }); test('buildPuzzleWorkCoverSlides prefers each level formal image', () => { const slides = buildPuzzleWorkCoverSlides({ workId: 'work-1', profileId: 'profile-1', ownerUserId: 'user-1', authorDisplayName: '玩家', levelName: '第一关', summary: '拼图摘要', themeTags: ['拼图'], coverImageSrc: '/cover.png', publicationStatus: 'published', updatedAt: '2026-04-25T00:00:00.000Z', publishedAt: '2026-04-25T00:00:00.000Z', publishReady: true, levels: [ { levelId: 'level-1', levelName: '石桥', pictureDescription: '石桥画面', selectedCandidateId: 'candidate-2', coverImageSrc: '/level-1-cover.png', coverAssetId: null, generationStatus: 'ready', candidates: [ { candidateId: 'candidate-1', imageSrc: '/level-1-a.png', assetId: 'asset-1', prompt: '', sourceType: 'generated', selected: false, }, { candidateId: 'candidate-2', imageSrc: '/level-1-b.png', assetId: 'asset-2', prompt: '', sourceType: 'generated', selected: false, }, ], }, { levelId: 'level-2', levelName: '星港', pictureDescription: '星港画面', selectedCandidateId: null, coverImageSrc: '/level-2-cover.png', coverAssetId: null, generationStatus: 'ready', candidates: [], }, ], }); expect(slides).toEqual([ { id: 'level-1', imageSrc: '/level-1-b.png', label: '石桥', }, { id: 'level-2', imageSrc: '/level-2-cover.png', label: '星港', }, ]); });