File tree Expand file tree Collapse file tree 3 files changed +16
-11
lines changed
Expand file tree Collapse file tree 3 files changed +16
-11
lines changed Original file line number Diff line number Diff line change @@ -134,7 +134,7 @@ export class McpContext implements Context {
134134 async closePage ( pageIdx : number ) : Promise < void > {
135135 if ( this . #pages. length === 1 ) {
136136 throw new Error (
137- 'Unable to close the last page in the browser . It is fine to keep the last page open.' ,
137+ 'The last open page cannot be closed . It is fine to keep it open.' ,
138138 ) ;
139139 }
140140 const page = this . getPageByIdx ( pageIdx ) ;
Original file line number Diff line number Diff line change @@ -58,7 +58,15 @@ export const closePage = defineTool({
5858 ) ,
5959 } ,
6060 handler : async ( request , response , context ) => {
61- await context . closePage ( request . params . pageIdx ) ;
61+ try {
62+ await context . closePage ( request . params . pageIdx ) ;
63+ } catch ( err ) {
64+ if ( err . message . startsWith ( 'The last open page cannot be closed.' ) ) {
65+ response . appendResponseLine ( err . message ) ;
66+ } else {
67+ throw err ;
68+ }
69+ }
6270 response . setIncludePages ( true ) ;
6371 } ,
6472} ) ;
Original file line number Diff line number Diff line change @@ -56,15 +56,12 @@ describe('pages', () => {
5656 it ( 'cannot close the last page' , async ( ) => {
5757 await withBrowser ( async ( response , context ) => {
5858 const page = context . getSelectedPage ( ) ;
59- try {
60- await closePage . handler ( { params : { pageIdx : 0 } } , response , context ) ;
61- assert . fail ( 'not reached' ) ;
62- } catch ( err ) {
63- assert . strictEqual (
64- err . message ,
65- 'Unable to close the last page in the browser. It is fine to keep the last page open.' ,
66- ) ;
67- }
59+ await closePage . handler ( { params : { pageIdx : 0 } } , response , context ) ;
60+ assert . deepStrictEqual (
61+ response . responseLines [ 0 ] ,
62+ `The last open page cannot be closed. It is fine to keep it open.` ,
63+ ) ;
64+ assert . ok ( response . includePages ) ;
6865 assert . ok ( ! page . isClosed ( ) ) ;
6966 } ) ;
7067 } ) ;
You can’t perform that action at this time.
0 commit comments