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 requirements are met. File types: .ts, .html, .css, .scss

16 stars

Best use case

Frontend Verification & Testing is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

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 requirements are met. File types: .ts, .html, .css, .scss

Teams using Frontend Verification & Testing should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/frontend-verification-testing/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/frontend/frontend-verification-testing/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/frontend-verification-testing/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Frontend Verification & Testing Compares

Feature / AgentFrontend Verification & TestingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

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 requirements are met. File types: .ts, .html, .css, .scss

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# 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:**
- Angular 18.2.0+ (standalone components)
- Dev Server: http://localhost:4200
- Backend API: http://localhost:8080 (Spring Boot 3)
- Build: Angular CLI + esbuild

**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:**
```bash
# 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:**
```bash
./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:**
```bash
./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**
```bash
# 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
```typescript
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
```typescript
navigate_page(url: "http://localhost:4200/login")
fill_form([{ uid: "input-email", value: "test@example.com" }, { 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
```typescript
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
   ```typescript
   list_console_messages(types: ["error", "warn"])
   ```

2. **Check network for API calls** - verify status codes, headers, payloads
   ```typescript
   list_network_requests(resourceTypes: ["xhr", "fetch"])
   ```

3. **Test responsive layouts** - mobile (375), tablet (768), desktop (1920)
   ```typescript
   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**
   ```bash
   ./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`)

Related Skills

web-testing

16
from diegosouzapw/awesome-omni-skill

Playwright automation, Chrome DevTools debugging, and browser interaction testing. Use for E2E/unit tests, capturing screenshots, inspecting network/console logs, or validating user flows in web applications.

qa-testing-mobile

16
from diegosouzapw/awesome-omni-skill

Mobile app testing strategy and execution for iOS and Android (native + cross-platform): choose automation frameworks, define device matrix, control flakes, validate performance/reliability/accessibility, and set CI + release gates. Use when you need a mobile QA plan, device lab/CI setup, or guidance on XCUITest/Espresso/Appium/Detox/Maestro/Flutter testing.

anthropic-webapp-testing

16
from diegosouzapw/awesome-omni-skill

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

anthropic-web-testing

16
from diegosouzapw/awesome-omni-skill

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

ring:dev-refactor-frontend

16
from diegosouzapw/awesome-omni-skill

Analyzes frontend codebase against Ring standards and generates refactoring tasks for ring:dev-cycle-frontend. Dispatches frontend-specific agents in ANALYSIS mode.

rcr-frontend

16
from diegosouzapw/awesome-omni-skill

Component development rules specific to Red Cliff Record. Use when working with React components, Tailwind CSS styling, Radix/Shadcn primitives, icons, buttons, forms, or frontend code in this project. Triggers on component files, styling questions, design tokens, Tailwind v4, Shadcn, Radix, TanStack Forms, Lucide icons, or UI primitive usage patterns (sizing, spacing, layout).

moai-domain-frontend

16
from diegosouzapw/awesome-omni-skill

Frontend development specialist covering React 19, Next.js 16, Vue 3.5, and modern UI/UX patterns with component architecture. Use when building web UIs, implementing components, optimizing frontend performance, or integrating state management.

frontend-trends-2026

16
from diegosouzapw/awesome-omni-skill

Collection of 2026 Frontend Design Formulas (Liquid Glass, Bento, Neo-Brutalism, Eco-Dark).

frontend-react-testing-strategy

16
from diegosouzapw/awesome-omni-skill

Standardized guidelines and patterns for Frontend React Testing Strategy.

frontend-razor

16
from diegosouzapw/awesome-omni-skill

Apply when working with Razor views, MVC layouts, partial views, and tag helpers

Frontend Pages

16
from diegosouzapw/awesome-omni-skill

Create or modify React pages using MUI components, React Router, and the HATEOAS API client.

Frontend Development

16
from diegosouzapw/awesome-omni-skill

พัฒนา Frontend ด้วย Angular, React, Vue, Next.js อย่างมืออาชีพ