diff --git a/src/tests/OMDbAPI.test.js b/src/tests/OMDbAPI.test.js deleted file mode 100644 index 816a522..0000000 --- a/src/tests/OMDbAPI.test.js +++ /dev/null @@ -1,101 +0,0 @@ -require('jest-fetch-mock').enableMocks() - -let OMDbApiInstance; - -beforeEach(() => { - fetchMock.resetMocks(); - let OMDbAPI = require("../api/apis/OMDbAPI").OMDbAPI; - let MediaDbPluginMock = {}; - MediaDbPluginMock = { - settings: { - OMDbKey: "string" - } - }; - OMDbApiInstance = new OMDbAPI(MediaDbPluginMock); -}) - -test("searchByTitle behavior when given garbage data", async () => { - fetchMock.mockResponseOnce(JSON.stringify({ - data: "string" - })) - let res = await OMDbApiInstance.searchByTitle("sample"); - expect(res).toEqual([]); - expect(fetchMock).toHaveBeenCalledTimes(1); -}); - -test("searchByTitle when fetch returns 401", async () => { - let sampleResponse = { - data: "string" - }; - fetchMock.mockResponse(JSON.stringify(sampleResponse), { status: 401 }); - // TODO: Check API name and fix message - // TODO: Externalize string - await expect(async () => await OMDbApiInstance.searchByTitle("sample")).rejects.toThrowError("MDB | Authentication for OMDbAPI failed. Check the API key."); - expect(fetchMock).toHaveBeenCalledTimes(1); -}); - -test("searchByTitle when fetch returns other non-200", async () => { - let sampleResponse = { - data: "string" - }; - fetchMock.mockResponse(JSON.stringify(sampleResponse), { status: 400 }); - await expect(async () => await OMDbApiInstance.searchByTitle("sample")).rejects.toThrow(); - expect(fetchMock).toHaveBeenCalledTimes(1); -}); - -test("searchByTitle with successful request and valid response", async () => { - let response = { - "Search": [ - { - "Title": "Guardians of the Galaxy", - "Year": "2014", - "imdbID": "tt2015381", - "Type": "movie", - "Poster": "https://m.media-amazon.com/images/M/MV5BMTAwMjU5OTgxNjZeQTJeQWpwZ15BbWU4MDUxNDYxODEx._V1_SX300.jpg" - }, - { - "Title": "Guardians of the Galaxy Vol. 2", - "Year": "2017", - "imdbID": "tt3896198", - "Type": "movie", - "Poster": "https://m.media-amazon.com/images/M/MV5BNjM0NTc0NzItM2FlYS00YzEwLWE0YmUtNTA2ZWIzODc2OTgxXkEyXkFqcGdeQXVyNTgwNzIyNzg@._V1_SX300.jpg" - }, - { - "Title": "Guardians of the Galaxy: Inferno", - "Year": "2017", - "imdbID": "tt7131308", - "Type": "movie", - "Poster": "https://m.media-amazon.com/images/M/MV5BZGQ0YzEyNWQtNGJiMi00NTAxLThkNDctNGY2ODkzYWMxZmZkXkEyXkFqcGdeQXVyNTAyODkwOQ@@._V1_SX300.jpg" - }, - { - "Title": "LEGO Marvel Super Heroes - Guardians of the Galaxy: The Thanos Threat", - "Year": "2017", - "imdbID": "tt7387224", - "Type": "movie", - "Poster": "https://m.media-amazon.com/images/M/MV5BMjhlYzVhNTMtMmFkYy00NDhiLTkyNDgtYzhhMTZiMzM2OTA5XkEyXkFqcGdeQXVyNjI2OTgxNzY@._V1_SX300.jpg" - }, - ], - "totalResults": "4", - "Response": "True" - } - fetchMock.mockResponse(JSON.stringify(response)); - let ret = []; - - // import { MovieModel } from '../models/MovieModel'; - // const MovieModel = require('../models/MovieModel') - for (const result of response.Search) { - ret.push({ - type: 'movie', - title: result.Title, - englishTitle: result.Title, - year: result.Year, - dataSource: 'OMDbAPI', - id: result.imdbID, - }); - } - - let dt = await OMDbApiInstance.searchByTitle("Jackson"); - expect(dt).toEqual(ret); - -}) - diff --git a/src/tests/OMDbAPI.test.ts b/src/tests/OMDbAPI.test.ts deleted file mode 100644 index 9db5663..0000000 --- a/src/tests/OMDbAPI.test.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { enableFetchMocks } from 'jest-fetch-mock'; -import fetchMock from 'jest-fetch-mock'; -import { OMDbAPI } from '../api/apis/OMDbAPI'; -import { MovieModel } from '../models/MovieModel'; -import { MediaTypeModel } from '../models/MediaTypeModel'; -import MediaDbPlugin from '../main'; -import { MediaDbPluginSettings } from 'src/settings/Settings'; - -enableFetchMocks() -let OMDbApiMock: OMDbAPI; - -beforeEach(() => { - fetchMock.resetMocks(); - let settingsMock: MediaDbPluginSettings = { - OMDbKey: "string" - } as MediaDbPluginSettings; - let pluginMock: MediaDbPlugin = {} as MediaDbPlugin; - pluginMock.settings = settingsMock; - OMDbApiMock = new OMDbAPI(pluginMock); -}) - -test("searchByTitle behavior when given garbage data", async () => { - fetchMock.mockResponseOnce(JSON.stringify({ - data: "string" - })) - let res = await OMDbApiMock.searchByTitle("sample"); - expect(res).toEqual([]); - expect(fetchMock).toHaveBeenCalledTimes(1); -}); - -test("searchByTitle when fetch returns 401", async () => { - let sampleResponse = { - data: "string" - }; - fetchMock.mockResponse(JSON.stringify(sampleResponse), { status: 401 }); - // TODO: Check API name and fix message - // TODO: Externalize string - await expect(async () => await OMDbApiMock.searchByTitle("sample")).rejects.toThrowError("MDB | Authentication for OMDbAPI failed. Check the API key."); - expect(fetchMock).toHaveBeenCalledTimes(1); -}); - -test("searchByTitle when fetch returns other non-200", async () => { - let sampleResponse = { - data: "string" - }; - fetchMock.mockResponse(JSON.stringify(sampleResponse), { status: 400 }); - await expect(async () => await OMDbApiMock.searchByTitle("sample")).rejects.toThrow(); - expect(fetchMock).toHaveBeenCalledTimes(1); -}); - -test("searchByTitle with successful request and valid response", async () => { - let response = { - "Search": [ - { - "Title": "Guardians of the Galaxy", - "Year": "2014", - "imdbID": "tt2015381", - "Type": "movie", - "Poster": "https://m.media-amazon.com/images/M/MV5BMTAwMjU5OTgxNjZeQTJeQWpwZ15BbWU4MDUxNDYxODEx._V1_SX300.jpg" - }, - { - "Title": "Guardians of the Galaxy Vol. 2", - "Year": "2017", - "imdbID": "tt3896198", - "Type": "movie", - "Poster": "https://m.media-amazon.com/images/M/MV5BNjM0NTc0NzItM2FlYS00YzEwLWE0YmUtNTA2ZWIzODc2OTgxXkEyXkFqcGdeQXVyNTgwNzIyNzg@._V1_SX300.jpg" - }, - { - "Title": "Guardians of the Galaxy: Inferno", - "Year": "2017", - "imdbID": "tt7131308", - "Type": "movie", - "Poster": "https://m.media-amazon.com/images/M/MV5BZGQ0YzEyNWQtNGJiMi00NTAxLThkNDctNGY2ODkzYWMxZmZkXkEyXkFqcGdeQXVyNTAyODkwOQ@@._V1_SX300.jpg" - }, - { - "Title": "LEGO Marvel Super Heroes - Guardians of the Galaxy: The Thanos Threat", - "Year": "2017", - "imdbID": "tt7387224", - "Type": "movie", - "Poster": "https://m.media-amazon.com/images/M/MV5BMjhlYzVhNTMtMmFkYy00NDhiLTkyNDgtYzhhMTZiMzM2OTA5XkEyXkFqcGdeQXVyNjI2OTgxNzY@._V1_SX300.jpg" - }, - ], - "totalResults": "4", - "Response": "True" - } - fetchMock.mockResponse(JSON.stringify(response)); - let ret: MediaTypeModel[] = []; - - for (const result of response.Search) { - ret.push(new MovieModel({ - type: 'wiki', - title: result.Title, - englishTitle: result.Title, - year: result.Year, - dataSource: 'OMDbAPI', - id: result.imdbID, - } as unknown as MovieModel)); - } - let dt = await OMDbApiMock.searchByTitle("Jackson"); - expect(dt).toStrictEqual(ret); - -}) - diff --git a/src/tests/WikipediaAPI.test.ts b/src/tests/WikipediaAPI.test.ts deleted file mode 100644 index 9696347..0000000 --- a/src/tests/WikipediaAPI.test.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { enableFetchMocks } from 'jest-fetch-mock'; -import fetchMock from 'jest-fetch-mock'; -import { WikipediaAPI } from '../api/apis/WikipediaAPI'; -import { WikiModel } from '../models/WikiModel'; -import { MediaTypeModel } from '../models/MediaTypeModel'; - -enableFetchMocks() -let wikiInstance: WikipediaAPI; - -beforeEach(() => { - fetchMock.resetMocks(); - wikiInstance = new WikipediaAPI(new (jest.fn())()); -}) - -test("searchByTitle behavior when given garbage data", async () => { - fetchMock.mockResponseOnce(JSON.stringify({ - data: "string" - })) - await expect(async () => await wikiInstance.searchByTitle("sample")).rejects.toThrow(); - expect(fetchMock).toHaveBeenCalledTimes(1); -}); - -test("searchByTitle when fetch returns non-200", async () => { - let sampleResponse = { - data: "string" - }; - fetchMock.mockResponse(JSON.stringify(sampleResponse), {status: 400}); - await expect(async () => await wikiInstance.searchByTitle("sample")).rejects.toThrow(); - expect(fetchMock).toHaveBeenCalledTimes(1); -}); - -test("searchByTitle with successful request and valid response", async () => { - let response = { - "batchcomplete": "", - "continue": { - "sroffset": 20, - "continue": "-||" - }, - "query": { - "searchinfo": { - "totalhits": 214380 - }, - "search": [ - { - "ns": 0, - "title": "Jackson", - "pageid": 15772, - "size": 3524, - "wordcount": 392, - "timestamp": "2022-06-16T07:22:28Z" - }, - { - "ns": 0, - "title": "Michael Jackson", - "pageid": 14995351, - "size": 257103, - "wordcount": 23309, - "timestamp": "2022-06-29T01:15:25Z" - }, - { - "ns": 0, - "title": "Andrew Jackson", - "pageid": 1623, - "size": 200137, - "wordcount": 22743, - "timestamp": "2022-07-03T17:53:13Z" - }, - { - "ns": 0, - "title": "Janet Jackson", - "pageid": 60070, - "size": 206594, - "wordcount": 21067, - "timestamp": "2022-06-24T19:40:30Z" - } - ] - } - }; - fetchMock.mockResponse(JSON.stringify(response)); - let ret: MediaTypeModel[] = []; - - for (const result of response.query.search) { - ret.push(new WikiModel({ - type: 'wiki', - title: result.title, - englishTitle: result.title, - year: '', - dataSource: 'Wikipedia API', - id: result.pageid, - } as unknown as WikiModel)); - } - let dt = await wikiInstance.searchByTitle("Jackson"); - expect(dt).toStrictEqual(ret); - -})