import {expect, it} from 'vitest'; import {renderToStaticMarkup} from 'react-dom/server'; import {sanitizePayloadForPublish, FactStatus, SourceType} from '@o2o/shared'; import {SiteProvider} from '@site/lib/site-context'; import {MOONLIGHT_STAY_PAYLOAD} from '@site/fixtures/moonlight-stay'; import {EssentialInfoSection} from './EssentialInfoSection'; function fixture(confirmed = true) { const payload = structuredClone(MOONLIGHT_STAY_PAYLOAD); payload.facts = []; payload.links = [{ channel: 1, title: 'NOL', url: 'https://nol.yanolja.com/stay/domestic/10068088', confirmed, stayGuide: { policy: '체크인 15:00 체크아웃 11:00\n전 연령 동일 1인당 2만원', service: '주방\n욕조', reservation: '- 반려동물 입실금지\n', }, }]; return payload; } it('renders guides without facts, before booking actions, preserving line breaks and escaping HTML', () => { const payload = fixture(); const html = renderToStaticMarkup(); expect(html).toContain('예약 전 확인'); expect(html).toContain('체크인 15:00 체크아웃 11:00\n전 연령 동일 1인당 2만원'); expect(html).toContain('주방\n욕조'); expect(html).toContain('반려동물 입실금지'); expect(html).toContain('whitespace-pre-line'); expect(html).toContain('<script>'); expect(html).not.toContain('