Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

log an error in applyPreset if room in list cannot be found with tests #123

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

kshartman
Copy link

log an error in applyPreset if room in list cannot be found. This is
annoying to track down because the result of the map will cause the
returned player array to contain undefined which results in a less
transparent error later on when we try to group it with others. This
error will still occur, but at least the user knows they have a typo
in a preset.  In my case it was bedrooom instead of bedroom. doh.

We could consider filtering the undefineds which would eliminate the
later error(s) so the remaining rooms can still play.  Not unreasonable
if we tell the user there is bad room name and ignore it.

    annoying to track down because the result of the map will cause the
    returned player array to contain undefined which results in a less
    transparent error later on when we try to group it with others. This
    error will still occur, but at least the user knows they have a typo
    in a preset.  In my case it was bedrooom instead of bedroom. doh.

    We could consider filtering the undefineds which would eliminate the
    later error(s) so the remaining rooms can still play.  Not unreasonable
    if we tell the user there is bad room name and ignore it.
// it will be undefined which causes error later. Could filter this
// map to silently ignore them.
return result;
});
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it makes sense to actually skip players that doesn't exist as well. I know people have filed issues about this being a problem when they turn off players occasionally etc.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can add that and submit a new pull request or do you want to do it?

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just add it on this PR, is my suggestion. Just add another commit.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have never added to a PR but I think I did it correctly. There should be 4 commits including a style correction and tests. The test log had 183 working and 2 failing before and after changes. The revised test has a bad room name in the primary preset and whenever this preset is applied it checks to see that an error carping about the bad room name was written to stderr. The 2 test that fail are unrelated to this change - I think the locations where the high res art were stored no longer exist.

The log:

[email protected] test
npm run -s jscs && npm run -s mocha

(node:71021) Warning: Accessing non-existent property 'padLevels' of module exports inside circular dependency
(Use node --trace-warnings ... to show where the warning was created)

(node:71051) [DEP0128] DeprecationWarning: Invalid 'main' field in '/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/create-thenable/package.json' of './src'. Please either fix that or report it to the module author
(Use node --trace-deprecation ... to show where the warning was created)
NotificationListener
✓ Sets up listening server on first available port in range
✓ Finds another port if taken
✓ Emits topology on ZoneGroupState
✓ Emits last-change on AvTransport LastChange
✓ Emits last-change on RenderingControl LastChange
✓ Emits queue-change
✓ Emits list-change
✓ Emits last-change for SUB rendering control last change event

SonosSystem
When no settings are provided
✓ Loaded prototypes
✓ Starts scanning
when topology is done
✓ Finds local endpoint
✓ Starts a NotificationListener
✓ Subscribes to player when ssdp emits
If Subscriber errors out
2023-03-30T16:21:58.841Z ERROR Mocked error
✓ Should restart discovery
topology
✓ Populate zones on topology notification
✓ Populate players on topology notification
✓ Do not contain Invisible units
✓ Flags primary player if SUB is connected
✓ should flag stereo pair if SUB is connected
✓ should flag PLAYBAR if SUB is connected
✓ should not flag player if SUB is not connected
✓ Only creates player once
✓ Links coordinator property on all players
✓ Returns player with getPlayer
✓ Returns player with getPlayer case insensitive
✓ Returns player with getPlayerByUUD
After initialized
✓ Called ListAvailableServices with valid player
✓ Can lookup SID from service name
✓ Can lookup type from service name
✓ Throws error on unknown service
When a new topology with removed players emits
✓ Should no longer have Office left
When we have household setting
✓ Finds the system matching the configured household

