43 lines
1.2 KiB
TypeScript
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" });
|
|
});
|
|
});
|