char-fork/llama.cpp

git clone https://git.t4t.associates/char-fork/llama.cpp

Aleksander Grygierui: Stores split refactor (#27240)521a64cd0

char/aliceai-t5-moe
2.3 KiB78 linesraw
1import { McpServerForm } from '$lib/components/app/mcp';
2import { mcpStore } from '$lib/stores/mcp/index.svelte';
3import { settingsStore } from '$lib/stores/settings/index.svelte';
4import { beforeEach, describe, expect, it } from 'vitest';
5import { render } from 'vitest-browser-svelte';
6
7describe('mcp server display name', () => {
8	beforeEach(() => {
9		settingsStore.updateConfig('mcpServers', '[]');
10	});
11
12	it('custom display name wins over the url fallback', () => {
13		const server = mcpStore.addServer({
14			displayName: 'My Tools',
15			enabled: false,
16			url: 'https://mcp.example.com/a'
17		});
18
19		expect(mcpStore.getServerLabel(server)).toBe('My Tools');
20	});
21
22	it('without a custom name the url is the label', () => {
23		const server = mcpStore.addServer({ enabled: false, url: 'https://mcp.example.com/a' });
24
25		expect(mcpStore.getServerLabel(server)).toBe('https://mcp.example.com/a');
26	});
27
28	it('identical labels get positional suffixes', () => {
29		const a = mcpStore.addServer({
30			displayName: 'GitHub',
31			enabled: false,
32			url: 'https://mcp.example.com/a'
33		});
34		const b = mcpStore.addServer({
35			displayName: 'GitHub',
36			enabled: false,
37			url: 'https://mcp.example.com/b'
38		});
39
40		expect(mcpStore.getServerLabel(a)).toBe('GitHub (1)');
41		expect(mcpStore.getServerLabel(b)).toBe('GitHub (2)');
42	});
43
44	it('renaming one twin dissolves the suffixes', () => {
45		const a = mcpStore.addServer({
46			displayName: 'GitHub',
47			enabled: false,
48			url: 'https://mcp.example.com/a'
49		});
50		const b = mcpStore.addServer({
51			displayName: 'GitHub',
52			enabled: false,
53			url: 'https://mcp.example.com/b'
54		});
55
56		mcpStore.updateServer(b.id, { displayName: 'GitHub Work' });
57		expect(mcpStore.getServerLabel(a)).toBe('GitHub');
58		expect(mcpStore.getServerLabel(mcpStore.getServerById(b.id)!)).toBe('GitHub Work');
59	});
60
61	it('the form exposes an editable display name field', async () => {
62		let captured = '';
63
64		const screen = await render(McpServerForm, {
65			headers: '',
66			name: '',
67			onHeadersChange: () => {},
68			onNameChange: (v: string) => (captured = v),
69			onUrlChange: () => {},
70			url: 'https://mcp.example.com/a'
71		});
72		const input = screen.getByLabelText('Display name');
73
74		await expect.element(input).toBeVisible();
75		await input.fill('My Custom Server');
76		expect(captured).toBe('My Custom Server');
77	});
78});