mirror of
https://bitbucket.org/siakitem/my-pi.git
synced 2026-08-28 08:35:57 +00:00
feat: add Kitty-aware completion notifications
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
import assert from "node:assert/strict";
|
||||
import { describe, it } from "node:test";
|
||||
import {
|
||||
parseEnabled,
|
||||
parseKittyVisibility,
|
||||
parseMessageMax,
|
||||
parseMessageSource,
|
||||
parseMinDurationMs,
|
||||
parseNotificationAction,
|
||||
} from "../src/parsers.ts";
|
||||
|
||||
describe("parsers", () => {
|
||||
it("parses message source including privacy mode", () => {
|
||||
assert.equal(parseMessageSource("assistant"), "assistant");
|
||||
assert.equal(parseMessageSource(" user "), "user");
|
||||
assert.equal(parseMessageSource("none"), "none");
|
||||
assert.equal(parseMessageSource("invalid"), "assistant");
|
||||
});
|
||||
|
||||
it("parses and clamps numeric settings", () => {
|
||||
assert.equal(parseMessageMax(undefined), 80);
|
||||
assert.equal(parseMessageMax("12"), 12);
|
||||
assert.equal(parseMessageMax("-1"), 0);
|
||||
assert.equal(parseMessageMax("999"), 500);
|
||||
assert.equal(parseMessageMax("nope"), 80);
|
||||
assert.equal(parseMinDurationMs(undefined), 3_000);
|
||||
assert.equal(parseMinDurationMs(" "), 3_000);
|
||||
assert.equal(parseMinDurationMs("1.25"), 1_250);
|
||||
assert.equal(parseMinDurationMs("9999"), 3_600_000);
|
||||
});
|
||||
|
||||
it("uses fail-safe defaults for boolean and Kitty behavior settings", () => {
|
||||
assert.equal(parseEnabled(undefined), true);
|
||||
assert.equal(parseEnabled("off"), false);
|
||||
assert.equal(parseEnabled("yes"), true);
|
||||
assert.equal(parseKittyVisibility(undefined), "unfocused");
|
||||
assert.equal(parseKittyVisibility("always"), "always");
|
||||
assert.equal(parseKittyVisibility("invalid"), "unfocused");
|
||||
assert.equal(parseNotificationAction("none"), "none");
|
||||
assert.equal(parseNotificationAction("invalid"), "focus");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user