Subscriber
with normal retry interval
✓ Sends a subscription with the correct parameters
2023-03-30T16:21:59.201Z WARN resubscribing to sid undefined failed
TypeError: Cannot read properties of undefined (reading 'headers')
at /usr/local/src/projects/sonos/node-sonos-discovery/lib/Subscriber.js:55:17
at processTicksAndRejections (node:internal/process/task_queues:96:5)
2023-03-30T16:21:59.202Z WARN resubscribing to sid undefined failed
TypeError: Cannot read properties of undefined (reading 'headers')
at /usr/local/src/projects/sonos/node-sonos-discovery/lib/Subscriber.js:55:17
2023-03-30T16:21:59.303Z WARN resubscribing to sid null failed
Error: Rejecting subscribe attempt. This is a mocked error
at Function.rejects (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/sinon-as-promised/index.js:18:11)
at Context. (/usr/local/src/projects/sonos/node-sonos-discovery/test/unit/Subscriber.js:47:15)
at callFnAsync (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:377:21)
at Test.Runnable.run (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:324:7)
at Runner.runTest (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:442:10)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:560:12
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:356:14)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:366:7
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:290:14)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:329:7
at done (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:301:5)
at callFn (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:372:7)
at Hook.Runnable.run (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:346:7)
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:304:10)
at Immediate. (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:334:5)
at processImmediate (node:internal/timers:466:21)
✓ Resubscribes if failure (150ms)
with very short retry interval
2023-03-30T16:21:59.405Z WARN resubscribing to sid 12345678 failed
Error: Rejecting subscribe attempt. This is a mocked error
at Function.rejects (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/sinon-as-promised/index.js:18:11)
at Context. (/usr/local/src/projects/sonos/node-sonos-discovery/test/unit/Subscriber.js:81:15)
at callFnAsync (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:377:21)
at Test.Runnable.run (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:324:7)
at Runner.runTest (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:442:10)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:560:12
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:356:14)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:366:7
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:290:14)
at Immediate. (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:334:5)
at processImmediate (node:internal/timers:466:21)
2023-03-30T16:21:59.506Z WARN resubscribing to sid null failed
Error: Rejecting subscribe attempt. This is a mocked error
at Function.rejects (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/sinon-as-promised/index.js:18:11)
at Context. (/usr/local/src/projects/sonos/node-sonos-discovery/test/unit/Subscriber.js:81:15)
at callFnAsync (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:377:21)
at Test.Runnable.run (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:324:7)
at Runner.runTest (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:442:10)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:560:12
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:356:14)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:366:7
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:290:14)
at Immediate. (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:334:5)
at processImmediate (node:internal/timers:466:21)
✓ Resubscribes without sid if resubscribe fails (252ms)
2023-03-30T16:21:59.607Z ERROR unsubscribe from sid null failed
Error: Rejecting subscribe attempt. This is a mocked error
at Function.rejects (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/sinon-as-promised/index.js:18:11)
at Context. (/usr/local/src/projects/sonos/node-sonos-discovery/test/unit/Subscriber.js:81:15)
at callFnAsync (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:377:21)
at Test.Runnable.run (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:324:7)
at Runner.runTest (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:442:10)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:560:12
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:356:14)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:366:7
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:290:14)
at Immediate. (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:334:5)
at processImmediate (node:internal/timers:466:21)
✓ Resubscribes right before timeout (92ms)
2023-03-30T16:21:59.702Z ERROR unsubscribe from sid null failed
Error: Rejecting subscribe attempt. This is a mocked error
at Function.rejects (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/sinon-as-promised/index.js:18:11)
at Context. (/usr/local/src/projects/sonos/node-sonos-discovery/test/unit/Subscriber.js:81:15)
at callFnAsync (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:377:21)
at Test.Runnable.run (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:324:7)
at Runner.runTest (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:442:10)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:560:12
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:356:14)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:366:7
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:290:14)
at Immediate. (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:334:5)
at processImmediate (node:internal/timers:466:21)
✓ Sends unsubscribe if dispose is called
2023-03-30T16:21:59.708Z ERROR unsubscribe from sid null failed
Error: Rejecting subscribe attempt. This is a mocked error
at Function.rejects (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/sinon-as-promised/index.js:18:11)
at Context. (/usr/local/src/projects/sonos/node-sonos-discovery/test/unit/Subscriber.js:81:15)
at callFnAsync (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:377:21)
at Test.Runnable.run (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:324:7)
at Runner.runTest (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:442:10)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:560:12
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:356:14)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:366:7
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:290:14)
at Immediate. (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:334:5)
at processImmediate (node:internal/timers:466:21)
✓ Stops renewing if dispose is called (91ms)
2023-03-30T16:21:59.802Z ERROR unsubscribe from sid null failed
Error: Rejecting subscribe attempt. This is a mocked error
at Function.rejects (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/sinon-as-promised/index.js:18:11)
at Context. (/usr/local/src/projects/sonos/node-sonos-discovery/test/unit/Subscriber.js:81:15)
at callFnAsync (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:377:21)
at Test.Runnable.run (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runnable.js:324:7)
at Runner.runTest (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:442:10)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:560:12
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:356:14)
at /usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:366:7
at next (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:290:14)
at Immediate. (/usr/local/src/projects/sonos/node-sonos-discovery/node_modules/mocha/lib/runner.js:334:5)
at processImmediate (node:internal/timers:466:21)
When request fails 5 consecutive times
2023-03-30T16:21:59.806Z WARN resubscribing to sid undefined failed
2023-03-30T16:21:59.907Z WARN resubscribing to sid null failed
2023-03-30T16:22:00.008Z WARN resubscribing to sid null failed
2023-03-30T16:22:00.110Z WARN resubscribing to sid null failed
2023-03-30T16:22:00.211Z WARN resubscribing to sid null failed
✓ Emits error if rejected too many times

