Skip to content

Commit 915e836

Browse files
ochafikclaude
andcommitted
refactor(tests): factor out test values and add missing assertions
Address PR review feedback: - Factor out test value objects (toolCall, resultContent, etc.) for clearer tests - Add missing assertions on receivedRequests[0] for list handlers - Improve test readability by defining expected values at the top of each test 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent 10fbccf commit 915e836

File tree

1 file changed

+31
-24
lines changed

1 file changed

+31
-24
lines changed

src/app-bridge.test.ts

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -547,9 +547,9 @@ describe("App <-> AppBridge integration", () => {
547547

548548
it("oncalltool setter registers handler for tools/call requests", async () => {
549549
const toolCall = { name: "test-tool", arguments: { arg: "value" } };
550-
const resultContent = [{ type: "text", text: "result" }];
550+
const resultContent = [{ type: "text" as const, text: "result" }];
551551
const receivedCalls: unknown[] = [];
552-
552+
553553
bridge.oncalltool = async (params) => {
554554
receivedCalls.push(params);
555555
return { content: resultContent };
@@ -567,29 +567,34 @@ describe("App <-> AppBridge integration", () => {
567567
});
568568

569569
it("onlistresources setter registers handler for resources/list requests", async () => {
570+
const requestParams = {};
571+
const resources = [{ uri: "test://resource", name: "Test" }];
570572
const receivedRequests: unknown[] = [];
573+
571574
bridge.onlistresources = async (params) => {
572575
receivedRequests.push(params);
573-
return { resources: [{ uri: "test://resource", name: "Test" }] };
576+
return { resources };
574577
};
575578

576579
await bridge.connect(bridgeTransport);
577580
await app.connect(appTransport);
578581

579582
// App sends resources/list request via the protocol's request method
580583
const result = await app.request(
581-
{ method: "resources/list", params: {} },
584+
{ method: "resources/list", params: requestParams },
582585
ListResourcesResultSchema,
583586
);
584587

585588
expect(receivedRequests).toHaveLength(1);
586-
expect(result.resources).toEqual([
587-
{ uri: "test://resource", name: "Test" },
588-
]);
589+
expect(receivedRequests[0]).toMatchObject(requestParams);
590+
expect(result.resources).toEqual(resources);
589591
});
590592

591593
it("onreadresource setter registers handler for resources/read requests", async () => {
594+
const requestParams = { uri: "test://resource" };
595+
const contents = [{ uri: "test://resource", text: "content" }];
592596
const receivedRequests: unknown[] = [];
597+
593598
bridge.onreadresource = async (params) => {
594599
receivedRequests.push(params);
595600
return { contents: [{ uri: params.uri, text: "content" }] };
@@ -599,59 +604,61 @@ describe("App <-> AppBridge integration", () => {
599604
await app.connect(appTransport);
600605

601606
const result = await app.request(
602-
{ method: "resources/read", params: { uri: "test://resource" } },
607+
{ method: "resources/read", params: requestParams },
603608
ReadResourceResultSchema,
604609
);
605610

606611
expect(receivedRequests).toHaveLength(1);
607-
expect(receivedRequests[0]).toMatchObject({ uri: "test://resource" });
608-
expect(result.contents).toEqual([
609-
{ uri: "test://resource", text: "content" },
610-
]);
612+
expect(receivedRequests[0]).toMatchObject(requestParams);
613+
expect(result.contents).toEqual(contents);
611614
});
612615

613616
it("onlistresourcetemplates setter registers handler for resources/templates/list requests", async () => {
617+
const requestParams = {};
618+
const resourceTemplates = [
619+
{ uriTemplate: "test://{id}", name: "Test Template" },
620+
];
614621
const receivedRequests: unknown[] = [];
622+
615623
bridge.onlistresourcetemplates = async (params) => {
616624
receivedRequests.push(params);
617-
return {
618-
resourceTemplates: [
619-
{ uriTemplate: "test://{id}", name: "Test Template" },
620-
],
621-
};
625+
return { resourceTemplates };
622626
};
623627

624628
await bridge.connect(bridgeTransport);
625629
await app.connect(appTransport);
626630

627631
const result = await app.request(
628-
{ method: "resources/templates/list", params: {} },
632+
{ method: "resources/templates/list", params: requestParams },
629633
ListResourceTemplatesResultSchema,
630634
);
631635

632636
expect(receivedRequests).toHaveLength(1);
633-
expect(result.resourceTemplates).toEqual([
634-
{ uriTemplate: "test://{id}", name: "Test Template" },
635-
]);
637+
expect(receivedRequests[0]).toMatchObject(requestParams);
638+
expect(result.resourceTemplates).toEqual(resourceTemplates);
636639
});
637640

638641
it("onlistprompts setter registers handler for prompts/list requests", async () => {
642+
const requestParams = {};
643+
const prompts = [{ name: "test-prompt" }];
639644
const receivedRequests: unknown[] = [];
645+
640646
bridge.onlistprompts = async (params) => {
641647
receivedRequests.push(params);
642-
return { prompts: [{ name: "test-prompt" }] };
648+
return { prompts };
643649
};
644650

645651
await bridge.connect(bridgeTransport);
646652
await app.connect(appTransport);
647653

648654
const result = await app.request(
649-
{ method: "prompts/list", params: {} },
655+
{ method: "prompts/list", params: requestParams },
650656
ListPromptsResultSchema,
651657
);
652658

653659
expect(receivedRequests).toHaveLength(1);
654-
expect(result.prompts).toEqual([{ name: "test-prompt" }]);
660+
expect(receivedRequests[0]).toMatchObject(requestParams);
661+
expect(result.prompts).toEqual(prompts);
655662
});
656663

657664
it("sendToolListChanged sends notification to app", async () => {

0 commit comments

Comments
 (0)