mirror of
https://github.com/microsoft/playwright-mcp.git
synced 2025-07-26 08:32:26 +08:00
chore: test --vision (#54)
This commit is contained in:
parent
d4bc2c78d2
commit
fb24561c67
@ -16,7 +16,7 @@
|
||||
|
||||
import { test, expect } from './fixtures';
|
||||
|
||||
test('test tool list', async ({ server }) => {
|
||||
test('test tool list', async ({ server, visionServer }) => {
|
||||
const list = await server.send({
|
||||
jsonrpc: '2.0',
|
||||
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 }) => {
|
||||
|
@ -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);
|
||||
return this._waitForResponse(options || {});
|
||||
}
|
||||
@ -112,7 +112,8 @@ class MCPServer extends EventEmitter {
|
||||
|
||||
type Fixtures = {
|
||||
server: MCPServer;
|
||||
startServer: (options?: { env?: NodeJS.ProcessEnv }) => Promise<MCPServer>;
|
||||
visionServer: MCPServer;
|
||||
startServer: (options?: { env?: NodeJS.ProcessEnv, vision?: boolean }) => Promise<MCPServer>;
|
||||
wsEndpoint: string;
|
||||
};
|
||||
|
||||
@ -121,12 +122,19 @@ export const test = baseTest.extend<Fixtures>({
|
||||
await use(await startServer());
|
||||
},
|
||||
|
||||
visionServer: async ({ startServer }, use) => {
|
||||
await use(await startServer({ vision: true }));
|
||||
},
|
||||
|
||||
startServer: async ({ }, use, testInfo) => {
|
||||
let server: MCPServer | undefined;
|
||||
const userDataDir = testInfo.outputPath('user-data-dir');
|
||||
|
||||
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({
|
||||
jsonrpc: '2.0',
|
||||
id: 0,
|
||||
|
Loading…
x
Reference in New Issue
Block a user