mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-08-22 08:52:21 +08:00
test(subscribe): cover subscription calendar (#541)
This commit is contained in:
@@ -1,7 +1,22 @@
|
||||
import type { MediaInfo } from '@/api/types'
|
||||
import type { MediaInfo, TmdbEpisode } from '@/api/types'
|
||||
|
||||
let episodeSeed = 0
|
||||
let mediaSeed = 0
|
||||
|
||||
export function createTmdbEpisode(overrides: Partial<TmdbEpisode> = {}): TmdbEpisode {
|
||||
episodeSeed += 1
|
||||
return {
|
||||
air_date: '2026-01-01',
|
||||
crew: [],
|
||||
episode_number: episodeSeed,
|
||||
guest_stars: [],
|
||||
name: `测试剧集 ${episodeSeed}`,
|
||||
runtime: 45,
|
||||
season_number: 1,
|
||||
...overrides,
|
||||
}
|
||||
}
|
||||
|
||||
export function createMediaInfo(overrides: Partial<MediaInfo> = {}): MediaInfo {
|
||||
mediaSeed += 1
|
||||
return {
|
||||
|
||||
29
tests/support/msw/handlers/media.ts
Normal file
29
tests/support/msw/handlers/media.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
import type { MediaInfo, TmdbEpisode } from '@/api/types'
|
||||
import { HttpResponse, http, type JsonBodyType } from 'msw'
|
||||
|
||||
const API_BASE_URL = 'http://localhost/api/v1/'
|
||||
|
||||
export function mediaDetailsHandler(
|
||||
tmdbId: number,
|
||||
response: MediaInfo,
|
||||
status = 200,
|
||||
onRequest: (url: URL) => void = () => {},
|
||||
) {
|
||||
return http.get(new URL(`media/tmdb:${tmdbId}`, API_BASE_URL).href, ({ request }) => {
|
||||
onRequest(new URL(request.url))
|
||||
return HttpResponse.json(response as unknown as JsonBodyType, { status })
|
||||
})
|
||||
}
|
||||
|
||||
export function tmdbSeasonEpisodesHandler(
|
||||
tmdbId: number,
|
||||
season: number,
|
||||
response: TmdbEpisode[],
|
||||
status = 200,
|
||||
onRequest: (url: URL) => void = () => {},
|
||||
) {
|
||||
return http.get(new URL(`tmdb/${tmdbId}/${season}`, API_BASE_URL).href, ({ request }) => {
|
||||
onRequest(new URL(request.url))
|
||||
return HttpResponse.json(response as unknown as JsonBodyType, { status })
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user