mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-06 16:16:42 +08:00
feat(media-source): 支持插件注册的媒体数据源,各来源选择器与全局搜索适配扩展来源
This commit is contained in:
@@ -1,4 +1,10 @@
|
||||
import { isMusicMediaSource, isValidMediaSourceId, parseMediaDataSources } from '@/utils/mediaId'
|
||||
import {
|
||||
isMusicMediaSource,
|
||||
isValidMediaSourceId,
|
||||
parseMediaDataSources,
|
||||
setMediaSourceCatalog,
|
||||
supportsMediaSourceType,
|
||||
} from '@/utils/mediaId'
|
||||
import { describe, expect, it } from 'vitest'
|
||||
|
||||
describe('media source identity utils', () => {
|
||||
@@ -6,6 +12,31 @@ describe('media source identity utils', () => {
|
||||
expect(isMusicMediaSource(source)).toBe(true)
|
||||
})
|
||||
|
||||
it('recognizes a plugin-registered music source', () => {
|
||||
setMediaSourceCatalog([
|
||||
{
|
||||
name: 'Acme Music',
|
||||
media_source: 'acme.music',
|
||||
media_types: ['音乐'],
|
||||
},
|
||||
])
|
||||
expect(isMusicMediaSource('acme.music')).toBe(true)
|
||||
setMediaSourceCatalog([])
|
||||
})
|
||||
|
||||
it('keeps a source with mixed video and music capabilities in both lists', () => {
|
||||
const source = {
|
||||
media_types: ['电影', '电视剧', '音乐'],
|
||||
}
|
||||
expect(supportsMediaSourceType(source, 'media')).toBe(true)
|
||||
expect(supportsMediaSourceType(source, 'music')).toBe(true)
|
||||
})
|
||||
|
||||
it('accepts API-style media type keys for plugin sources', () => {
|
||||
expect(supportsMediaSourceType({ media_types: ['movie', 'music'] }, 'media')).toBe(true)
|
||||
expect(supportsMediaSourceType({ media_types: ['movie', 'music'] }, 'music')).toBe(true)
|
||||
})
|
||||
|
||||
it.each([
|
||||
['themoviedb', ['themoviedb']],
|
||||
[' musicbrainz, theaudiodb,unknown,musicbrainz ', ['musicbrainz', 'theaudiodb', 'unknown']],
|
||||
|
||||
Reference in New Issue
Block a user