Skip to content

Commit eb8c446

Browse files
committed
feat: resource completions
1 parent db4d61c commit eb8c446

24 files changed

Lines changed: 1168 additions & 160 deletions

src/__tests__/__snapshots__/resource.patternFlyComponentsIndex.test.ts.snap

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,29 @@ exports[`patternFlyComponentsIndexResource should have a consistent return struc
55
"config": true,
66
"handler": [Function],
77
"name": "patternfly-components-index",
8-
"uri": "patternfly://components/index",
8+
"uri": ResourceTemplate {
9+
"_callbacks": {
10+
"complete": {
11+
"category": [Function],
12+
"version": [Function],
13+
},
14+
"list": [Function],
15+
},
16+
"_uriTemplate": UriTemplate {
17+
"parts": [
18+
"patternfly://components/index",
19+
{
20+
"exploded": false,
21+
"name": "version",
22+
"names": [
23+
"version",
24+
"category",
25+
],
26+
"operator": "?",
27+
},
28+
],
29+
"template": "patternfly://components/index{?version,category}",
30+
},
31+
},
932
}
1033
`;

src/__tests__/__snapshots__/resource.patternFlyDocsIndex.test.ts.snap

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,31 @@ exports[`patternFlyDocsIndexResource should have a consistent return structure:
55
"config": true,
66
"handler": [Function],
77
"name": "patternfly-docs-index",
8-
"uri": "patternfly://docs/index",
8+
"uri": ResourceTemplate {
9+
"_callbacks": {
10+
"complete": {
11+
"category": [Function],
12+
"section": [Function],
13+
"version": [Function],
14+
},
15+
"list": [Function],
16+
},
17+
"_uriTemplate": UriTemplate {
18+
"parts": [
19+
"patternfly://docs/index",
20+
{
21+
"exploded": false,
22+
"name": "version",
23+
"names": [
24+
"version",
25+
"category",
26+
"section",
27+
],
28+
"operator": "?",
29+
},
30+
],
31+
"template": "patternfly://docs/index{?version,category,section}",
32+
},
33+
},
934
}
1035
`;

src/__tests__/__snapshots__/resource.patternFlyDocsTemplate.test.ts.snap

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ exports[`patternFlyDocsTemplateResource should have a consistent return structur
77
"name": "patternfly-docs-template",
88
"uri": ResourceTemplate {
99
"_callbacks": {
10+
"complete": {
11+
"category": [Function],
12+
"name": [Function],
13+
"section": [Function],
14+
"version": [Function],
15+
},
1016
"list": undefined,
1117
},
1218
"_uriTemplate": UriTemplate {
@@ -20,8 +26,18 @@ exports[`patternFlyDocsTemplateResource should have a consistent return structur
2026
],
2127
"operator": "",
2228
},
29+
{
30+
"exploded": false,
31+
"name": "version",
32+
"names": [
33+
"version",
34+
"category",
35+
"section",
36+
],
37+
"operator": "?",
38+
},
2339
],
24-
"template": "patternfly://docs/{name}",
40+
"template": "patternfly://docs/{name}{?version,category,section}",
2541
},
2642
},
2743
}

src/__tests__/__snapshots__/resource.patternFlySchemasIndex.test.ts.snap

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,29 @@ exports[`patternFlySchemasIndexResource should have a consistent return structur
55
"config": true,
66
"handler": [Function],
77
"name": "patternfly-schemas-index",
8-
"uri": "patternfly://schemas/index",
8+
"uri": ResourceTemplate {
9+
"_callbacks": {
10+
"complete": {
11+
"category": [Function],
12+
"version": [Function],
13+
},
14+
"list": [Function],
15+
},
16+
"_uriTemplate": UriTemplate {
17+
"parts": [
18+
"patternfly://schemas/index",
19+
{
20+
"exploded": false,
21+
"name": "version",
22+
"names": [
23+
"version",
24+
"category",
25+
],
26+
"operator": "?",
27+
},
28+
],
29+
"template": "patternfly://schemas/index{?version,category}",
30+
},
31+
},
932
}
1033
`;

src/__tests__/__snapshots__/resource.patternFlySchemasTemplate.test.ts.snap

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ exports[`patternFlySchemasTemplateResource should have a consistent return struc
77
"name": "patternfly-schemas-template",
88
"uri": ResourceTemplate {
99
"_callbacks": {
10+
"complete": {
11+
"category": [Function],
12+
"name": [Function],
13+
"version": [Function],
14+
},
1015
"list": undefined,
1116
},
1217
"_uriTemplate": UriTemplate {
@@ -20,8 +25,17 @@ exports[`patternFlySchemasTemplateResource should have a consistent return struc
2025
],
2126
"operator": "",
2227
},
28+
{
29+
"exploded": false,
30+
"name": "version",
31+
"names": [
32+
"version",
33+
"category",
34+
],
35+
"operator": "?",
36+
},
2337
],
24-
"template": "patternfly://schemas/{name}",
38+
"template": "patternfly://schemas/{name}{?version,category}",
2539
},
2640
},
2741
}

