Skip to content

Commit

Permalink
Merge pull request #78 from kyan/try-new-track-timming-location
Browse files Browse the repository at this point in the history
Try moving track trimmer into mopidy handler
  • Loading branch information
whomwah committed Sep 27, 2019
2 parents ec5685d + 297fd85 commit 775785d
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 2 deletions.
5 changes: 5 additions & 0 deletions backend/src/lib/handlers/mopidy/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import EventLogger from '../../event-logger'
import ImageCache from './image-cache'
import Mopidy from '../../constants/mopidy'
import Spotify from '../../services/spotify'
import trackListTrimmer from '../../services/mopidy/tracklist-trimmer'

const isValidTrack = (key, data, callback) => {
if (key !== Mopidy.TRACKLIST_ADD) return callback()
Expand Down Expand Up @@ -34,6 +35,10 @@ const MopidyHandler = (payload, ws, bcast, mopidy) => {
if (response) {
if (obj.addToCache) obj.addToCache(response)
sendToClient(bcast, ws, payload, response)

if (payload.encoded_key === Mopidy.GET_TRACKS) {
trackListTrimmer(mopidy)
}
}

logEvent(payload, data, response)
Expand Down
14 changes: 14 additions & 0 deletions backend/src/lib/handlers/mopidy/index.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ import logger from '../../../config/winston'
import MopidyHandler from './index'
import ImageCache from './image-cache'
import Spotify from '../../services/spotify'
import trackListTrimmer from '../../services/mopidy/tracklist-trimmer'
jest.mock('./image-cache')
jest.mock('../../../config/winston')
jest.mock('../../services/spotify')
jest.mock('../../services/mopidy/tracklist-trimmer')

describe('MopidyHandler', () => {
let payload = {
Expand Down Expand Up @@ -131,5 +133,17 @@ describe('MopidyHandler', () => {
MopidyHandler(payload, ws, broadcasterMock, {})
expect(Spotify.validateTrack.mock.calls[0][0]).toEqual('track123')
})

it('should handle get tracks call', () => {
const payload = {
encoded_key: 'mopidy::tracklist.getTracks',
key: 'tracklist.getTracks',
service: 'mopidy'
}
const mopidy = { tracklist: { getTracks: successMock } }
MopidyHandler(payload, ws, broadcasterMock, mopidy)
ImageCache.check.mock.calls[0][2](null, { addToCache: addToCacheMock })
expect(trackListTrimmer.mock.calls[0][0]).toEqual(mopidy)
})
})
})
4 changes: 2 additions & 2 deletions backend/src/lib/transformer/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import Auth from '../constants/auth'
import Settings from '../constants/settings'
import TransformTrack from './transformers/mopidy/track'
import TransformTracklist from './transformers/mopidy/tracklist'
import trackListTrimmer from '../services/mopidy/tracklist-trimmer'
import settings from '../local-storage'
import Spotify from '../services/spotify'

Expand Down Expand Up @@ -44,9 +43,10 @@ export default function (key, data, mopidy) {
return tracks
case Mopidy.EVENTS.TRACKLIST_CHANGED:
clearSetTimeout(recommendTimer)
trackListTrimmer(mopidy)
return data
case Mopidy.TRACKLIST_ADD:
clearSetTimeout(recommendTimer)
return data
case Mopidy.PLAYBACK_NEXT:
case Mopidy.TRACKLIST_CLEAR:
case Mopidy.TRACKLIST_REMOVE:
Expand Down

0 comments on commit 775785d

Please sign in to comment.