// The stored claude login's routes and wording. Run by `npm test`, which Node // runs with its built-in test runner and type stripping, so the `.ts` module // is imported as it is. import assert from "node:assert/strict"; import { test } from "node:test"; import { deleteMessage, deleteStoredLoginPath, storedAtMs, storedLoginPath, } from "../src/agent/claude-login/StoredLogin.ts"; test("the routes name the agent, escaped", () => { assert.equal(storedLoginPath("atlas"), "/api/agents/atlas/claude-login"); assert.equal( deleteStoredLoginPath("atlas"), "/api/agents/atlas/claude-login/stored", ); assert.equal(storedLoginPath("a/b"), "/api/agents/a%2Fb/claude-login"); }); test("the time the store gives is read as an instant, or as nothing", () => { assert.equal( storedAtMs({ stored_at: "2026-11-09T20:00:00.123456789Z" }), Date.parse("2026-11-09T20:00:00.123Z"), ); assert.equal(storedAtMs({ stored_at: null }), null); assert.equal(storedAtMs({ stored_at: "not a time" }), null); }); test("the delete's confirmation names the agent", () => { assert.match(deleteMessage("atlas"), /stored claude login for atlas/); assert.match(deleteMessage("atlas"), /not logged out/); });