request
✓ Transfers common arguments to http.request
2023-03-30T16:22:00.313Z WARN resubscribing to sid null failed
✓ Uses https if called with https url
✓ Sets timeout on client object
✓ does not call setTimeout if no timeout
✓ Defaults to GET and port 80
✓ Invokes end() to trigger the request
✓ Resolves promise if successful request
✓ Resolves promise with deserialized JSON if type=json
✓ Rejects if error occur
✓ Rejects if response code is other than 2xx
✓ Rejects if timeout occur
✓ Returns response object if stream=true
✓ Writes body if exists

Should require all files in folder
✓ Has called mockMethod from subject

soap
(node:71051) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
✓ Invokes soap call with the correct parameters and returns the promise
✓ Supports calls without values
✓ Contains templates

Player
✓ Should set name on player
✓ Should have uuid
✓ Has baseUrl
✓ Subscribes to the various notifications by default
✓ Invokes dispose on all listeners when disposing player
✓ Subscribes to listener events
2023-03-30T16:22:00.415Z WARN resubscribing to sid null failed
✓ Loads prototypes
When it receives a transport-state update for queue playback
✓ Updates state
✓ Updates avTransportUri
✓ Updates avTransportUriMetadata
When it receives a transport-state update for radio playback
✓ Updates state
✓ Updates avTransportUri
✓ Updates avTransportUriMetadata
When it receives a transport-state update for custom radio playback
✓ Updates state
✓ Updates avTransportUri
✓ Updates avTransportUriMetadata
When it receives a transport-state update for google music when casting
✓ Doesn't crash while casting google music
When it receives a transport-state update for airplay 2 streaming
✓ Doesn't crash while streaming airplay 2
When it receives a transport-state update for a DLNA server
✓ Should have album art from EnqueuedURIMetadata
When radio already has an absolute url
✓ Should not touch absoluteAlbumUri
when rendering control event occurs
✓ Updates volume
✓ outputFixed is false
✓ outputFixed is true
✓ loudness is true
✓ bass is 3
2023-03-30T16:22:00.516Z WARN resubscribing to sid null failed
✓ treble is -2
✓ speech enhancement is true
✓ nightMode is true
✓ emits event
when sub event occurs
✓ updates gain
✓ updates crossover
✓ updates polarity
✓ updates enabled
✓ should be part of state data
commands
✓ play
✓ pause
✓ nextTrack
✓ previousTrack
✓ Volume 10 should be 10
✓ Volume 10 should be 10
✓ Volume +1 should be 6
✓ Volume -1 should be 4
✓ Volume with fixedoutput should short circuit
✓ mute
✓ unMute
✓ timeSeek
✓ trackSeek
✓ clearQueue
✓ removeTrackFromQueue
✓ setBass
✓ setTreble
✓ Sleep
✓ setAVTransport
✓ setAVTransport without metadata
✓ becomeCoordinatorOfStandaloneGroup
✓ refreshShareIndex
✓ addURIToQueue
Playmode dependant tests
2023-03-30T16:22:00.616Z WARN resubscribing to sid null failed
✓ Repeat with no state
✓ Repeat with shuffle on
✓ Shuffle on with no other state
✓ Shuffle off
✓ Crossfade on
✓ Crossfade off
when playmode fails
2023-03-30T16:22:00.635Z WARN Failed when trying to set playmode NORMAL, could be playing radiostation or line-in, no worries.
✓ Still calls crossfade if playmode fails
Position of track progress should be fetched
✓ GetPositionInfo is requested
Using fake timers
✓ GetPositionInfo is saved
✓ elapsedTime is dynamically calculated
Browse-inherited functions
Return queue
without arguments
✓ Should have invoked browse
✓ Parses queue and returns a list of well designed objects
with only limit
✓ Should have invoked browse
with limit and offset
✓ Should have invoked browse
2023-03-30T16:22:00.718Z WARN resubscribing to sid null failed
Parsing playlists
✓ Parses response and returns a list of well designed objects

