diff --git a/mixins/__tests__/itemHelper.spec.ts b/mixins/__tests__/itemHelper.spec.ts new file mode 100644 index 00000000..78902666 --- /dev/null +++ b/mixins/__tests__/itemHelper.spec.ts @@ -0,0 +1,35 @@ +import Vue from 'vue'; +import itemHelper from '~/mixins/itemHelper.ts'; + +const TestComponent = new Vue({ + mixins: [itemHelper] +}); + +describe('itemHelper', () => { + test('Correctly returns true if the item can be resumed', () => { + expect(TestComponent.canPlay({ Type: 'MusicGenre' })).toEqual(true); + expect(TestComponent.canPlay({ Type: 'Season' })).toEqual(true); + expect(TestComponent.canPlay({ Type: 'Series' })).toEqual(true); + expect(TestComponent.canPlay({ Type: 'BoxSet' })).toEqual(true); + expect(TestComponent.canPlay({ Type: 'MusicAlbum' })).toEqual(true); + expect(TestComponent.canPlay({ Type: 'MusicArtist' })).toEqual(true); + expect(TestComponent.canPlay({ Type: 'Playlist' })).toEqual(true); + + expect(TestComponent.canPlay({ MediaType: 'Video' })).toEqual(true); + expect(TestComponent.canPlay({ MediaType: 'Audio' })).toEqual(true); + + expect(TestComponent.canPlay({})).toEqual(false); + }); + + test('Correctly returns true if the item can be resumed', () => { + expect( + TestComponent.canResume({ UserData: { PlaybackPositionTicks: 1 } }) + ).toEqual(true); + + expect( + TestComponent.canResume({ UserData: { PlaybackPositionTicks: 0 } }) + ).toEqual(false); + + expect(TestComponent.canResume({ UserData: {} })).toEqual(false); + }); +});