import { renderToStaticMarkup } from 'react-dom/server'; import { expect, test } from 'vitest'; import { CustomWorldCreationHub } from './CustomWorldCreationHub'; const noopCreateType = () => {}; test('creation hub draft card renders compiled work summary fields', () => { const html = renderToStaticMarkup( {}} onCreateType={noopCreateType} onOpenDraft={() => {}} onEnterPublished={() => {}} />, ); expect(html).toContain('一个被潮雾切开的列岛世界'); expect(html).toContain('玩家是失职返乡的守灯人'); expect(html).toContain('守灯会与沉船商盟争夺航道解释权'); expect(html).toContain('角色扮演'); expect(html).toContain('拼图'); expect(html).toContain('创意礼物,生活分享'); expect(html).not.toContain('大鱼吃小鱼'); }); test('creation hub renders puzzle works in the same unified list with puzzle tag', () => { const html = renderToStaticMarkup( {}} onCreateType={noopCreateType} onOpenDraft={() => {}} onEnterPublished={() => {}} onOpenPuzzleDetail={() => {}} />, ); expect(html).toContain('潮雾拼图'); expect(html).toContain('拼图'); expect(html).toContain('aria-label="游玩 12次"'); expect(html).toContain('aria-label="改造 3次"'); expect(html).toContain('aria-label="点赞 4赞"'); expect(html).not.toContain('作品号'); expect(html).not.toContain('PZ-PROFILE1'); expect(html).not.toContain('潮雾'); expect(html).not.toContain('港口'); expect(html).not.toContain('我的拼图作品'); }); test('creation hub published work spans full mobile row', () => { const html = renderToStaticMarkup( {}} onCreateType={noopCreateType} onOpenDraft={() => {}} onEnterPublished={() => {}} onOpenPuzzleDetail={() => {}} />, ); expect(html).toContain('grid-cols-2'); expect(html).toContain('col-span-2 sm:col-span-1'); expect(html).not.toContain('grid-cols-1 gap-3 md:grid-cols-2'); });