UNPKG

@aliceplex/core

Version:

[![License][license_badge]][license] [![Pipelines][pipelines_badge]][pipelines] [![Coverage][coverage_badge]][pipelines] [![NPM][npm_badge]][npm] [![semantic-release][semantic_release_badge]][semantic_release]

127 lines 5.34 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const scrap_1 = require(".."); const utils_1 = require("../utils"); jest.mock("../utils"); function mockTvdbApi(url, init) { return __awaiter(this, void 0, void 0, function* () { switch (url) { case "https://api.thetvdb.com/login": return { token: "token" }; case "https://api.thetvdb.com/series/123/episodes": case "https://api.thetvdb.com/series/123/episodes?page=1": { const { headers = {} } = init || {}; const { Authorization } = headers; if (Authorization !== "Bearer token") { return {}; } return { links: { first: 1, last: 1, next: null, prev: null }, data: [ { id: 127131, airedSeason: 1, airedSeasonID: 6345, airedEpisodeNumber: 1, episodeName: "Pilot (1)", firstAired: "2004-09-22", guestStars: ["Greg Grunberg", "John Dixon", " Michelle Arthur"], director: "J.J. Abrams", directors: ["J.J. Abrams"], writers: ["J.J. Abrams", "Damon Lindelof"], overview: "overview", language: { episodeName: "en", overview: "en" }, productionCode: "100", showUrl: "http://www.tv.com/episode/334467/summary.html", lastUpdated: 1484282112, dvdDiscid: "", dvdSeason: 1, dvdEpisodeNumber: 1, dvdChapter: null, absoluteNumber: null, filename: "episodes/73739/127131.jpg", seriesId: 73739, lastUpdatedBy: 471903, airsAfterSeason: null, airsBeforeSeason: null, airsBeforeEpisode: null, thumbAuthor: 2011, thumbAdded: "", thumbWidth: "400", thumbHeight: "225", imdbId: "tt0636289", siteRating: 8, siteRatingCount: 129 } ] }; } default: return {}; } }); } describe("scrap", () => { describe("tvdb", () => { beforeAll(() => { // @ts-ignore utils_1.fetchJsonMemorized.mockImplementation(mockTvdbApi); }); test("scrap", () => __awaiter(void 0, void 0, void 0, function* () { const scraper = scrap_1.createTvdbScrapper({ tvdbId: "123", credential: { apikey: "apikey", userkey: "userkey", username: "username" }, fields: { title: true, aired: true, summary: true } }); const { data } = yield scraper({ episode: 1, season: 1 }); expect(data.title).toEqual(["Pilot (1)"]); expect(data.summary).toEqual("overview"); expect(data.aired).toEqual("2004-09-22"); })); test("thumbnails", () => __awaiter(void 0, void 0, void 0, function* () { const scraper = scrap_1.createTvdbScrapper({ tvdbId: "123", credential: { apikey: "apikey", userkey: "userkey", username: "username" }, fields: { thumbnail: true } }); const { thumbnails } = yield scraper({ episode: 1, season: 1 }); expect(thumbnails).toEqual([ "https://www.thetvdb.com/banners/episodes/73739/127131.jpg" ]); })); }); }); //# sourceMappingURL=tvdb.test.js.map