Files
purewhiter--mobilegym/tests/xMediaDirectFirst.test.ts
wehub-resource-sync 2114b14ee0
Sync main into demo / sync (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:35:26 +08:00

36 lines
1.3 KiB
TypeScript

import React from 'react';
import { renderToStaticMarkup } from 'react-dom/server';
import { describe, expect, it, vi } from 'vitest';
vi.mock('@/os/useAppStrings', () => ({
useAppStrings: () => ({
media_image_load_failed: 'Image failed',
media_video_load_failed: 'Video failed',
media_video_open_new_window: 'Open',
}),
}));
describe('X media direct loading', () => {
it('renders twimg images directly before trying the proxy fallback', async () => {
const { XImage } = await import('../apps/X/components/XMedia');
const src = 'https://pbs.twimg.com/media/GhV2n2da4AAuy9E.jpg';
const html = renderToStaticMarkup(React.createElement(XImage, { src, alt: 'post' }));
expect(html).toContain(`src="${src}"`);
expect(html).not.toContain('/api/gw/proxy');
});
it('renders twimg videos and posters directly before trying the proxy fallback', async () => {
const { XVideo } = await import('../apps/X/components/XMedia');
const src = 'https://video.twimg.com/ext_tw_video/sample.mp4';
const poster = 'https://pbs.twimg.com/media/GhV2n2da4AAuy9E.jpg';
const html = renderToStaticMarkup(React.createElement(XVideo, { src, poster, autoLoad: true }));
expect(html).toContain(`src="${src}"`);
expect(html).toContain(`poster="${poster}"`);
expect(html).not.toContain('/api/gw/proxy');
});
});