Skip to content
Frontend Verification & Testing logo

Frontend Verification & Testing

Verify and test Angular 18 frontend changes using Chrome DevTools MCP. Automatically check console errors, network requests, and visual rendering after implementing tasks or when fixing UI bugs. Use when creating components, debugging visual issues, validating API integration, or ensuring UI requ...

SKILL.md

Full skill instructions

Frontend Verification & Testing

Verify Angular 18 frontend using Chrome DevTools MCP - check console, network, and visual rendering.

Project Context

Photo Map MVP - Angular 18 SPA with geolocation photo management.

Stack:

Constraints:

  • Both frontend and backend must be running
  • JWT authentication for protected routes
  • All API calls include Authorization: Bearer <token>

When to Use This Skill

Automatic Triggers:

  1. After implementing task logic - po ukończeniu implementacji feature

    • Example: Po dodaniu Gallery Component → verify photos load
    • Example: Po implementacji Login → check form + API call
  2. When uncertain about code behavior - gdy wątpliwości czy działa

    • Example: Complex RxJS pipeline → verify console
    • Example: Leaflet map init → check visual rendering
  3. When fixing UI bugs (iterative) - przy naprawie błędów (sprawdź → napraw → sprawdź)

    • Example: Layout issue → screenshot → fix CSS → verify
    • Example: API 401 → check network → fix auth → verify
  4. On explicit request - na żądanie użytkownika

    • Example: "zweryfikuj frontend", "sprawdź czy login działa"

DO NOT use for:

  • ❌ Simple code reading (use Read tool)
  • ❌ Unit test execution (use Bash with ng test)
  • ❌ Backend-only changes (use spring-boot-backend skill)

Server Management

Check if servers running:

# Check PID files
[ -f scripts/​.pid/​backend.pid ] && kill -0 $(cat scripts/​.pid/​backend.pid)
[ -f scripts/​.pid/​frontend.pid ] && kill -0 $(cat scripts/​.pid/​frontend.pid)

# Health checks
curl http://localhost:8080/​actuator/​health  # Backend
curl -I http://localhost:4200               # Frontend

Start servers:

./​scripts/​start-dev.sh          # Backend + Frontend
./​scripts/​start-dev.sh --with-db # Include PostgreSQL

When to restart:

  • ✅ Code changes (Java/​TypeScript modified)
  • ✅ Servers not responding (PID dead, ports free)
  • ✅ Health checks failing

Rebuild & Restart:

./​scripts/​stop-dev.sh
cd backend && ./​mvnw clean package  # If backend changes
cd frontend && npm run build         # If frontend changes
./​scripts/​start-dev.sh

→ Full docs: references/​server-management.md


Verification Workflow

5-Step Process

Step 0: Verify Servers Running
   ↓
Step 1: Navigate & Capture State
   ↓
Step 2: Check Console Errors
   ↓
Step 3: Check Network Requests
   ↓
Step 4: Visual Verification
   ↓
Step 5: Report Results

Detailed Steps

Step 0: Verify Servers Running

# Check if servers running (PID + health)
[ -f scripts/​.pid/​backend.pid ] && kill -0 $(cat scripts/​.pid/​backend.pid)
[ -f scripts/​.pid/​frontend.pid ] && kill -0 $(cat scripts/​.pid/​frontend.pid)

# If NOT running OR code changes → restart
./​scripts/​stop-dev.sh
./​scripts/​start-dev.sh

Step 1: Navigate & Capture State

  • list_pages() → check open pages
  • navigate_page(url: "http://localhost:4200/​path") → go to route
  • take_snapshot() → accessibility tree (structural check)
  • take_screenshot() → visual representation

Step 2: Check Console Errors

  • list_console_messages(types: ["error", "warn"]) → filter errors
  • get_console_message(msgid: N) → detailed stack trace

Step 3: Check Network Requests

  • list_network_requests(resourceTypes: ["xhr", "fetch"]) → API calls
  • get_network_request(reqid: N) → headers, payload, response

Step 4: Visual Verification

  • take_screenshot(fullPage: true) → full page visual
  • resize_page(width, height) → test responsive (375, 768, 1920)
  • hover(uid), click(uid) → test interactions

Step 5: Report Results

  • ✅ PASS: "All verifications passed. No console errors, API calls 200 OK, UI renders correctly."
  • ❌ FAIL: "Issues found: Console error at component.ts:42, Network POST /​api/​login → 401, Visual: missing padding"

Key MCP Tools

Navigation:

  • list_pages() - list open tabs
  • navigate_page(url, timeout) - go to URL
  • wait_for(text, timeout) - wait for text to appear

State Capture:

  • take_snapshot(verbose) - accessibility tree (fast, text)
  • take_screenshot(uid, fullPage, format) - visual capture (PNG/​JPEG/​WebP)
  • evaluate_script(function, args) - execute JS in page

