package subsonicimport ("context""github.com/navidrome/navidrome/model""github.com/navidrome/navidrome/model/request""github.com/navidrome/navidrome/server/subsonic/responses""github.com/navidrome/navidrome/tests". "github.com/onsi/ginkgo/v2". "github.com/onsi/gomega")var _ = Describe("Bookmarks", func() {var router *Routervar ds *tests.MockDataStorevar mfRepo *tests.MockMediaFileRepovar ctx context.ContextBeforeEach(func() {ds = &tests.MockDataStore{}router = New(ds, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil)ctx = request.WithUser(context.Background(), model.User{ID: "u1", UserName: "u1"})mfRepo = ds.MediaFile().(*tests.MockMediaFileRepo)mfRepo.SetData(model.MediaFiles{{ID: "visible"}})})Describe("CreateBookmark", func() {It("rejects an id the user cannot read", func() {r := newGetRequest("id=hidden", "position=1").WithContext(ctx)_, err := router.CreateBookmark(r)Expect(err).To(HaveOccurred())Expect(mapToSubsonicError(err).code).To(Equal(responses.ErrorDataNotFound))Expect(mfRepo.BookmarksAdded).To(BeEmpty())})It("accepts an id the user can read", func() {r := newGetRequest("id=visible", "position=1").WithContext(ctx)_, err := router.CreateBookmark(r)Expect(err).ToNot(HaveOccurred())Expect(mfRepo.BookmarksAdded).To(ConsistOf("visible"))})})})