Files
silo-server/web/src/pages/adminActivityPresentation.test.ts
T

53 lines
2.3 KiB
TypeScript

import { describe, expect, it } from "vitest";
import type { AdminSession } from "@/api/types";
import { formatVideoDetail, formatVideoSummary } from "./adminActivityPresentation";
function makeSession(overrides: Partial<AdminSession> = {}): AdminSession {
return {
session_id: overrides.session_id ?? "session-1",
user_id: overrides.user_id ?? 1,
username: overrides.username ?? "admin",
profile_id: overrides.profile_id ?? "default",
media_file_id: overrides.media_file_id ?? 2,
requested_media_file_id: overrides.requested_media_file_id ?? 2,
media_title: overrides.media_title ?? "Example",
media_type: overrides.media_type ?? "movie",
play_method: overrides.play_method ?? "transcode",
reporting_node: overrides.reporting_node ?? "local",
file_duration: overrides.file_duration ?? 3600,
started_at: overrides.started_at ?? new Date().toISOString(),
updated_at: overrides.updated_at ?? new Date().toISOString(),
is_paused: overrides.is_paused ?? false,
audio_track_index: overrides.audio_track_index ?? 0,
transcode_audio: overrides.transcode_audio ?? true,
stream_bitrate_kbps: overrides.stream_bitrate_kbps ?? 8000,
target_bitrate_kbps: overrides.target_bitrate_kbps ?? 8000,
source_bitrate_kbps: overrides.source_bitrate_kbps ?? 9000,
source_video_codec: overrides.source_video_codec ?? "h264",
source_video_resolution: overrides.source_video_resolution ?? "1080p",
target_video_codec: overrides.target_video_codec ?? "h264",
target_resolution: overrides.target_resolution ?? "1080p",
source_audio_codec: overrides.source_audio_codec ?? "aac",
source_audio_channels: overrides.source_audio_channels ?? 2,
requested_video_codec: overrides.requested_video_codec ?? "hevc",
requested_video_resolution: overrides.requested_video_resolution ?? "2160p",
};
}
describe("adminActivityPresentation", () => {
it("uses the effective source as the primary video summary", () => {
expect(formatVideoSummary(makeSession())).toBe("H.264 · 1080p");
});
it("explains auto-switched requested sources in the detail line", () => {
expect(
formatVideoDetail(
makeSession({
media_file_id: 2,
requested_media_file_id: 1,
}),
),
).toBe("Auto-switched from HEVC · 2160p · Output → H.264 · 1080p");
});
});