Console & Network:

  • list_console_messages(types, pageIdx, pageSize) - get console logs
  • get_console_message(msgid) - detailed error info
  • list_network_requests(resourceTypes, pageIdx) - list HTTP requests
  • get_network_request(reqid) - detailed request/​response

Interaction:

  • click(uid, dblClick) - click element by UID
  • fill(uid, value) - fill input/​textarea
  • fill_form(elements) - fill multiple fields
  • hover(uid) - hover over element

Emulation:

  • resize_page(width, height) - change viewport (mobile: 375x667, tablet: 768x1024, desktop: 1920x1080)
  • emulate_network(throttlingOption) - simulate network (Offline, Slow 3G, Fast 3G, etc.)
  • performance_start_trace(reload, autoStop) - measure Core Web Vitals

→ Full docs: references/​mcp-tools-reference.md


Quick Start

Example 1: Verify Console After Component Implementation

navigate_page(url: "http://localhost:4200/​gallery")
list_console_messages(types: ["error", "warn"])
// ✅ No errors → Component works
// ❌ Errors found → get_console_message(msgid) → Fix

Example 2: Verify Network After API Integration

navigate_page(url: "http://localhost:4200/​login")
fill_form([{ uid: "input-email", value: "[email protected]" }, { uid: "input-password", value: "test123456" }])
click(uid: "btn-login")
wait_for(text: "Photo Gallery", timeout: 5000)
list_network_requests(resourceTypes: ["fetch"])
get_network_request(reqid: 1)
// → POST /​api/​auth/​login → 200 OK → JWT token ✅

Example 3: Verify Visual Layout

navigate_page(url: "http://localhost:4200/​gallery")
take_screenshot(fullPage: true)
resize_page(width: 375, height: 667)  // Mobile
take_screenshot()
// → Check: Single column layout on mobile ✅

→ Detailed scenarios: examples/​*.md → Detailed patterns: references/​verification-patterns.md


Best Practices

  1. Always check console first - even if UI looks correct

    list_console_messages(types: ["error", "warn"])
    
  2. Check network for API calls - verify status codes, headers, payloads

    list_network_requests(resourceTypes: ["xhr", "fetch"])
    
  3. Test responsive layouts - mobile (375), tablet (768), desktop (1920)

    resize_page(width: 375, height: 667)
    
  4. Use snapshots for structure, screenshots for visual

    • Snapshot (fast, text) → "Are elements present?"
    • Screenshot (slow, image) → "Does it look right?"
  5. Iterative verification for bug fixes

    • Verify bug → Fix code → Re-verify → Repeat until ✅
  6. Report actionable issues

    • ❌ BAD: "Login doesn't work"
    • ✅ GOOD: "Login failed: POST /​api/​auth/​login → 401. Request missing Authorization header. Check AuthInterceptor."
  7. Restart servers when code changes

    ./​scripts/​stop-dev.sh && ./​scripts/​start-dev.sh
    

Related Skills

  • angular-frontend - for implementing Angular components
  • spring-boot-backend - for backend API development
  • code-review - for code quality checks

Key Reminders

Proactive Verification:

  • ✅ Use after implementing tasks
  • ✅ Verify BEFORE marking complete
  • ✅ Catch issues early

Comprehensive Checks:

  • ✅ Console errors (ALWAYS)
  • ✅ Network requests (for API features)
  • ✅ Visual rendering (for UI features)
  • ✅ Responsive layout (mobile, tablet, desktop)

Server Management:

  • ✅ Check servers before starting (PID/​health)
  • ✅ Restart when code changes
  • ✅ Use project scripts (./​scripts/​start-dev.sh)

More skills from majiayu000

xiaohongshu logo
majiayu000/claude-arsenal

xiaohongshu

xiaohongshu

286 148
View
agent-task-conductor logo
majiayu000/claude-skill-registry

agent-task-conductor

Conduct multi-agent task orchestration and workflow coordination.

663 1
View
conductor-setup logo
majiayu000/claude-skill-registry

conductor-setup

Initialize project with Conductor artifacts (product definition,

663 1
View
animation-designer logo
majiayu000/claude-skill-registry

animation-designer

Expert in web animations, transitions, and motion design using Framer Motion and CSS

663 1
View
diagramming logo
majiayu000/claude-skill-registry

diagramming

Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...

663 1
View
h3-pg logo
majiayu000/claude-skill-registry-data

h3-pg

PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.

23 1
View
conductor-development logo
majiayu000/claude-skill-registry

conductor-development

Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...

663 1
View
conductor-status logo
majiayu000/claude-skill-registry

conductor-status

Display project status, active tracks, and next actions

663 1
View
dockerization logo
majiayu000/claude-skill-registry

dockerization

Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.

663 1
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View