test(site): cover site user data dialog (#564)

This commit is contained in:
InfinityPacer
2026-07-19 17:33:53 +08:00
committed by GitHub
parent 2542339733
commit 7f8e6952df
9 changed files with 451 additions and 21 deletions

View File

@@ -31,9 +31,14 @@ export function createSiteUserData(overrides: Partial<SiteUserData> = {}): SiteU
return {
bonus: 100,
download: 1024,
join_at: '2024-01-02 10:00:00',
ratio: 2,
seeding: 3,
seeding_info: [],
seeding_size: 4 * 1024 ** 3,
updated_day: '2026-07-18',
upload: 2048,
user_level: 'Elite',
username: 'site-user',
...overrides,
}

View File

@@ -30,6 +30,7 @@ export const siteApiUrls = {
statistic: (domain: string) => new URL(`site/statistic/${domain}`, API_BASE_URL).href,
statistics: new URL('site/statistic', API_BASE_URL).href,
test: (id: number) => new URL(`site/test/${id}`, API_BASE_URL).href,
userData: (id: number) => new URL(`site/userdata/${id}`, API_BASE_URL).href,
userDataLatest: new URL('site/userdata/latest', API_BASE_URL).href,
}
@@ -80,6 +81,30 @@ export function siteUserDataLatestHandler(
})
}
export function siteUserDataHandler(
id: number,
result: Pick<ApiResponse<SiteUserData[]>, 'data' | 'message' | 'success'>,
status = 200,
onRequest: () => void | Promise<void> = () => {},
) {
return http.get(siteApiUrls.userData(id), async () => {
await onRequest()
return response(result as unknown as JsonBodyType, status)
})
}
export function refreshSiteUserDataHandler(
id: number,
result: Pick<ApiResponse<Record<string, unknown>>, 'data' | 'message' | 'success'>,
status = 200,
onRequest: () => void | Promise<void> = () => {},
) {
return http.post(siteApiUrls.userData(id), async () => {
await onRequest()
return response(result as unknown as JsonBodyType, status)
})
}
export function saveSitePrioritiesHandler(
onSave: (priorities: Array<{ id: number; pri: number }>) => void | Promise<void> = () => {},
options: { status?: number; success?: boolean } = {},