lora-manager-e2e

0
0
Source

End-to-end testing and validation for LoRa Manager features. Use when performing automated E2E validation of LoRa Manager standalone mode, including starting/restarting the server, using Chrome DevTools MCP to interact with the web UI at http://127.0.0.1:8188/loras, and verifying frontend-to-backend functionality. Covers workflow validation, UI interaction testing, and integration testing between the standalone Python backend and the browser frontend.

Install

mkdir -p .claude/skills/lora-manager-e2e && curl -L -o skill.zip "https://mcp.directory/api/skills/download/6933" && unzip -o skill.zip -d .claude/skills/lora-manager-e2e && rm skill.zip

Installs to .claude/skills/lora-manager-e2e

About this skill

LoRa Manager E2E Testing

This skill provides workflows and utilities for end-to-end testing of LoRa Manager using Chrome DevTools MCP.

Prerequisites

  • LoRa Manager project cloned and dependencies installed (pip install -r requirements.txt)
  • Chrome browser available for debugging
  • Chrome DevTools MCP connected

Quick Start Workflow

1. Start LoRa Manager Standalone

# Use the provided script to start the server
python .agents/skills/lora-manager-e2e/scripts/start_server.py --port 8188

Or manually:

cd /home/miao/workspace/ComfyUI/custom_nodes/ComfyUI-Lora-Manager
python standalone.py --port 8188

Wait for server ready message before proceeding.

2. Open Chrome Debug Mode

# Chrome with remote debugging on port 9222
google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-lora-manager http://127.0.0.1:8188/loras

3. Connect Chrome DevTools MCP

Ensure the MCP server is connected to Chrome at http://localhost:9222.

4. Navigate and Interact

Use Chrome DevTools MCP tools to:

  • Take snapshots: take_snapshot
  • Click elements: click
  • Fill forms: fill or fill_form
  • Evaluate scripts: evaluate_script
  • Wait for elements: wait_for

Common E2E Test Patterns

Pattern: Full Page Load Verification

# Navigate to LoRA list page
navigate_page(type="url", url="http://127.0.0.1:8188/loras")

# Wait for page to load
wait_for(text="LoRAs", timeout=10000)

# Take snapshot to verify UI state
snapshot = take_snapshot()

Pattern: Restart Server for Configuration Changes

# Stop current server (if running)
# Start with new configuration
python .agents/skills/lora-manager-e2e/scripts/start_server.py --port 8188 --restart

# Wait and refresh browser
navigate_page(type="reload", ignoreCache=True)
wait_for(text="LoRAs", timeout=15000)

Pattern: Verify Backend API via Frontend

# Execute script in browser to call backend API
result = evaluate_script(function="""
async () => {
  const response = await fetch('/loras/api/list');
  const data = await response.json();
  return { count: data.length, firstItem: data[0]?.name };
}
""")

Pattern: Form Submission Flow

# Fill a form (e.g., search or filter)
fill_form(elements=[
    {"uid": "search-input", "value": "character"},
])

# Click submit button
click(uid="search-button")

# Wait for results
wait_for(text="Results", timeout=5000)

# Verify results via snapshot
snapshot = take_snapshot()

Pattern: Modal Dialog Interaction

# Open modal (e.g., add LoRA)
click(uid="add-lora-button")

# Wait for modal to appear
wait_for(text="Add LoRA", timeout=3000)

# Fill modal form
fill_form(elements=[
    {"uid": "lora-name", "value": "Test LoRA"},
    {"uid": "lora-path", "value": "/path/to/lora.safetensors"},
])

# Submit
click(uid="modal-submit-button")

# Wait for success message or close
wait_for(text="Success", timeout=5000)

Available Scripts

scripts/start_server.py

Starts or restarts the LoRa Manager standalone server.

python scripts/start_server.py [--port PORT] [--restart] [--wait]

Options:

  • --port: Server port (default: 8188)
  • --restart: Kill existing server before starting
  • --wait: Wait for server to be ready before exiting

scripts/wait_for_server.py

Polls server until ready or timeout.

python scripts/wait_for_server.py [--port PORT] [--timeout SECONDS]

Test Scenarios Reference

See references/test-scenarios.md for detailed test scenarios including:

  • LoRA list display and filtering
  • Model metadata editing
  • Recipe creation and management
  • Settings configuration
  • Import/export functionality

Network Request Verification

Use list_network_requests and get_network_request to verify API calls:

# List recent XHR/fetch requests
requests = list_network_requests(resourceTypes=["xhr", "fetch"])

# Get details of specific request
details = get_network_request(reqid=123)

Console Message Monitoring

# Check for errors or warnings
messages = list_console_messages(types=["error", "warn"])

Performance Testing

# Start performance trace
performance_start_trace(reload=True, autoStop=False)

# Perform actions...

# Stop and analyze
results = performance_stop_trace()

Cleanup

Always ensure proper cleanup after tests:

  1. Stop the standalone server
  2. Close browser pages (keep at least one open)
  3. Clear temporary data if needed

You might also like

flutter-development

aj-geddes

Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.

643969

drawio-diagrams-enhanced

jgtolentino

Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.

591705

ui-ux-pro-max

nextlevelbuilder

"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."

318399

godot

bfollington

This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.

340398

nano-banana-pro

garg-aayush

Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.

452339

fastapi-templates

wshobson

Create production-ready FastAPI projects with async patterns, dependency injection, and comprehensive error handling. Use when building new FastAPI applications or setting up backend API projects.

304231

Stay ahead of the MCP ecosystem

Get weekly updates on new skills and servers.