This repository has been archived on 2026-08-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
pi-web/src/shared/activity.test.ts
T

30 lines
1.2 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { isSessionActive, isWorkspaceActivityActive } from "./activity";
import type { SessionStatus, WorkspaceActivity } from "./apiTypes";
const idleStatus: SessionStatus = {
sessionId: "s1",
isStreaming: false,
isCompacting: false,
isBashRunning: false,
pendingMessageCount: 0,
queuedMessages: [],
tokens: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
cost: 0,
};
describe("activity helpers", () => {
it("detects active session states", () => {
expect(isSessionActive(idleStatus)).toBe(false);
expect(isSessionActive({ ...idleStatus, isStreaming: true })).toBe(true);
expect(isSessionActive({ ...idleStatus, pendingMessageCount: 2 })).toBe(true);
});
it("detects workspace activity presence without exposing details", () => {
const idle: WorkspaceActivity = { cwd: "/repo", hasSessionActivity: false, hasTerminalActivity: false, updatedAt: "now" };
expect(isWorkspaceActivityActive(idle)).toBe(false);
expect(isWorkspaceActivityActive({ ...idle, hasSessionActivity: true })).toBe(true);
expect(isWorkspaceActivityActive({ ...idle, hasTerminalActivity: true })).toBe(true);
});
});