nukeop/nuclear

View on GitHub
packages/core/src/plugins/meta/itunespodcast.test.ts

Summary

Maintainability
B
5 hrs
Test Coverage
import iTunesPodcastMetaProvider from './itunespodcast';
import * as iTunesMocks from './metaMocks/iTunesPodcastMocks';
import { Track } from '../..';

describe('iTunes podcast metaprovider tests', () => {
  it('search for podcasts', async () => {
    iTunesMocks.mockPodcastResult();
    const itunesMeta = new iTunesPodcastMetaProvider();
    const response = await itunesMeta.searchForPodcast('Programming Throwdown');
    expect(fetch).toHaveBeenCalledTimes(1);
    expect(response).toEqual([
      {
        'id': 427166321,
        'coverImage': 'https://is3-ssl.mzstatic.com/image/thumb/Podcasts125/v4/83/e8/a9/83e8a9d5-df87-b19d-7050-55e4ce4df89d/mza_13511678666604160959.jpg/600x600bb.jpg',
        'thumb': 'https://is3-ssl.mzstatic.com/image/thumb/Podcasts125/v4/83/e8/a9/83e8a9d5-df87-b19d-7050-55e4ce4df89d/mza_13511678666604160959.jpg/600x600bb.jpg',
        'title': 'Programming Throwdown',
        'author': 'Patrick Wheeler and Jason Gauci',
        'type': 'podcast',
        'source': 'iTunesPodcast'
      }
    ]);
  });

  it('search for podcasts details', async () => {
    iTunesMocks.mockPodcastEpisodesResult();
    const itunesMeta = new iTunesPodcastMetaProvider();
    const response = await itunesMeta.fetchAlbumDetails('Programming Throwdown');
    expect(fetch).toHaveBeenCalledTimes(1);
    const track = new Track ({
      'artist': 'Programming Throwdown', 
      'duration': 4554, 
      'position': 1, 
      'thumbnail': 'https://is3-ssl.mzstatic.com/image/thumb/Podcasts125/v4/83/e8/a9/83e8a9d5-df87-b19d-7050-55e4ce4df89d/mza_13511678666604160959.jpg/60x60bb.jpg', 
      'title': 'Route Planning with Parker Woodward'
    });
    track.uuid = '';
    response.tracklist[0].uuid = '';
    expect(response).toEqual({ 
      'artist': 'Programming Throwdown', 
      'coverImage': 'https://is3-ssl.mzstatic.com/image/thumb/Podcasts125/v4/83/e8/a9/83e8a9d5-df87-b19d-7050-55e4ce4df89d/mza_13511678666604160959.jpg/600x600bb.jpg', 
      'id': 427166321,
      'thumb': 'https://is3-ssl.mzstatic.com/image/thumb/Podcasts125/v4/83/e8/a9/83e8a9d5-df87-b19d-7050-55e4ce4df89d/mza_13511678666604160959.jpg/600x600bb.jpg', 
      'title': 'Programming Throwdown',
      'tracklist': [track], 
      'type': 'master', 
      'year': '2021-07-07T17:08:00Z'
    });
  });
});