feat: add readServerResource() and listServerResources() api to App (#470)
* feat: add readServerResource() and listServerResources() api to App class * test: add listServerResources and readServerResource integration tests
This commit is contained in:
parent
62c75203b6
commit
4f9a7ebc74
1 changed files with 502 additions and 40 deletions
|
|
@ -779,6 +779,27 @@ describe("App <-> AppBridge integration", () => {
|
|||
expect(result.resources).toEqual(resources);
|
||||
});
|
||||
|
||||
it("onlistresources handles listServerResources() calls from App", async () => {
|
||||
const resources = [
|
||||
{ uri: "test://res-1", name: "Resource 1" },
|
||||
{ uri: "test://res-2", name: "Resource 2", mimeType: "video/mp4" },
|
||||
];
|
||||
const receivedRequests: unknown[] = [];
|
||||
|
||||
bridge.onlistresources = async (params) => {
|
||||
receivedRequests.push(params);
|
||||
return { resources };
|
||||
};
|
||||
|
||||
await bridge.connect(bridgeTransport);
|
||||
await app.connect(appTransport);
|
||||
|
||||
const result = await app.listServerResources({});
|
||||
|
||||
expect(receivedRequests).toHaveLength(1);
|
||||
expect(result.resources).toEqual(resources);
|
||||
});
|
||||
|
||||
it("onreadresource setter registers handler for resources/read requests", async () => {
|
||||
const requestParams = { uri: "test://resource" };
|
||||
const contents = [{ uri: "test://resource", text: "content" }];
|
||||
|
|
@ -802,6 +823,28 @@ describe("App <-> AppBridge integration", () => {
|
|||
expect(result.contents).toEqual(contents);
|
||||
});
|
||||
|
||||
it("onreadresource handles readServerResource() calls from App", async () => {
|
||||
const requestParams = { uri: "videos://bunny-1mb" };
|
||||
const contents = [
|
||||
{ uri: "videos://bunny-1mb", blob: "dmlkZW9kYXRh", mimeType: "video/mp4" },
|
||||
];
|
||||
const receivedRequests: unknown[] = [];
|
||||
|
||||
bridge.onreadresource = async (params) => {
|
||||
receivedRequests.push(params);
|
||||
return { contents };
|
||||
};
|
||||
|
||||
await bridge.connect(bridgeTransport);
|
||||
await app.connect(appTransport);
|
||||
|
||||
const result = await app.readServerResource(requestParams);
|
||||
|
||||
expect(receivedRequests).toHaveLength(1);
|
||||
expect(receivedRequests[0]).toMatchObject(requestParams);
|
||||
expect(result.contents).toEqual(contents);
|
||||
});
|
||||
|
||||
it("onlistresourcetemplates setter registers handler for resources/templates/list requests", async () => {
|
||||
const requestParams = {};
|
||||
const resourceTemplates = [
|
||||
|
|
|
|||
Loading…
Reference in a new issue