generated from nhcarrigan/template
fa906684c2
## Summary - **fix**: `show_thinking_blocks` setting now persists across sessions — it was defined on the TypeScript side but missing from the Rust `HikariConfig` struct, so serde silently dropped it on every save/load - **feat**: Tool calls are now rendered as collapsible blocks matching the Extended Thinking block aesthetic, replacing the old inline dropdown approach - **feat**: Add configurable max output tokens setting - **feat**: Use random creative names for conversation tabs - **test**: Significantly expanded frontend unit test coverage - **docs**: Require tests for all changes in CLAUDE.md - **feat**: Allow users to specify a custom terminal font (Closes #176) - **feat**: Display friendly names for memory files derived from the first heading (Closes #177) - **feat**: Add custom UI font support for the app chrome (buttons, labels, tabs) - **fix**: Apply custom UI font to the full app interface — `.app-container` was hardcoded, blocking inheritance from `body`; also renamed "Custom Font" to "Custom Terminal Font" for clarity ✨ This PR was created with help from Hikari~ 🌸 Reviewed-on: #175 Co-authored-by: Hikari <hikari@nhcarrigan.com> Co-committed-by: Hikari <hikari@nhcarrigan.com>
41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
import { describe, it, expect, vi } from "vitest";
|
|
import { platform } from "@tauri-apps/plugin-os";
|
|
import { invoke } from "@tauri-apps/api/core";
|
|
import { sendWSLNotification } from "./wslNotificationHelper";
|
|
|
|
// platform() is mocked in vitest.setup.ts to return "linux" by default
|
|
|
|
describe("sendWSLNotification", () => {
|
|
it("invokes send_windows_notification when platform is windows", async () => {
|
|
vi.mocked(platform).mockResolvedValueOnce("windows" as Awaited<ReturnType<typeof platform>>);
|
|
|
|
await sendWSLNotification("Test Title", "Test body");
|
|
|
|
expect(invoke).toHaveBeenCalledWith("send_windows_notification", {
|
|
title: "Test Title",
|
|
body: "Test body",
|
|
});
|
|
});
|
|
|
|
it("does not invoke on non-Windows platforms", async () => {
|
|
// Default mock returns "linux"
|
|
await sendWSLNotification("Test Title", "Test body");
|
|
|
|
expect(invoke).not.toHaveBeenCalled();
|
|
});
|
|
|
|
it("handles invoke errors gracefully and logs them", async () => {
|
|
vi.mocked(platform).mockResolvedValueOnce("windows" as Awaited<ReturnType<typeof platform>>);
|
|
vi.mocked(invoke).mockRejectedValueOnce(new Error("Windows notification failed"));
|
|
const errorSpy = vi.spyOn(console, "error").mockImplementation(() => {});
|
|
|
|
await sendWSLNotification("Title", "Body");
|
|
|
|
expect(errorSpy).toHaveBeenCalledWith(
|
|
"Failed to send Windows notification:",
|
|
expect.any(Error)
|
|
);
|
|
errorSpy.mockRestore();
|
|
});
|
|
});
|