diff --git a/server/e2e/subsonic_bookmarks_test.go b/server/e2e/subsonic_bookmarks_test.go index d0dc06208..726b41743 100644 --- a/server/e2e/subsonic_bookmarks_test.go +++ b/server/e2e/subsonic_bookmarks_test.go @@ -77,12 +77,28 @@ var _ = Describe("Bookmark and PlayQueue Endpoints", Ordered, func() { } }) - It("getPlayQueue returns empty when nothing saved", func() { + It("getPlayQueue returns minimum required fields when nothing specified", func() { resp := doReq("getPlayQueue") Expect(resp.Status).To(Equal(responses.StatusOK)) - // When no play queue exists, PlayQueue should be nil (no entry returned) - Expect(resp.PlayQueue).To(BeNil()) + Expect(resp.PlayQueue).ToNot(BeNil()) + Expect(resp.PlayQueue.Entry).To(HaveLen(0)) + Expect(resp.PlayQueue.Current).To(BeEmpty()) + Expect(resp.PlayQueue.Position).To(Equal(int64(0))) + Expect(resp.PlayQueue.Username).To(Equal(adminUser.UserName)) + Expect(resp.PlayQueue.ChangedBy).To(BeEmpty()) + }) + + It("getPlayQueueByIndex returns minimum required fields when nothing specified", func() { + resp := doReq("getPlayQueueByIndex") + + Expect(resp.Status).To(Equal(responses.StatusOK)) + Expect(resp.PlayQueueByIndex).ToNot(BeNil()) + Expect(resp.PlayQueueByIndex.Entry).To(HaveLen(0)) + Expect(resp.PlayQueueByIndex.CurrentIndex).To(BeNil()) + Expect(resp.PlayQueueByIndex.Position).To(Equal(int64(0))) + Expect(resp.PlayQueueByIndex.Username).To(Equal(adminUser.UserName)) + Expect(resp.PlayQueueByIndex.ChangedBy).To(BeEmpty()) }) It("savePlayQueue stores current play queue", func() { diff --git a/server/subsonic/bookmarks.go b/server/subsonic/bookmarks.go index b1e71b1c7..337712750 100644 --- a/server/subsonic/bookmarks.go +++ b/server/subsonic/bookmarks.go @@ -78,7 +78,11 @@ func (api *Router) GetPlayQueue(r *http.Request) (*responses.Subsonic, error) { return nil, err } if pq == nil || len(pq.Items) == 0 { - return newResponse(), nil + response := newResponse() + response.PlayQueue = &responses.PlayQueue{ + Username: user.UserName, + } + return response, nil } response := newResponse() @@ -145,7 +149,11 @@ func (api *Router) GetPlayQueueByIndex(r *http.Request) (*responses.Subsonic, er return nil, err } if pq == nil || len(pq.Items) == 0 { - return newResponse(), nil + response := newResponse() + response.PlayQueueByIndex = &responses.PlayQueueByIndex{ + Username: user.UserName, + } + return response, nil } response := newResponse()