Skip to content

Commit 3f9acec

Browse files
committed
Add a test for listCallback
1 parent 1970509 commit 3f9acec

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed

src/server/index.test.ts

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1065,6 +1065,63 @@ describe("Server.resource", () => {
10651065
);
10661066
});
10671067

1068+
test("should register resource template with listCallback", async () => {
1069+
const server = new Server({
1070+
name: "test server",
1071+
version: "1.0",
1072+
});
1073+
const client = new Client({
1074+
name: "test client",
1075+
version: "1.0",
1076+
});
1077+
1078+
server.resource(
1079+
"test",
1080+
new UriTemplate("test://resource/{id}"),
1081+
async () => ({
1082+
resources: [
1083+
{
1084+
name: "Resource 1",
1085+
uri: "test://resource/1",
1086+
},
1087+
{
1088+
name: "Resource 2",
1089+
uri: "test://resource/2",
1090+
},
1091+
],
1092+
}),
1093+
async (uri) => ({
1094+
contents: [
1095+
{
1096+
uri: uri.href,
1097+
text: "Test content",
1098+
},
1099+
],
1100+
}),
1101+
);
1102+
1103+
const [clientTransport, serverTransport] =
1104+
InMemoryTransport.createLinkedPair();
1105+
1106+
await Promise.all([
1107+
client.connect(clientTransport),
1108+
server.connect(serverTransport),
1109+
]);
1110+
1111+
const result = await client.request(
1112+
{
1113+
method: "resources/list",
1114+
},
1115+
ListResourcesResultSchema,
1116+
);
1117+
1118+
expect(result.resources).toHaveLength(2);
1119+
expect(result.resources[0].name).toBe("Resource 1");
1120+
expect(result.resources[0].uri).toBe("test://resource/1");
1121+
expect(result.resources[1].name).toBe("Resource 2");
1122+
expect(result.resources[1].uri).toBe("test://resource/2");
1123+
});
1124+
10681125
test("should prevent duplicate resource registration", () => {
10691126
const server = new Server({
10701127
name: "test server",

0 commit comments

Comments
 (0)