testLease

tcmts.cli.mcp.testLease · #t4r6cmzu · term

A lease says whose a session's branch is; one that's missing or isn't one says nothing.

import { isSessionBranch, leaseFile, readLease, writeLease } from "#codebase/tcmts/cli/mcp";
import assert from "node:assert/strict";
import fs from "node:fs";
import os from "node:os";
import path from "node:path";

export const testLease = () => {
  const root = fs.mkdtempSync(path.join(os.tmpdir(), "tcm mcp lease "));
  assert.equal(readLease(root, "session/2026-01-01-aaaaaa"), undefined);
  writeLease(root, "session/2026-01-01-aaaaaa", "/work/a");
  assert.equal(readLease(root, "session/2026-01-01-aaaaaa")?.client, "/work/a");
  assert.ok(
    fs.existsSync(path.join(root, ".tcm", "sessions", "session_2026-01-01-aaaaaa", "session.json")),
  );
  fs.mkdirSync(path.dirname(leaseFile(root, "agent/b")), { recursive: true });
  fs.writeFileSync(leaseFile(root, "agent/b"), "{}");
  assert.equal(readLease(root, "agent/b"), undefined);
  assert.ok(isSessionBranch("session/2026-01-01-aaaaaa"));
  assert.ok(!isSessionBranch("agent/b"));
  fs.rmSync(root, { recursive: true, force: true });
}

uses