mirror of
https://github.com/microsoft/playwright-mcp.git
synced 2025-07-28 01:32:27 +08:00
chore: test --vision (#54)
This commit is contained in:
parent
d4bc2c78d2
commit
fb24561c67
@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
import { test, expect } from './fixtures';
|
import { test, expect } from './fixtures';
|
||||||
|
|
||||||
test('test tool list', async ({ server }) => {
|
test('test tool list', async ({ server, visionServer }) => {
|
||||||
const list = await server.send({
|
const list = await server.send({
|
||||||
jsonrpc: '2.0',
|
jsonrpc: '2.0',
|
||||||
id: 1,
|
id: 1,
|
||||||
@ -69,6 +69,56 @@ test('test tool list', async ({ server }) => {
|
|||||||
],
|
],
|
||||||
}),
|
}),
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
const visionList = await visionServer.send({
|
||||||
|
jsonrpc: '2.0',
|
||||||
|
id: 1,
|
||||||
|
method: 'tools/list',
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(visionList).toEqual(expect.objectContaining({
|
||||||
|
id: 1,
|
||||||
|
result: expect.objectContaining({
|
||||||
|
tools: expect.arrayContaining([
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_navigate',
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_go_back',
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_go_forward',
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_screenshot',
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_move_mouse',
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_click',
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_drag',
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_type',
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_press_key',
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_wait',
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_save_as_pdf',
|
||||||
|
}),
|
||||||
|
expect.objectContaining({
|
||||||
|
name: 'browser_close',
|
||||||
|
}),
|
||||||
|
]),
|
||||||
|
}),
|
||||||
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
test('test resources list', async ({ server }) => {
|
test('test resources list', async ({ server }) => {
|
||||||
|
@ -69,7 +69,7 @@ class MCPServer extends EventEmitter {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async send(message: any, options?: { timeout?: number }): Promise<void> {
|
async send(message: any, options?: { timeout?: number }): Promise<any> {
|
||||||
await this.sendNoReply(message);
|
await this.sendNoReply(message);
|
||||||
return this._waitForResponse(options || {});
|
return this._waitForResponse(options || {});
|
||||||
}
|
}
|
||||||
@ -112,7 +112,8 @@ class MCPServer extends EventEmitter {
|
|||||||
|
|
||||||
type Fixtures = {
|
type Fixtures = {
|
||||||
server: MCPServer;
|
server: MCPServer;
|
||||||
startServer: (options?: { env?: NodeJS.ProcessEnv }) => Promise<MCPServer>;
|
visionServer: MCPServer;
|
||||||
|
startServer: (options?: { env?: NodeJS.ProcessEnv, vision?: boolean }) => Promise<MCPServer>;
|
||||||
wsEndpoint: string;
|
wsEndpoint: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -121,12 +122,19 @@ export const test = baseTest.extend<Fixtures>({
|
|||||||
await use(await startServer());
|
await use(await startServer());
|
||||||
},
|
},
|
||||||
|
|
||||||
|
visionServer: async ({ startServer }, use) => {
|
||||||
|
await use(await startServer({ vision: true }));
|
||||||
|
},
|
||||||
|
|
||||||
startServer: async ({ }, use, testInfo) => {
|
startServer: async ({ }, use, testInfo) => {
|
||||||
let server: MCPServer | undefined;
|
let server: MCPServer | undefined;
|
||||||
const userDataDir = testInfo.outputPath('user-data-dir');
|
const userDataDir = testInfo.outputPath('user-data-dir');
|
||||||
|
|
||||||
use(async options => {
|
use(async options => {
|
||||||
server = new MCPServer('node', [path.join(__dirname, '../cli.js'), '--headless', '--user-data-dir', userDataDir], options);
|
const args = ['--headless', '--user-data-dir', userDataDir];
|
||||||
|
if (options?.vision)
|
||||||
|
args.push('--vision');
|
||||||
|
server = new MCPServer('node', [path.join(__dirname, '../cli.js'), ...args], options);
|
||||||
const initialize = await server.send({
|
const initialize = await server.send({
|
||||||
jsonrpc: '2.0',
|
jsonrpc: '2.0',
|
||||||
id: 0,
|
id: 0,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user