MusicServices
✓ should reject on non existent service
- should return cover art on existing service

Player.getUriType
UriType enum
✓ should have type track
✓ should have type radio
✓ should have type line in
When called with different types
✓ should be of type "radio"
✓ should be of type "line-in"
✓ should be of type "track"

Player.nightMode()
✓ should call correct soap call when enabling
✓ should call correct soap call when disabling

Player.calculateGroupVolume
When recalculating group volume
✓ should have updated groupState.volume
When all players has outputFixed = true
✓ should not have updated groupState.volume

Player.replaceWithFavorite
When replacing with streaming favorite
✓ Has fetched favorites
✓ Removes all tracks before adding them
✓ Adds URI to queue with metadata
✓ Sets the avtransport to current queue
When replacing with radio favorite
✓ Do not remove tracks
✓ Do not try to add uri to queue
✓ Sets the avtransport to uri directly
When favorite is not found
✓ Promise should not resolve
✓ Promise should reject

Player.setGroupVolume
When setting fixed group volume
✓ should have called setVolume on all players
✓ Should have updated groupState to match desired volume
When setting relative negative group volume
✓ should have called setVolume on all players
✓ Should have updated groupState to match desired volume
When setting relative positive group volume
✓ should have called setVolume on all players
✓ Should have updated groupState to match desired volume

Player.speechEnhancement()
✓ should call correct soap call when enabling
✓ should call correct soap call when disabling

SonosSystem.applyPreset
When applying a preset
When applying preset
2023-03-30T16:22:00.750Z ERROR preset My favorite: bad room name Bad room
✓ Pauses all zones
2023-03-30T16:22:00.754Z ERROR preset My favorite: bad room name Bad room
✓ Has invoked getPlayer thrice
2023-03-30T16:22:00.757Z ERROR preset My favorite: bad room name Bad room
✓ Has set volume correctly
2023-03-30T16:22:00.760Z ERROR preset My favorite: bad room name Bad room
✓ Has muted player correctly
2023-03-30T16:22:00.763Z ERROR preset My favorite: bad room name Bad room
✓ Should not break out coordinator since already coordinator
2023-03-30T16:22:00.768Z ERROR preset My favorite: bad room name Bad room
✓ Groups players with coordinator
2023-03-30T16:22:00.771Z ERROR preset My favorite: bad room name Bad room
✓ Ungroups players that does'nt belong to group
2023-03-30T16:22:00.774Z ERROR preset My favorite: bad room name Bad room
✓ Replaces queue with favorite
2023-03-30T16:22:00.777Z ERROR preset My favorite: bad room name Bad room
✓ Sets correct playmode
2023-03-30T16:22:00.780Z ERROR preset My favorite: bad room name Bad room
✓ Skips to correct track
2023-03-30T16:22:00.784Z ERROR preset My favorite: bad room name Bad room
✓ Skips to correct time
2023-03-30T16:22:00.786Z ERROR preset My favorite: bad room name Bad room
✓ Should call sleep
2023-03-30T16:22:00.789Z ERROR preset My favorite: bad room name Bad room
✓ Should start playback
When it contains an mute=false
2023-03-30T16:22:00.795Z ERROR preset My favorite: bad room name Bad room
✓ Has un-muted player correctly
When coordinator is not coordinator of any group
✓ Detaches first player from group
✓ Should not pause the coordinator
When preset contains uri only
✓ Sets uri to preset uri and metadata

