mirror of
https://github.com/navidrome/navidrome.git
synced 2026-10-12 20:37:12 +02:00
45 lines
1.5 KiB
Go
45 lines
1.5 KiB
Go
|
|
package core_test
|
||
|
|
|
||
|
|
import (
|
||
|
|
"path/filepath"
|
||
|
|
|
||
|
|
"github.com/navidrome/navidrome/core"
|
||
|
|
"github.com/navidrome/navidrome/model"
|
||
|
|
. "github.com/onsi/ginkgo/v2"
|
||
|
|
. "github.com/onsi/gomega"
|
||
|
|
)
|
||
|
|
|
||
|
|
var _ = Describe("Inspect", func() {
|
||
|
|
var fixtures string
|
||
|
|
|
||
|
|
BeforeEach(func() {
|
||
|
|
var err error
|
||
|
|
fixtures, err = filepath.Abs(filepath.Join("tests", "fixtures"))
|
||
|
|
Expect(err).ToNot(HaveOccurred())
|
||
|
|
})
|
||
|
|
|
||
|
|
It("maps the file with the library-relative path the scanner uses", func() {
|
||
|
|
lib := model.Library{ID: 2, Path: filepath.Dir(fixtures), PIDAlbum: "folder"}
|
||
|
|
out, err := core.Inspect(filepath.Join(fixtures, "test.mp3"), lib, "")
|
||
|
|
Expect(err).ToNot(HaveOccurred())
|
||
|
|
Expect(out.MappedTags.Path).To(Equal("fixtures/test.mp3"))
|
||
|
|
Expect(out.MappedTags.LibraryID).To(Equal(2))
|
||
|
|
})
|
||
|
|
|
||
|
|
It("gives the same IDs for relative and absolute paths", func() {
|
||
|
|
lib := model.Library{ID: 2, Path: filepath.Dir(fixtures), PIDAlbum: "folder"}
|
||
|
|
abs, err := core.Inspect(filepath.Join(fixtures, "test.mp3"), lib, "")
|
||
|
|
Expect(err).ToNot(HaveOccurred())
|
||
|
|
rel, err := core.Inspect(filepath.Join("tests", "fixtures", "test.mp3"), lib, "")
|
||
|
|
Expect(err).ToNot(HaveOccurred())
|
||
|
|
Expect(rel.MappedTags.AlbumID).To(Equal(abs.MappedTags.AlbumID))
|
||
|
|
Expect(rel.MappedTags.PID).To(Equal(abs.MappedTags.PID))
|
||
|
|
})
|
||
|
|
|
||
|
|
It("keeps the given path for a file outside the library", func() {
|
||
|
|
filePath := filepath.Join(fixtures, "test.mp3")
|
||
|
|
out, err := core.Inspect(filePath, model.Library{ID: model.DefaultLibraryID}, "")
|
||
|
|
Expect(err).ToNot(HaveOccurred())
|
||
|
|
Expect(out.MappedTags.Path).To(Equal(filePath))
|
||
|
|
})
|
||
|
|
})
|