src/__tests__/__snapshots__/server.test.ts.snap

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@ exports[`runServer should attempt to run server, create transport, connect, and
158158
},
159159
{
160160
"capabilities": {
161+
"completions": {},
161162
"resources": {},
162163
"tools": {},
163164
},
@@ -221,6 +222,7 @@ exports[`runServer should attempt to run server, disable SIGINT handler: diagnos
221222
},
222223
{
223224
"capabilities": {
225+
"completions": {},
224226
"resources": {},
225227
"tools": {},
226228
},
@@ -279,6 +281,7 @@ exports[`runServer should attempt to run server, enable SIGINT handler explicitl
279281
},
280282
{
281283
"capabilities": {
284+
"completions": {},
282285
"resources": {},
283286
"tools": {},
284287
},
@@ -351,6 +354,7 @@ exports[`runServer should attempt to run server, register a tool: diagnostics 1`
351354
},
352355
{
353356
"capabilities": {
357+
"completions": {},
354358
"resources": {},
355359
"tools": {},
356360
},
@@ -434,6 +438,7 @@ exports[`runServer should attempt to run server, register multiple tools: diagno
434438
},
435439
{
436440
"capabilities": {
441+
"completions": {},
437442
"resources": {},
438443
"tools": {},
439444
},
@@ -500,6 +505,7 @@ exports[`runServer should attempt to run server, use custom options: diagnostics
500505
},
501506
{
502507
"capabilities": {
508+
"completions": {},
503509
"resources": {},
504510
"tools": {},
505511
},
@@ -572,6 +578,7 @@ exports[`runServer should attempt to run server, use default tools, http: diagno
572578
},
573579
{
574580
"capabilities": {
581+
"completions": {},
575582
"resources": {},
576583
"tools": {},
577584
},
@@ -648,6 +655,7 @@ exports[`runServer should attempt to run server, use default tools, stdio: diagn
648655
},
649656
{
650657
"capabilities": {
658+
"completions": {},
651659
"resources": {},
652660
"tools": {},
653661
},

src/__tests__/resource.patternFlyComponentsIndex.test.ts

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { McpError } from '@modelcontextprotocol/sdk/types.js';
22
import {
33
patternFlyComponentsIndexResource,
4+
listResources,
45
resourceCallback
56
} from '../resource.patternFlyComponentsIndex';
67
import { isPlainObject } from '../server.helpers';
@@ -18,19 +19,38 @@ describe('patternFlyComponentsIndexResource', () => {
1819
});
1920
});
2021

22+
describe('listResources', () => {
23+
it('should return a list of resources', async () => {
24+
const resources = await listResources();
25+
26+
expect(resources.resources).toBeDefined();
27+
28+
console.warn(resources.resources);
29+
30+
const everyResourceSameProperties = resources.resources.every((obj: any) =>
31+
Boolean(obj.uri) &&
32+
/^patternfly:\/\/components\//.test(obj.uri) &&
33+
Boolean(obj.name) &&
34+
Boolean(obj.mimeType) &&
35+
Boolean(obj.description));
36+
37+
expect(everyResourceSameProperties).toBe(true);
38+
});
39+
});
40+
2141
describe('resourceCallback', () => {
2242
it.each([
2343
{
2444
description: 'default',
2545
variables: {},
26-
expected: '# PatternFly Component Names Index for "v6"'
46+
expected: '# PatternFly Components Index for "v6"'
2747
},
2848
{
2949
description: 'explicit valid version',
3050
variables: {
3151
version: 'v6'
3252
},
33-
expected: '# PatternFly Component Names Index for "v6"'
53+
expected: '# PatternFly Components Index for "v6"'
3454
},
3555
{
3656
description: 'category',

0 commit comments

Comments
 (0)