Files
silo-server/web/src/components/adminSessionActions.test.ts
T

43 lines
1.2 KiB
TypeScript

import { describe, expect, it } from "vitest";
import type { AdminSession } from "@/api/types";
import { getPrimaryPlaybackAction } from "./adminSessionActionModel";
const baseSession: AdminSession = {
session_id: "session-1",
user_id: 1,
username: "alex",
profile_id: "profile-1",
media_file_id: 100,
requested_media_file_id: 100,
media_title: "Heat",
media_type: "movie",
play_method: "direct",
reporting_node: "node-1",
file_duration: 3600,
started_at: "2026-03-24T12:00:00Z",
updated_at: "2026-03-24T12:05:00Z",
is_paused: false,
has_playback_control: true,
audio_track_index: 0,
transcode_audio: false,
stream_bitrate_kbps: null,
target_bitrate_kbps: null,
source_audio_channels: null,
source_bitrate_kbps: null,
};
describe("getPrimaryPlaybackAction", () => {
it("returns resume for paused sessions", () => {
expect(
getPrimaryPlaybackAction({
...baseSession,
is_paused: true,
}),
).toEqual({ action: "resume", label: "Resume" });
});
it("returns pause for active sessions", () => {
expect(getPrimaryPlaybackAction(baseSession)).toEqual({ action: "pause", label: "Pause" });
});
});