mirror of
https://github.com/navidrome/navidrome.git
synced 2025-04-15 11:40:36 +03:00
* Update AlbumGridView.js * Update AlbumDetails.js * Update AlbumDetails.js * Create DoubleRangeField.js * Update and rename DoubleRangeField.js to RangeFieldDouble.js * Update RangeFieldDouble.js * Update AlbumGridView.js * Update AlbumDetails.js * Update RangeFieldDouble.js * Update index.js * Update RangeFieldDouble.js * Update RangeFieldDouble.js * Update RangeFieldDouble.js * Update RangeFieldDouble.js * Update RangeFieldDouble.js * Update AlbumDetails.js * Update RangeFieldDouble.js * Update AlbumDetails.js * Update RangeFieldDouble.js * Update AlbumDetails.js * Update RangeFieldDouble.js * Update RangeFieldDouble.js * Update AlbumDetails.js * Update AlbumDetails.js * Update RangeFieldDouble.js * Update RangeFieldDouble.js * Update AlbumDetails.js * Update RangeFieldDouble.js * Update AlbumDetails.js * Update en.json * Update en.json * Update AlbumDetails.js * Update RangeFieldDouble.js * Update AlbumGridView.js * Update AlbumDetails.js * Update AlbumSongs.js * Update ContextMenus.js * Update SongDatagrid.js * Update AlbumSongs.js * Update SongDatagrid.js * Update SongDatagrid.js * Update SongDatagrid.js * Update AlbumSongs.js * Update SongList.js * Update playlist_track_repository.go * Update 20230113000000_release_year.go * Update PlayButton.js * Update mediafile_repository.go * Update album.go * Update playlist_track_repository.go * Update playlist_track_repository.go * Update SongDatagrid.js * Update 20230113000000_release_year.go * Update SongDatagrid.js * Update AlbumSongs.js * Update SongDatagrid.js * Update SongDatagrid.js * Update SongDatagrid.js * Update SongDatagrid.js * Update AlbumDetails.js * Update AlbumSongs.js * Update AlbumSongs.js * Update RangeFieldDouble.js * Update SongDatagrid.js * Update 20230113000000_release_year.go * Update 20230113000000_release_year.go * Update 20230113000000_release_year.go * Update 20230113000000_release_year.go * Update AlbumSongs.js * Update AlbumSongs.js * Update mapping.go * Update RangeFieldDouble.js * Update AlbumGridView.js * Update AlbumSongs.js * Update en.json * Update SongDatagrid.js * Update SongDatagrid.js * Update metadata.go * Update mapping.go * Update AlbumDetails.js * Update AlbumGridView.js * Update RangeFieldDouble.js * Update mapping.go * Update metadata.go * Update mapping.go * Update AlbumDetails.js * Update 20230113000000_release_year.go * Update AlbumDetails.js * Update en.json * Update configuration.go * Update mapping.go * Update configuration.go * Update mediafile.go * Update metadata.go * Update RangeFieldDouble.js * Update 20230113000000_release_year.go * Update configuration.go * Update mapping.go * Update mediafile.go * Update mapping.go * Update RangeFieldDouble.js * Update RangeFieldDouble.js * Update RangeFieldDouble.js * Update RangeFieldDouble.js * Update RangeFieldDouble.js * Update 20230113000000_release_year.go * Update AlbumDetails.js * Update RangeFieldDouble.js * Update mapping.go * Update metadata.go * Update album.go * Update mediafile.go * Update mediafile.go * Update album.go * Update fields.go * Update mediafile_repository.go * Update playlist_track_repository.go * Update AlbumSongs.js * Update SongDatagrid.js * Update PlayButton.js * Update SongList.js * Update ContextMenus.js * Update SongDatagrid.js * Update metadata.go * Update ArtistShow.js * Update mapping.go * Update configuration.go * Update mapping.go * Update metadata.go * Update metadata.go * Update mapping.go * Update metadata.go * Update metadata.go * Update mapping.go * Update 20230113000000_release_year.go * Update 20230113000000_release_year.go * Update mapping.go * Update metadata.go * Update metadata.go * Update album.go * Update mediafile.go * Update AlbumDetails.js * Update AlbumSongs.js * Update album.go * Update mediafile.go * Update metadata.go * Update mediafile.go * Update 20230113000000_release_year.go * Update 20230113000000_release_year.go * Update album.go * Update mediafile.go * Update RangeFieldDouble.js * Update AlbumDetails.js * Update AlbumGridView.js * Update en.json * Update AlbumGridView.js * Update RangeFieldDouble.js * Update and rename 20230113000000_release_year.go to 20230113000000_release_date.go * Update album.go * Update mediafile.go * Update fields.go * Update playlist_track_repository.go * Update mediafile_repository.go * Update mapping.go * Update metadata.go * Update mapping.go * Update SongDatagrid.js * Update RangeFieldDouble.js * Update index.js * Update ContextMenus.js * Update PlayButton.js * Create FormatDate.js * Update SongList.js * Update AlbumDetails.js * Update AlbumSongs.js * Update AlbumSongs.js * Update en.json * Update AlbumDetails.js * Update album.go fixed conflict I think? * Update mediafile.go fixed conflict * Format with goimports * Update SongDatagrid.js only show Cat # in desktop view * Update metadata_internal_test.go * Update metadata_test.go * Delete test.mp3 * Add files via upload mp3 test file with Date, Original Date and Release Date * Update metadata_test.go * Update metadata_test.go * Update metadata_test.go * Update metadata_test.go * Update taglib_test.go * Delete test.mp3 * Add files via upload file with replaygain & dates * Update AlbumGridView.js * Update AlbumDetails.js * Update AlbumSongs.js * Update ContextMenus.js * Update FormatDate.js * Update PlayButton.js * Update RangeFieldDouble.js * Update SongDatagrid.js * Update AlbumSongs.js * Update SongDatagrid.js * Update AlbumSongs.js * Fix formatting * Update mapping.go * Update AlbumSongs.js * Update SongDatagrid.js * Update SongDatagrid.js prettier * Create RangeDoubleField.js rename of RangeFieldDouble.js * Update AlbumGridView.js RangeFieldDouble -> RangeDoubleField * Update mediafile.go AllOrNothing() -> allOrNothing() * Update metadata_internal_test.go getYear -> getDate * Update AlbumDetails.js wrote suggested changes * Update en.json Editions -> Releases & fixed the field name * Update configuration.go Rename Editions -> Releases * Update 20230113000000_release_date.go Editions -> Releases * Update album.go Editions -> Releases * Update mediafile.go Editions -> Releases * Update AlbumDetails.js Editions -> Releases * Update AlbumSongs.js Editions -> Releases * Update RangeDoubleField.js Editions -> Releases * Update SongDatagrid.js Editions -> Releases * Update index.js FormatFullDate and RangeDoubleField * Rename FormatDate.js to FormatFullDate.js * Delete RangeFieldDouble.js * Update mediafile.go AllOrNothing -> allOrNothing * Update mapping.go Editions -> Releases * Update AlbumDetails.js prettier * Update SongDatagrid.js showReleaseRow -> showReleaseDivider * Update AlbumSongs.js showReleaseRow -> showReleaseDivider for clarity * Update and rename 20230113000000_release_date.go to 20230515184510_add_release_date.go - rename the migration file - fixed the import to goose/v3 - additional db fields for original date & year * Update 20230515184510_add_release_date.go * Update fields.go * Update album.go * Update mediafile.go * Update mapping.go * Update AlbumDetails.js * Update en.json * Update AlbumDetails.js * Update AlbumDetails.js now hopefully prettier * Update mapping.go --------- Co-authored-by: Deluan <deluan@navidrome.org>
112 lines
3.2 KiB
Go
112 lines
3.2 KiB
Go
package metadata
|
|
|
|
import (
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
var _ = Describe("Tags", func() {
|
|
Describe("getDate", func() {
|
|
It("parses the year correctly", func() {
|
|
var examplesYear = map[string]int{
|
|
"1985": 1985,
|
|
"2002-01": 2002,
|
|
"1969.06": 1969,
|
|
"1980.07.25": 1980,
|
|
"2004-00-00": 2004,
|
|
"2016-12-31": 2016,
|
|
"2013-May-12": 2013,
|
|
"May 12, 2016": 2016,
|
|
"01/10/1990": 1990,
|
|
}
|
|
for tag, expected := range examplesYear {
|
|
md := &Tags{}
|
|
md.tags = map[string][]string{"date": {tag}}
|
|
testYear, _ := md.Date()
|
|
Expect(testYear).To(Equal(expected))
|
|
}
|
|
})
|
|
|
|
It("parses the date correctly", func() {
|
|
var examplesDate = map[string]string{
|
|
"1985": "1985",
|
|
"2002-01": "2002-01",
|
|
"1969.06": "1969",
|
|
"1980.07.25": "1980",
|
|
"2004-00-00": "2004",
|
|
"2016-12-31": "2016-12-31",
|
|
"2013-May-12": "2013",
|
|
"May 12, 2016": "2016",
|
|
"01/10/1990": "1990",
|
|
}
|
|
for tag, expected := range examplesDate {
|
|
md := &Tags{}
|
|
md.tags = map[string][]string{"date": {tag}}
|
|
_, testDate := md.Date()
|
|
Expect(testDate).To(Equal(expected))
|
|
}
|
|
})
|
|
It("returns 0 if year is invalid", func() {
|
|
md := &Tags{}
|
|
md.tags = map[string][]string{"date": {"invalid"}}
|
|
testYear, _ := md.Date()
|
|
Expect(testYear).To(Equal(0))
|
|
})
|
|
})
|
|
|
|
Describe("getMbzID", func() {
|
|
It("return a valid MBID", func() {
|
|
md := &Tags{}
|
|
md.tags = map[string][]string{
|
|
"musicbrainz_trackid": {"8f84da07-09a0-477b-b216-cc982dabcde1"},
|
|
"musicbrainz_releasetrackid": {"6caf16d3-0b20-3fe6-8020-52e31831bc11"},
|
|
"musicbrainz_albumid": {"f68c985d-f18b-4f4a-b7f0-87837cf3fbf9"},
|
|
"musicbrainz_artistid": {"89ad4ac3-39f7-470e-963a-56509c546377"},
|
|
"musicbrainz_albumartistid": {"ada7a83c-e3e1-40f1-93f9-3e73dbc9298a"},
|
|
}
|
|
Expect(md.MbzTrackID()).To(Equal("8f84da07-09a0-477b-b216-cc982dabcde1"))
|
|
Expect(md.MbzReleaseTrackID()).To(Equal("6caf16d3-0b20-3fe6-8020-52e31831bc11"))
|
|
Expect(md.MbzAlbumID()).To(Equal("f68c985d-f18b-4f4a-b7f0-87837cf3fbf9"))
|
|
Expect(md.MbzArtistID()).To(Equal("89ad4ac3-39f7-470e-963a-56509c546377"))
|
|
Expect(md.MbzAlbumArtistID()).To(Equal("ada7a83c-e3e1-40f1-93f9-3e73dbc9298a"))
|
|
})
|
|
It("return empty string for invalid MBID", func() {
|
|
md := &Tags{}
|
|
md.tags = map[string][]string{
|
|
"musicbrainz_trackid": {"11406732-6"},
|
|
"musicbrainz_albumid": {"11406732"},
|
|
"musicbrainz_artistid": {"200455"},
|
|
"musicbrainz_albumartistid": {"194"},
|
|
}
|
|
Expect(md.MbzTrackID()).To(Equal(""))
|
|
Expect(md.MbzAlbumID()).To(Equal(""))
|
|
Expect(md.MbzArtistID()).To(Equal(""))
|
|
Expect(md.MbzAlbumArtistID()).To(Equal(""))
|
|
})
|
|
})
|
|
|
|
Describe("getAllTagValues", func() {
|
|
It("returns values from all tag names", func() {
|
|
md := &Tags{}
|
|
md.tags = map[string][]string{
|
|
"genre": {"Rock", "Pop", "New Wave"},
|
|
}
|
|
|
|
Expect(md.Genres()).To(ConsistOf("Rock", "Pop", "New Wave"))
|
|
})
|
|
})
|
|
|
|
Describe("Bpm", func() {
|
|
var t *Tags
|
|
BeforeEach(func() {
|
|
t = &Tags{tags: map[string][]string{
|
|
"fbpm": []string{"141.7"},
|
|
}}
|
|
})
|
|
|
|
It("rounds a floating point fBPM tag", func() {
|
|
Expect(t.Bpm()).To(Equal(142))
|
|
})
|
|
})
|
|
})
|