Skip to content

Commit 807bfa7

Browse files
committed
test: cover shared TMDB Core metadata enrichment
1 parent fd7de8f commit 807bfa7

1 file changed

Lines changed: 53 additions & 1 deletion

File tree

engine_v2/tests/stream-presentation.test.mjs

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
presentStreamCandidate,
66
normalizeSourceType,
77
} from "../src/stream-presentation.mjs";
8+
import { createTmdbMetadataResolver, normalizeTmdbPayload } from "../src/tmdb-metadata.mjs";
89

910
const facts = normalizeStreamCandidate({
1011
name: "Purstream",
@@ -76,4 +77,55 @@ assert.equal(normalizeSourceType("some provider label"), null);
7677
const badges = buildBadges({ quality: "4K", language: "VFQ", codec: "H.264" });
7778
assert.deepEqual(badges, ["【4K】", "🌐 VFQ", "🎞 H.264"]);
7879

79-
console.log("engine v2 stream presentation tests passed");
80+
const normalizedMovie = normalizeTmdbPayload({
81+
id: 157336,
82+
title: "Interstellar",
83+
original_title: "Interstellar",
84+
release_date: "2014-11-05",
85+
runtime: 169,
86+
alternative_titles: { titles: [{ title: "Interstellar" }] },
87+
release_dates: {
88+
results: [
89+
{ iso_3166_1: "US", release_dates: [{ certification: "PG-13" }] },
90+
{ iso_3166_1: "FR", release_dates: [{ certification: "U" }] },
91+
],
92+
},
93+
}, { mediaType: "movie", request: { tmdbId: "157336" } });
94+
assert.equal(normalizedMovie.runtime, 169);
95+
assert.equal(normalizedMovie.certification, "U");
96+
assert.equal(normalizedMovie.year, 2014);
97+
98+
let requestedUrl = "";
99+
const tmdbResolver = createTmdbMetadataResolver({
100+
apiKey: "test-key",
101+
fetchImpl: async (url) => {
102+
requestedUrl = String(url);
103+
return {
104+
ok: true,
105+
async json() {
106+
return {
107+
id: 95396,
108+
name: "Severance",
109+
original_name: "Severance",
110+
first_air_date: "2022-02-18",
111+
episode_run_time: [50],
112+
alternative_titles: { results: [] },
113+
content_ratings: { results: [{ iso_3166_1: "FR", rating: "12" }] },
114+
};
115+
},
116+
};
117+
},
118+
});
119+
const tvMetadata = await tmdbResolver({ tmdbId: "95396", mediaType: "tv", title: "Severance" });
120+
assert.match(requestedUrl, /\/tv\/95396/);
121+
assert.match(requestedUrl, /language=fr-FR/);
122+
assert.equal(tvMetadata.runtime, 50);
123+
assert.equal(tvMetadata.certification, "12");
124+
assert.equal(tvMetadata.source, "tmdb");
125+
126+
const fallbackWithoutId = await tmdbResolver({ mediaType: "movie", title: "Sinners", year: 2025 });
127+
assert.equal(fallbackWithoutId.title, "Sinners");
128+
assert.equal(fallbackWithoutId.year, 2025);
129+
assert.equal(fallbackWithoutId.source, "request");
130+
131+
console.log("engine v2 stream presentation and shared TMDB metadata tests passed");

0 commit comments

Comments
 (0)