getFavorites
When calling getFavorites
✓ Has called browseAll
✓ Returns the expected result with undefined values filtered out

getPlaylists
When calling getPlaylists
✓ Has called browseAll
✓ Returns the expected result

deezer
2023-03-30T16:22:00.819Z WARN resubscribing to sid null failed
2023-03-30T16:22:00.919Z WARN resubscribing to sid null failed
1) should load highres art

soundcloud
2) should load highres art

Sonos-SSDP
✓ Creates listening UDP socket
✓ Sends M-SEARCH data once started
2023-03-30T16:22:01.019Z WARN resubscribing to sid null failed
2023-03-30T16:22:01.119Z WARN resubscribing to sid null failed
2023-03-30T16:22:01.220Z WARN resubscribing to sid null failed
2023-03-30T16:22:01.321Z WARN resubscribing to sid null failed
2023-03-30T16:22:01.422Z WARN resubscribing to sid null failed
2023-03-30T16:22:01.523Z WARN resubscribing to sid null failed
2023-03-30T16:22:01.624Z WARN resubscribing to sid null failed
2023-03-30T16:22:01.725Z WARN resubscribing to sid null failed
2023-03-30T16:22:01.827Z WARN resubscribing to sid null failed
2023-03-30T16:22:01.928Z WARN resubscribing to sid null failed
2023-03-30T16:22:02.029Z WARN resubscribing to sid null failed
2023-03-30T16:22:02.130Z WARN resubscribing to sid null failed
2023-03-30T16:22:02.231Z WARN resubscribing to sid null failed
2023-03-30T16:22:02.332Z WARN resubscribing to sid null failed
2023-03-30T16:22:02.433Z WARN resubscribing to sid null failed
✓ Sends M-SEARCH periodically if no response (1502ms)
2023-03-30T16:22:02.534Z WARN resubscribing to sid null failed
2023-03-30T16:22:02.635Z WARN resubscribing to sid null failed
2023-03-30T16:22:02.736Z WARN resubscribing to sid null failed
2023-03-30T16:22:02.837Z WARN resubscribing to sid null failed
2023-03-30T16:22:02.938Z WARN resubscribing to sid null failed
2023-03-30T16:22:03.040Z WARN resubscribing to sid null failed
2023-03-30T16:22:03.141Z WARN resubscribing to sid null failed
2023-03-30T16:22:03.242Z WARN resubscribing to sid null failed
2023-03-30T16:22:03.342Z WARN resubscribing to sid null failed
2023-03-30T16:22:03.443Z WARN resubscribing to sid null failed
2023-03-30T16:22:03.543Z WARN resubscribing to sid null failed
2023-03-30T16:22:03.644Z WARN resubscribing to sid null failed
2023-03-30T16:22:03.745Z WARN resubscribing to sid null failed
2023-03-30T16:22:03.846Z WARN resubscribing to sid null failed
2023-03-30T16:22:03.947Z WARN resubscribing to sid null failed
2023-03-30T16:22:04.048Z WARN resubscribing to sid null failed
2023-03-30T16:22:04.150Z WARN resubscribing to sid null failed
2023-03-30T16:22:04.251Z WARN resubscribing to sid null failed
2023-03-30T16:22:04.352Z WARN resubscribing to sid null failed
2023-03-30T16:22:04.453Z WARN resubscribing to sid null failed
2023-03-30T16:22:04.553Z WARN resubscribing to sid null failed
2023-03-30T16:22:04.654Z WARN resubscribing to sid null failed
2023-03-30T16:22:04.755Z WARN resubscribing to sid null failed
2023-03-30T16:22:04.857Z WARN resubscribing to sid null failed
2023-03-30T16:22:04.958Z WARN resubscribing to sid null failed
2023-03-30T16:22:05.059Z WARN resubscribing to sid null failed
2023-03-30T16:22:05.160Z WARN resubscribing to sid null failed
2023-03-30T16:22:05.261Z WARN resubscribing to sid null failed
2023-03-30T16:22:05.361Z WARN resubscribing to sid null failed
2023-03-30T16:22:05.462Z WARN resubscribing to sid null failed
2023-03-30T16:22:05.563Z WARN resubscribing to sid null failed
2023-03-30T16:22:05.664Z WARN resubscribing to sid null failed
2023-03-30T16:22:05.765Z WARN resubscribing to sid null failed
2023-03-30T16:22:05.866Z WARN resubscribing to sid null failed
2023-03-30T16:22:05.967Z WARN resubscribing to sid null failed
2023-03-30T16:22:06.068Z WARN resubscribing to sid null failed
2023-03-30T16:22:06.169Z WARN resubscribing to sid null failed
2023-03-30T16:22:06.270Z WARN resubscribing to sid null failed
2023-03-30T16:22:06.371Z WARN resubscribing to sid null failed
2023-03-30T16:22:06.472Z WARN resubscribing to sid null failed
2023-03-30T16:22:06.573Z WARN resubscribing to sid null failed
2023-03-30T16:22:06.674Z WARN resubscribing to sid null failed
2023-03-30T16:22:06.775Z WARN resubscribing to sid null failed
2023-03-30T16:22:06.876Z WARN resubscribing to sid null failed
2023-03-30T16:22:06.977Z WARN resubscribing to sid null failed
2023-03-30T16:22:07.078Z WARN resubscribing to sid null failed
2023-03-30T16:22:07.180Z WARN resubscribing to sid null failed
2023-03-30T16:22:07.281Z WARN resubscribing to sid null failed
2023-03-30T16:22:07.382Z WARN resubscribing to sid null failed
2023-03-30T16:22:07.482Z WARN resubscribing to sid null failed
2023-03-30T16:22:07.583Z WARN resubscribing to sid null failed
2023-03-30T16:22:07.683Z WARN resubscribing to sid null failed
2023-03-30T16:22:07.783Z WARN resubscribing to sid null failed
2023-03-30T16:22:07.884Z WARN resubscribing to sid null failed
2023-03-30T16:22:07.985Z WARN resubscribing to sid null failed
✓ Switches interface if more than 5 seconds elapse (5503ms)
✓ Emits upon successful resolve
✓ Closes socket if stop is invoked

