navidrome/persistence/genre_repository_test.go

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

60 lines
1.6 KiB
Go
Raw Normal View History

package persistence_test
2020-01-15 23:49:09 +01:00
import (
"context"
"github.com/google/uuid"
"github.com/navidrome/navidrome/db"
"github.com/navidrome/navidrome/log"
2020-01-24 01:44:08 +01:00
"github.com/navidrome/navidrome/model"
"github.com/navidrome/navidrome/persistence"
2022-07-26 22:47:16 +02:00
. "github.com/onsi/ginkgo/v2"
2020-01-15 23:49:09 +01:00
. "github.com/onsi/gomega"
"github.com/pocketbase/dbx"
2020-01-15 23:49:09 +01:00
)
var _ = Describe("GenreRepository", func() {
var repo model.GenreRepository
BeforeEach(func() {
repo = persistence.NewGenreRepository(log.NewContext(context.TODO()), dbx.NewFromDB(db.Db(), db.Driver))
2020-01-15 23:49:09 +01:00
})
Describe("GetAll()", func() {
It("returns all records", func() {
genres, err := repo.GetAll()
Expect(err).ToNot(HaveOccurred())
Expect(genres).To(ConsistOf(
model.Genre{ID: "gn-1", Name: "Electronic", AlbumCount: 1, SongCount: 2},
model.Genre{ID: "gn-2", Name: "Rock", AlbumCount: 3, SongCount: 3},
))
})
})
Describe("Put()", Ordered, func() {
It("does not insert existing genre names", func() {
g := model.Genre{Name: "Rock"}
err := repo.Put(&g)
Expect(err).To(BeNil())
Expect(g.ID).To(Equal("gn-2"))
genres, _ := repo.GetAll()
Expect(genres).To(HaveLen(2))
})
It("insert non-existent genre names", func() {
g := model.Genre{Name: "Reggae"}
err := repo.Put(&g)
Expect(err).ToNot(HaveOccurred())
// ID is a uuid
_, err = uuid.Parse(g.ID)
Expect(err).ToNot(HaveOccurred())
genres, err := repo.GetAll()
Expect(err).ToNot(HaveOccurred())
Expect(genres).To(HaveLen(3))
Expect(genres).To(ContainElement(model.Genre{ID: g.ID, Name: "Reggae", AlbumCount: 0, SongCount: 0}))
})
2020-01-15 23:49:09 +01:00
})
})