@@ -123,3 +123,76 @@ func TestFlatTracks(t *testing.T) {
123123 assert .Equal (t , "regular-track" , tracks [1 ].ID )
124124 })
125125}
126+
127+ func TestArtistEnName (t * testing.T ) {
128+ t .Parallel ()
129+
130+ t .Run ("returns primary non-ended English alias" , func (t * testing.T ) {
131+ t .Parallel ()
132+ artist := Artist {
133+ Name : "跡部進一" ,
134+ Aliases : []Alias {
135+ {Name : "Shinichi Atobe" , Locale : "en" , Primary : true , Ended : false },
136+ {Name : "Other English Name" , Locale : "en" , Primary : false , Ended : false },
137+ },
138+ }
139+ assert .Equal (t , "Shinichi Atobe" , artistEnName (artist ))
140+ })
141+
142+ t .Run ("returns non-primary non-ended English alias when no primary exists" , func (t * testing.T ) {
143+ t .Parallel ()
144+ artist := Artist {
145+ Name : "Native Name" ,
146+ Aliases : []Alias {
147+ {Name : "English Name" , Locale : "en" , Primary : false , Ended : false },
148+ },
149+ }
150+ assert .Equal (t , "English Name" , artistEnName (artist ))
151+ })
152+
153+ t .Run ("skips ended English aliases" , func (t * testing.T ) {
154+ t .Parallel ()
155+ artist := Artist {
156+ Name : "Taylor Swift" ,
157+ Aliases : []Alias {
158+ {Name : "Dr. Taylor Alison Swift" , Locale : "en" , Primary : false , Ended : true },
159+ {Name : "Taylor Swift" , Locale : "en" , Primary : true , Ended : false },
160+ },
161+ }
162+ assert .Equal (t , "Taylor Swift" , artistEnName (artist ))
163+ })
164+
165+ t .Run ("returns artist name when only ended English aliases exist" , func (t * testing.T ) {
166+ t .Parallel ()
167+ artist := Artist {
168+ Name : "Artist Name" ,
169+ Aliases : []Alias {
170+ {Name : "Old English Name" , Locale : "en" , Primary : true , Ended : true },
171+ },
172+ }
173+ assert .Equal (t , "Artist Name" , artistEnName (artist ))
174+ })
175+
176+ t .Run ("returns artist name when no English aliases exist" , func (t * testing.T ) {
177+ t .Parallel ()
178+ artist := Artist {
179+ Name : "Artist Name" ,
180+ Aliases : []Alias {
181+ {Name : "日本語名" , Locale : "ja" , Primary : true , Ended : false },
182+ },
183+ }
184+ assert .Equal (t , "Artist Name" , artistEnName (artist ))
185+ })
186+
187+ t .Run ("prioritizes primary over non-primary even if non-primary appears first" , func (t * testing.T ) {
188+ t .Parallel ()
189+ artist := Artist {
190+ Name : "Native Name" ,
191+ Aliases : []Alias {
192+ {Name : "Non-Primary English" , Locale : "en" , Primary : false , Ended : false },
193+ {Name : "Primary English" , Locale : "en" , Primary : true , Ended : false },
194+ },
195+ }
196+ assert .Equal (t , "Primary English" , artistEnName (artist ))
197+ })
198+ }
0 commit comments