跳到正文
cccskills
免费在 GitHub 公开

qa

Use after code changes, before releases, or when testing features - runs the right level of QA based on what changed

中文简介正在准备中。当前显示原文说明。

集成工具Docker
查看安装方法

包含的文件(1)

  • SKILL.md5.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

QA Testing

What did you change? Start here.

ChangeTest levelCommand
Bug fix, refactor, small featureUnitmake test
Feature, UI, big changeUnit + E2Emake test then make test-e2e
Visual / UI verificationAgent-browsermake dev + agent-browser
Install script, matcha, infraVM installmultipass VM
ReleaseAll of the aboveSee release checklist

Level 1: Unit Tests (~3 seconds)

make test

Run after every change. No excuses.


Level 2: E2E Tests (~5 minutes)

# CRITICAL: Kill any running dev server first — E2E uses its own database
lsof -ti :3000 | xargs kill -9 2>/dev/null
make test-e2e

Playwright tests that run onboarding, create websites, check dashboards, ingest events. Run after features or big changes.


Level 3: Visual QA with agent-browser

For verifying UI rendering, checking that data displays correctly, or testing flows that E2E doesn't cover.

Setup (one-time)

npm i -g agent-browser
agent-browser install

Start dev server

make dev    # MUST use make dev (Go + Vite together)

Dev credentials

  • Email: admin@example.com
  • Password: password
  • Created by make db-seed

Login

agent-browser open "http://localhost:3000/login"
agent-browser snapshot -i
agent-browser fill @e1 "admin@example.com"
agent-browser fill @e3 "password"
agent-browser click @e4

Navigate and verify

agent-browser snapshot -i           # list interactive elements with refs
agent-browser click @e11            # click element by ref
agent-browser scroll down 1000      # scroll to find sections
agent-browser screenshot            # capture page as PNG
agent-browser get url               # check current URL

Generate real browser events

# The /_demo page includes the tracking script — fires real pageviews
agent-browser open "http://localhost:3000/_demo"

# Wait for event processing (~10s), then check dashboard

Key pages to verify

PageHow to reachWhat to check
Admin home/adminWebsite list loads
DashboardClick arrow (→) on a websiteCharts, stats, time range
Browsers tabScroll to Device Analytics, click "Browsers"Browser names (Brave, Edge, etc.)
SettingsClick "Settings" in navForms save, flash messages
EventsClick "Events" tab on dashboardEvent list, sessions view

Important

  • Always make dev — make watch-go alone won't render Inertia pages
  • Click through the UI — don't force navigation with open after login (breaks Inertia state)
  • /_demo for real events — sends actual Sec-CH-UA headers from the browser
  • Dev database: storage/fusionaly-development.db

Level 4: VM Install Test

Only needed when changing: install script, matcha, Docker setup, or release infrastructure.

Create fresh VM

multipass delete fusionaly-test --purge 2>/dev/null || true
multipass launch 24.04 --name fusionaly-test --cpus 2 --memory 2G --disk 10G

Run install

multipass exec fusionaly-test -- bash -c '
sudo apt-get update -qq && sudo apt-get install -y -qq expect

cat > /tmp/run_install.exp << '\''EXPECTSCRIPT'\''
#!/usr/bin/expect -f
set timeout 300
spawn sudo bash -c "curl -fsSL https://fusionaly.com/install | bash"
expect "Enter your domain name"
send "test.local\r"
expect "Proceed with this configuration"
send "Y\r"
expect eof
EXPECTSCRIPT

expect /tmp/run_install.exp
'

Verify

multipass exec fusionaly-test -- bash -c '
echo "=== Containers ===" && sudo docker ps
echo "=== Version ===" && fusionaly version
echo "=== Health ===" && curl -s http://172.18.0.2:8080/_health
'

Browser test via tunnel

VM_IP=$(multipass info fusionaly-test | grep IPv4 | awk '{print $2}')
ssh -L 8080:172.18.0.2:8080 ubuntu@$VM_IP
# Open http://localhost:8080/setup

Cleanup

multipass delete fusionaly-test --purge

Release Checklist

Before tagging a release:

  • make test passes
  • make test-e2e passes (kill dev server first!)
  • Visual QA: dashboard loads, browser stats correct, events ingesting
  • VM install test (if install/infra changed)
  • Pro: update OSS submodule, build, test

Common Issues

IssueCauseFix
E2E fails "Setup already complete"Dev server running (wrong DB)lsof -ti :3000 | xargs kill -9
agent-browser login doesn't workVite not runningUse make dev, not make watch-go
Dashboard shows JSON errorNavigated directly after forced POSTStart fresh browser, click through UI
/_demo events not appearingProcessing job hasn't run yetWait ~10 seconds, check ingested_events table
VM can't reach appDocker internal networkUse SSH tunnel to 172.18.0.2:8080

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

connect

免费

Use when the user wants to connect, set up, or configure Fusionaly in their AI client, or when the fusionaly MCP tools are missing. Verifies the Fusionaly URL and agent key, then adds the MCP server to Claude Code, Codex, Cursor, Gemini CLI, or another client.

中文简介正在准备中。当前显示原文说明。

karloscodes/fusionaly-oss152026年10月19日 更新

fusionaly

免费

Use when user asks about website analytics, traffic, visitors, page views, referrers, or mentions "fusionaly". Queries Fusionaly analytics via SQL API.

中文简介正在准备中。当前显示原文说明。

karloscodes/fusionaly-oss152026年10月19日 更新

fusionaly

免费

Use when the user asks about website analytics, traffic, visitors, page views, referrers, conversions, goals, or mentions "fusionaly". Answers from a self-hosted Fusionaly instance through its MCP tools (or its SQL API), in plain English with numbers.

中文简介正在准备中。当前显示原文说明。

karloscodes/fusionaly-oss152026年10月19日 更新

Use ONLY when explicitly invoked. Puts Fusionaly on a Linux server you reach over SSH with a key. Optionally creates a Hetzner server and the Cloudflare DNS record. The user runs the one interactive install command; the agent prepares and checks everything around it.

中文简介正在准备中。当前显示原文说明。

karloscodes/fusionaly-oss152026年10月19日 更新

tech

免费

Use when writing or reviewing Go code in fusionaly-oss — adding routes, handlers, domain contexts, background jobs, the manager CLI, wiring the app, or writing tests. Covers the cartridge framework, matcha for the manager, Phoenix Contexts, lifecycle/shutdown, and the test conventions.

中文简介正在准备中。当前显示原文说明。

karloscodes/fusionaly-oss152026年10月19日 更新

查看 karloscodes 的全部技能

报告此技能的问题