14oqjtsnb: Play trending video answers as video with thumbnail fallback
This commit is contained in:
@@ -13,7 +13,7 @@ const expert = (o: Partial<DiscoverExpert> = {}): DiscoverExpert => ({
|
||||
});
|
||||
const minnect = (o: Partial<DiscoverMinnect> = {}): DiscoverMinnect => ({
|
||||
id: 9, question: "How do I price?", views: 1234, thumbnailUrl: "https://x/t.jpg",
|
||||
audio: { url: "https://x/a.mp3", duration: 30, waveform: null },
|
||||
media: { kind: "audio", url: "https://x/a.mp3", duration: 30, waveform: null },
|
||||
expert: { slug: "ann", displayName: "Ann Lee", pictureUrl: null, byline: null, rating: null }, ...o,
|
||||
});
|
||||
const html = (el: ReturnType<typeof createElement>) => renderToStaticMarkup(el);
|
||||
@@ -51,9 +51,28 @@ describe("TrendingMinnectsRail", () => {
|
||||
expect(out).toContain('src="https://x/a.mp3"');
|
||||
expect(out).toContain("t.jpg");
|
||||
});
|
||||
it("renders a video with poster for video answers, no audio element", () => {
|
||||
const url = "https://valuentainment-quick-questions-prod.s3.amazonaws.com/a.mov?X-Amz-Signature=abc";
|
||||
const out = html(createElement(TrendingMinnectsRail, {
|
||||
minnects: [minnect({ media: { kind: "video", url, duration: 9, waveform: null } })],
|
||||
}));
|
||||
expect(out).toContain("<video");
|
||||
expect(out).toContain("controls");
|
||||
expect(out).toContain("preload=\"none\"");
|
||||
expect(out).toContain("X-Amz-Signature=abc");
|
||||
expect(out).toContain('poster="https://x/t.jpg"');
|
||||
expect(out).not.toContain("<audio");
|
||||
expect(out).not.toContain("autoPlay");
|
||||
});
|
||||
it("has no media element for a missing url but keeps the thumbnail", () => {
|
||||
const out = html(createElement(TrendingMinnectsRail, { minnects: [minnect({ media: null })] }));
|
||||
expect(out).not.toContain("<audio");
|
||||
expect(out).not.toContain("<video");
|
||||
expect(out).toContain("minnect-thumb");
|
||||
});
|
||||
it("has no audio element or thumbnail when those are missing", () => {
|
||||
const out = html(createElement(TrendingMinnectsRail, {
|
||||
minnects: [minnect({ audio: { url: null, duration: null, waveform: null }, thumbnailUrl: null, question: null, views: null })],
|
||||
minnects: [minnect({ media: null, thumbnailUrl: null, question: null, views: null })],
|
||||
}));
|
||||
expect(out).not.toContain("<audio");
|
||||
expect(out).not.toContain("minnect-thumb");
|
||||
|
||||
Reference in New Issue
Block a user