@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
JavaScript
;
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