feat(music): 支持多源识别与刮削交互

This commit is contained in:
jxxghp
2026-08-11 23:34:00 +08:00
parent df4d697845
commit 26fcda661d
31 changed files with 302 additions and 61 deletions
+15
View File
@@ -0,0 +1,15 @@
import { isMusicMediaSource, isValidMediaSourceId } from '@/utils/mediaId'
import { describe, expect, it } from 'vitest'
describe('media source identity utils', () => {
it.each(['musicbrainz', 'theaudiodb', 'doubanmusic'] as const)('recognizes %s as a music source', source => {
expect(isMusicMediaSource(source)).toBe(true)
})
it('uses UUIDs for MusicBrainz and numeric IDs for alternate music sources', () => {
expect(isValidMediaSourceId('977e6978-139d-425c-bb98-6b0c62d1e45e', 'musicbrainz')).toBe(true)
expect(isValidMediaSourceId('32793500', 'theaudiodb')).toBe(true)
expect(isValidMediaSourceId('1401853', 'doubanmusic')).toBe(true)
expect(isValidMediaSourceId('not-a-number', 'theaudiodb')).toBe(false)
})
})