1+ import { test , expect } from "@playwright/test" ;
2+
3+ // These tests verify that CLI arguments correctly set URL parameters
4+ // The CLI should parse config files and pass transport/serverUrl as URL params
5+ test . describe ( "CLI Arguments @cli" , ( ) => {
6+ test ( "should pass transport parameter from command line" , async ( {
7+ page,
8+ } ) => {
9+ // Simulate: npx . --transport sse --server-url http://localhost:3000/sse
10+ await page . goto ( "http://localhost:6274/?transport=sse&serverUrl=http://localhost:3000/sse" ) ;
11+
12+ // Wait for the Transport Type dropdown to be visible
13+ const selectTrigger = page . getByLabel ( "Transport Type" ) ;
14+ await expect ( selectTrigger ) . toBeVisible ( ) ;
15+
16+ // Verify transport dropdown shows SSE
17+ await expect ( selectTrigger ) . toContainText ( "SSE" ) ;
18+
19+ // Verify URL field is visible and populated
20+ const urlInput = page . locator ( "#sse-url-input" ) ;
21+ await expect ( urlInput ) . toBeVisible ( ) ;
22+ await expect ( urlInput ) . toHaveValue ( "http://localhost:3000/sse" ) ;
23+ } ) ;
24+
25+ test ( "should pass transport parameter for streamable-http" , async ( {
26+ page,
27+ } ) => {
28+ // Simulate config with streamable-http transport
29+ await page . goto ( "http://localhost:6274/?transport=streamable-http&serverUrl=http://localhost:3000/mcp" ) ;
30+
31+ // Wait for the Transport Type dropdown to be visible
32+ const selectTrigger = page . getByLabel ( "Transport Type" ) ;
33+ await expect ( selectTrigger ) . toBeVisible ( ) ;
34+
35+ // Verify transport dropdown shows Streamable HTTP
36+ await expect ( selectTrigger ) . toContainText ( "Streamable HTTP" ) ;
37+
38+ // Verify URL field is visible and populated
39+ const urlInput = page . locator ( "#sse-url-input" ) ;
40+ await expect ( urlInput ) . toBeVisible ( ) ;
41+ await expect ( urlInput ) . toHaveValue ( "http://localhost:3000/mcp" ) ;
42+ } ) ;
43+
44+ test ( "should not pass transport parameter for stdio config" , async ( {
45+ page,
46+ } ) => {
47+ // Simulate stdio config (no transport param needed)
48+ await page . goto ( "http://localhost:6274/" ) ;
49+
50+ // Wait for the Transport Type dropdown to be visible
51+ const selectTrigger = page . getByLabel ( "Transport Type" ) ;
52+ await expect ( selectTrigger ) . toBeVisible ( ) ;
53+
54+ // Verify transport dropdown defaults to STDIO
55+ await expect ( selectTrigger ) . toContainText ( "STDIO" ) ;
56+
57+ // Verify command/args fields are visible
58+ await expect ( page . locator ( "#command-input" ) ) . toBeVisible ( ) ;
59+ await expect ( page . locator ( "#arguments-input" ) ) . toBeVisible ( ) ;
60+ } ) ;
61+ } ) ;
0 commit comments