183 passing (9s)
1 pending
2 failing

  1. deezer
    should load highres art:
    AssertionError: expected 'http://e-cdn-images.dzcdn.net/images/cover/5646492f1aec0168e52814d27d2d9a67/500x500-000000-80-0-0.jpg' to include 'deezer.com/images/cover/5646492f1aec0168e52814d27d2d9a67/500x500-000000-80-0-0.jpg'
    at test/unit/services/deezer.js:20:24
    at processTicksAndRejections (node:internal/process/task_queues:96:5)

  2. soundcloud
    should load highres art:
    Error: Got status 301 when invoking /tracks/44731098?client_id=6b9ec970f07f410376f1db1dfa8d71b3
    at Object.tryGetHighResArt (lib/services/soundcloud.js:43:10)
    at Context. (test/unit/services/soundcloud.js:18:23)
    at processImmediate (node:internal/timers:466:21)

player names.  Now we filter the result in applyPreset so that
undefined players are NOT returned which eliminates the subsequent
errors and allows the remaining preset players to carry on.
@jishi
Copy link
Owner

jishi commented Mar 29, 2023

It would be nice to have a test for this as well, in https://github.com/jishi/node-sonos-discovery/blob/master/test/unit/prototypes/SonosSystem/applyPreset.js

Something you'd want to take a stab at?

Copy link
Author

@kshartman kshartman left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I filter the undefined players from result and I will write a test

applied, we check that an error was logged for the bad room name in
stderr.  183 tests were passing before change to applyPreset.js before
and after.  2 tests still fail for unrelated reasons (presumably
the location where highres art was stored no longer exists).
@kshartman kshartman changed the title log an error in applyPreset if room in list cannot be found log an error in applyPreset if room in list cannot be found with tests Mar 30, 2023
@kshartman
Copy link
Author

I wasn't sure if I should bump the package version number. Let me know and I will add that to the PR.

@jishi
Copy link
Owner

jishi commented Apr 1, 2023

I wasn't sure if I should bump the package version number. Let me know and I will add that to the PR.

Nah, I'll bump it once I start using it in the sub-dependent projects (and tag it)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants