1import { assert, describe, it } from "@effect/vitest";
2import * as Schema from "effect/Schema";
3
4import { ThreadMetadataMcpUpdateInput } from "./threadMetadataMcp.ts";
5
6const decodeUpdate = Schema.decodeUnknownSync(ThreadMetadataMcpUpdateInput);
7
8describe("ThreadMetadataMcpUpdateInput", () => {
9 it("rejects malformed client request ids without normalizing valid keys", () => {
10 const validKey = "metadata-\ud83d\ude80-1";
11 assert.equal(
12 decodeUpdate({ action: "regenerate_title", clientRequestId: validKey }).clientRequestId,
13 validKey,
14 );
15 assert.throws(() =>
16 decodeUpdate({ action: "regenerate_title", clientRequestId: "metadata-\ud800" }),
17 );
18 assert.throws(() =>
19 decodeUpdate({ action: "regenerate_title", clientRequestId: "metadata-\udc00" }),
20 );
21 });
22});