Skip to content

Commit f08f808

Browse files
fix: return the default dialog value correctly (#366)
Closes #364 Closes #361 --------- Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com>
1 parent dc9a784 commit f08f808

File tree

2 files changed

+32
-4
lines changed

2 files changed

+32
-4
lines changed

src/McpResponse.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,12 @@ export class McpResponse implements Response {
192192

193193
const dialog = context.getDialog();
194194
if (dialog) {
195+
const defaultValueIfNeeded =
196+
dialog.type() === 'prompt'
197+
? ` (default value: "${dialog.defaultValue()}")`
198+
: '';
195199
response.push(`# Open dialog
196-
${dialog.type()}: ${dialog.message()} (default value: ${dialog.message()}).
200+
${dialog.type()}: ${dialog.message()}${defaultValueIfNeeded}.
197201
Call ${handleDialog.name} to handle it before continuing.`);
198202
}
199203

tests/McpResponse.test.ts

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ Emulating: 4x slowdown`,
150150
});
151151
});
152152

153-
it('adds a dialog', async () => {
153+
it('adds a prompt dialog', async () => {
154154
await withBrowser(async (response, context) => {
155155
const page = context.getSelectedPage();
156156
const dialogPromise = new Promise<void>(resolve => {
@@ -159,7 +159,7 @@ Emulating: 4x slowdown`,
159159
});
160160
});
161161
page.evaluate(() => {
162-
alert('test');
162+
prompt('message', 'default');
163163
});
164164
await dialogPromise;
165165
const result = await response.handle('test', context);
@@ -168,7 +168,31 @@ Emulating: 4x slowdown`,
168168
result[0].text,
169169
`# test response
170170
# Open dialog
171-
alert: test (default value: test).
171+
prompt: message (default value: "default").
172+
Call handle_dialog to handle it before continuing.`,
173+
);
174+
});
175+
});
176+
177+
it('adds an alert dialog', async () => {
178+
await withBrowser(async (response, context) => {
179+
const page = context.getSelectedPage();
180+
const dialogPromise = new Promise<void>(resolve => {
181+
page.on('dialog', () => {
182+
resolve();
183+
});
184+
});
185+
page.evaluate(() => {
186+
alert('message');
187+
});
188+
await dialogPromise;
189+
const result = await response.handle('test', context);
190+
await context.getDialog()?.dismiss();
191+
assert.strictEqual(
192+
result[0].text,
193+
`# test response
194+
# Open dialog
195+
alert: message.
172196
Call handle_dialog to handle it before continuing.`,
173197
);
174198
});

0 commit comments

Comments
 (0)