@tinkcarlos/skillora 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/skills/.temp-skill-index.md +245 -0
- package/.claude/skills/SKILL.md +264 -0
- package/.claude/skills/api-scaffolding/SKILL.md +431 -0
- package/.claude/skills/api-scaffolding/agents/backend-architect.md +282 -0
- package/.claude/skills/api-scaffolding/agents/django-pro.md +144 -0
- package/.claude/skills/api-scaffolding/agents/fastapi-pro.md +156 -0
- package/.claude/skills/api-scaffolding/agents/graphql-architect.md +146 -0
- package/.claude/skills/api-scaffolding/skills/fastapi-templates/SKILL.md +171 -0
- package/.claude/skills/api-testing-observability/SKILL.md +583 -0
- package/.claude/skills/api-testing-observability/agents/api-documenter.md +146 -0
- package/.claude/skills/api-testing-observability/commands/api-mock.md +1320 -0
- package/.claude/skills/brainstorming/SKILL.md +283 -0
- package/.claude/skills/bug-fixing/SKILL.md +382 -0
- package/.claude/skills/bug-fixing/references/backend-guide.md +132 -0
- package/.claude/skills/bug-fixing/references/bug-guide.md +354 -0
- package/.claude/skills/bug-fixing/references/bug-record-template.md +134 -0
- package/.claude/skills/bug-fixing/references/bug-records.md +88 -0
- package/.claude/skills/bug-fixing/references/code-review-gate.md +81 -0
- package/.claude/skills/bug-fixing/references/common-bugs.md +140 -0
- package/.claude/skills/bug-fixing/references/complete-workflow.md +361 -0
- package/.claude/skills/bug-fixing/references/config-driven-fixes.md +136 -0
- package/.claude/skills/bug-fixing/references/context-isolation-protocol.md +268 -0
- package/.claude/skills/bug-fixing/references/cross-surface-regression.md +120 -0
- package/.claude/skills/bug-fixing/references/database-investigation.md +129 -0
- package/.claude/skills/bug-fixing/references/dependency-and-integrity-protocol.md +369 -0
- package/.claude/skills/bug-fixing/references/fix-completeness-checklist.md +239 -0
- package/.claude/skills/bug-fixing/references/frontend-guide.md +219 -0
- package/.claude/skills/bug-fixing/references/fullstack-joint-guide.md +123 -0
- package/.claude/skills/bug-fixing/references/functional-breakage.md +117 -0
- package/.claude/skills/bug-fixing/references/ide-lint-errors-guide.md +176 -0
- package/.claude/skills/bug-fixing/references/impact-analysis.md +511 -0
- package/.claude/skills/bug-fixing/references/investigation-checklist.md +263 -0
- package/.claude/skills/bug-fixing/references/knowledge-extraction-guide.md +531 -0
- package/.claude/skills/bug-fixing/references/knowledge-workflow.md +212 -0
- package/.claude/skills/bug-fixing/references/post-edit-quality-gate.md +30 -0
- package/.claude/skills/bug-fixing/references/python-env-and-testing.md +126 -0
- package/.claude/skills/bug-fixing/references/rca-guide.md +428 -0
- package/.claude/skills/bug-fixing/references/similar-bug-patterns.md +113 -0
- package/.claude/skills/bug-fixing/references/skill-delegation-guide.md +350 -0
- package/.claude/skills/bug-fixing/references/skill-orchestration.md +155 -0
- package/.claude/skills/bug-fixing/references/testing-strategy.md +350 -0
- package/.claude/skills/bug-fixing/references/tooling-build-scripts.md +162 -0
- package/.claude/skills/bug-fixing/references/user-input-validation.md +77 -0
- package/.claude/skills/bug-fixing/references/ux-patterns.md +158 -0
- package/.claude/skills/bug-fixing/references/windows-terminal-hygiene.md +106 -0
- package/.claude/skills/bug-fixing/references/zero-regression-matrix.md +239 -0
- package/.claude/skills/bug-fixing/references/zero-risk-protocol.md +102 -0
- package/.claude/skills/bug-fixing/scripts/format_code.py +611 -0
- package/.claude/skills/bug-fixing/scripts/generate_report_template.py +74 -0
- package/.claude/skills/bug-fixing/scripts/lint_check.py +816 -0
- package/.claude/skills/bug-fixing/scripts/requirements.txt +36 -0
- package/.claude/skills/cicd-pipeline/SKILL.md +300 -0
- package/.claude/skills/code-review/SKILL.md +535 -0
- package/.claude/skills/code-review/references/anti-pattern-scan.md +102 -0
- package/.claude/skills/code-review/references/automated-analysis.md +456 -0
- package/.claude/skills/code-review/references/backend-common-issues.md +589 -0
- package/.claude/skills/code-review/references/backend-expert-guide.md +415 -0
- package/.claude/skills/code-review/references/backend-review.md +868 -0
- package/.claude/skills/code-review/references/batch-processing-strategy.md +198 -0
- package/.claude/skills/code-review/references/call-chain-analysis-protocol.md +166 -0
- package/.claude/skills/code-review/references/common-patterns.md +321 -0
- package/.claude/skills/code-review/references/configuration-review.md +425 -0
- package/.claude/skills/code-review/references/control-flow-completeness.md +114 -0
- package/.claude/skills/code-review/references/database-review.md +298 -0
- package/.claude/skills/code-review/references/dependency-and-integrity-protocol.md +313 -0
- package/.claude/skills/code-review/references/external-standards.md +51 -0
- package/.claude/skills/code-review/references/feature-review.md +329 -0
- package/.claude/skills/code-review/references/file-review-template.md +326 -0
- package/.claude/skills/code-review/references/frontend-advanced.md +654 -0
- package/.claude/skills/code-review/references/frontend-common-issues.md +482 -0
- package/.claude/skills/code-review/references/frontend-expert-guide.md +342 -0
- package/.claude/skills/code-review/references/frontend-review.md +783 -0
- package/.claude/skills/code-review/references/fullstack-consistency.md +418 -0
- package/.claude/skills/code-review/references/fullstack-review.md +477 -0
- package/.claude/skills/code-review/references/functional-completeness.md +386 -0
- package/.claude/skills/code-review/references/hidden-bugs-detection.md +473 -0
- package/.claude/skills/code-review/references/ide-lint-errors-guide.md +173 -0
- package/.claude/skills/code-review/references/infrastructure-review.md +453 -0
- package/.claude/skills/code-review/references/iteration-review.md +264 -0
- package/.claude/skills/code-review/references/job-review.md +335 -0
- package/.claude/skills/code-review/references/layered-checklist-protocol.md +157 -0
- package/.claude/skills/code-review/references/logic-completeness.md +535 -0
- package/.claude/skills/code-review/references/mandatory-checklist.md +288 -0
- package/.claude/skills/code-review/references/multi-language-guide.md +800 -0
- package/.claude/skills/code-review/references/new-project-review.md +226 -0
- package/.claude/skills/code-review/references/non-code-files-review.md +451 -0
- package/.claude/skills/code-review/references/overlooked-issues.md +657 -0
- package/.claude/skills/code-review/references/platform-specific-review.md +195 -0
- package/.claude/skills/code-review/references/precision-analysis-protocol.md +260 -0
- package/.claude/skills/code-review/references/python-patterns.md +494 -0
- package/.claude/skills/code-review/references/rca-techniques.md +362 -0
- package/.claude/skills/code-review/references/report-template.md +430 -0
- package/.claude/skills/code-review/references/resource-limits-and-degradation.md +137 -0
- package/.claude/skills/code-review/references/review-dimensions.md +311 -0
- package/.claude/skills/code-review/references/review-guide.md +202 -0
- package/.claude/skills/code-review/references/review-knowledge-workflow.md +257 -0
- package/.claude/skills/code-review/references/review-progress-tracker-protocol.md +172 -0
- package/.claude/skills/code-review/references/review-record-template.md +195 -0
- package/.claude/skills/code-review/references/skill-orchestration.md +143 -0
- package/.claude/skills/code-review/references/ui-ux-review.md +470 -0
- package/.claude/skills/containerization/SKILL.md +313 -0
- package/.claude/skills/database-migrations/agents/database-admin.md +142 -0
- package/.claude/skills/database-migrations/agents/database-optimizer.md +144 -0
- package/.claude/skills/database-migrations/commands/migration-observability.md +408 -0
- package/.claude/skills/database-migrations/commands/sql-migrations.md +492 -0
- package/.claude/skills/finishing-a-development-branch/SKILL.md +319 -0
- package/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/.claude/skills/frontend-design/SKILL.md +587 -0
- package/.claude/skills/frontend-design/references/color-consistency.md +487 -0
- package/.claude/skills/frontend-design/references/color-palettes-full.md +657 -0
- package/.claude/skills/frontend-design/references/design-system-generator.md +285 -0
- package/.claude/skills/frontend-design/references/font-pairings-full.md +705 -0
- package/.claude/skills/frontend-design/references/industry-anti-patterns.md +281 -0
- package/.claude/skills/frontend-design/references/layout-anti-patterns.md +582 -0
- package/.claude/skills/frontend-design/references/motion-patterns.md +659 -0
- package/.claude/skills/frontend-design/references/pre-delivery-checklist.md +153 -0
- package/.claude/skills/frontend-design/references/responsive-design.md +555 -0
- package/.claude/skills/frontend-design/references/style-modification-rules.md +335 -0
- package/.claude/skills/frontend-design/references/ui-styles-full.md +383 -0
- package/.claude/skills/frontend-design/references/ui-styles-rating.md +191 -0
- package/.claude/skills/frontend-design/references/ux-guidelines.md +640 -0
- package/.claude/skills/fullstack-developer/SKILL.md +512 -0
- package/.claude/skills/fullstack-developer/references/api-contract-guide.md +312 -0
- package/.claude/skills/fullstack-developer/references/api-response-patterns.md +223 -0
- package/.claude/skills/fullstack-developer/references/async-patterns.md +220 -0
- package/.claude/skills/fullstack-developer/references/bug-prevention.md +914 -0
- package/.claude/skills/fullstack-developer/references/code-quality-checklist.md +271 -0
- package/.claude/skills/fullstack-developer/references/complete-development-workflow.md +278 -0
- package/.claude/skills/fullstack-developer/references/context-isolation-protocol.md +256 -0
- package/.claude/skills/fullstack-developer/references/database-migration.md +331 -0
- package/.claude/skills/fullstack-developer/references/dependency-and-integrity-protocol.md +390 -0
- package/.claude/skills/fullstack-developer/references/development-phases.md +333 -0
- package/.claude/skills/fullstack-developer/references/expert-guide.md +214 -0
- package/.claude/skills/fullstack-developer/references/file-import-patterns.md +114 -0
- package/.claude/skills/fullstack-developer/references/graceful-degradation-patterns.md +78 -0
- package/.claude/skills/fullstack-developer/references/ide-lint-errors-guide.md +183 -0
- package/.claude/skills/fullstack-developer/references/integration-testing.md +301 -0
- package/.claude/skills/fullstack-developer/references/mock-api-patterns.md +307 -0
- package/.claude/skills/fullstack-developer/references/phase-gate-template.md +249 -0
- package/.claude/skills/fullstack-developer/references/post-edit-quality-gate.md +30 -0
- package/.claude/skills/fullstack-developer/references/python-engineering.md +79 -0
- package/.claude/skills/fullstack-developer/references/skill-orchestration.md +214 -0
- package/.claude/skills/fullstack-developer/references/skill-router-table.md +304 -0
- package/.claude/skills/fullstack-developer/references/state-sync.md +217 -0
- package/.claude/skills/fullstack-developer/references/ui-testing-checklist.md +292 -0
- package/.claude/skills/fullstack-developer/scripts/format_code.py +611 -0
- package/.claude/skills/fullstack-developer/scripts/lint_check.py +816 -0
- package/.claude/skills/fullstack-developer/scripts/requirements.txt +36 -0
- package/.claude/skills/performance-optimization/SKILL.md +250 -0
- package/.claude/skills/product-requirements/SKILL.md +357 -0
- package/.claude/skills/product-requirements/references/acceptance-criteria.md +335 -0
- package/.claude/skills/product-requirements/references/answer-first-questioning-protocol.md +299 -0
- package/.claude/skills/product-requirements/references/competitive-analysis-guide.md +183 -0
- package/.claude/skills/product-requirements/references/document-accuracy-protocol.md +253 -0
- package/.claude/skills/product-requirements/references/document-management-protocol.md +278 -0
- package/.claude/skills/product-requirements/references/external-standards.md +62 -0
- package/.claude/skills/product-requirements/references/feature-spec-template.md +359 -0
- package/.claude/skills/product-requirements/references/knowledge-acquisition-protocol.md +251 -0
- package/.claude/skills/product-requirements/references/plan-execution-protocol.md +334 -0
- package/.claude/skills/product-requirements/references/plan-generation-protocol.md +264 -0
- package/.claude/skills/product-requirements/references/prioritization-frameworks.md +80 -0
- package/.claude/skills/product-requirements/references/requirement-decomposition-protocol.md +291 -0
- package/.claude/skills/product-requirements/references/user-story-examples.md +297 -0
- package/.claude/skills/product-requirements/references/workflow-templates.md +266 -0
- package/.claude/skills/react-best-practices/SKILL.md +198 -0
- package/.claude/skills/react-best-practices/references/advanced-patterns.md +94 -0
- package/.claude/skills/react-best-practices/references/bundle-optimization.md +182 -0
- package/.claude/skills/react-best-practices/references/client-data-fetching.md +112 -0
- package/.claude/skills/react-best-practices/references/complete-guide.md +2249 -0
- package/.claude/skills/react-best-practices/references/eliminating-waterfalls.md +169 -0
- package/.claude/skills/react-best-practices/references/javascript-performance.md +256 -0
- package/.claude/skills/react-best-practices/references/rendering-performance.md +230 -0
- package/.claude/skills/react-best-practices/references/rerender-optimization.md +214 -0
- package/.claude/skills/react-best-practices/references/server-performance.md +182 -0
- package/.claude/skills/security-audit/SKILL.md +226 -0
- package/.claude/skills/shared-references/advanced-debugging-techniques.md +186 -0
- package/.claude/skills/shared-references/code-quality-checklist.md +218 -0
- package/.claude/skills/shared-references/code-review-efficiency-guide.md +125 -0
- package/.claude/skills/shared-references/mcp-dependency-compatibility-protocol.md +276 -0
- package/.claude/skills/shared-references/skill-call-graph.md +230 -0
- package/.claude/skills/shared-references/skill-orchestration-protocol.md +281 -0
- package/.claude/skills/shared-references/subagent-dispatch-templates.md +199 -0
- package/.claude/skills/skill-expert-skills/LICENSE.txt +204 -0
- package/.claude/skills/skill-expert-skills/QUICK_NAVIGATION.md +374 -0
- package/.claude/skills/skill-expert-skills/SKILL.md +247 -0
- package/.claude/skills/skill-expert-skills/docs/_index.md +91 -0
- package/.claude/skills/skill-expert-skills/references/deep-research-methodology.md +389 -0
- package/.claude/skills/skill-expert-skills/references/docs-generation-workflow.md +398 -0
- package/.claude/skills/skill-expert-skills/references/domain-expertise-protocol.md +343 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/_index.md +54 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/backend-expertise.md +517 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/bug-fixing-expertise.md +363 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/code-review-expertise.md +392 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge/frontend-expertise.md +410 -0
- package/.claude/skills/skill-expert-skills/references/domain-knowledge-template.md +503 -0
- package/.claude/skills/skill-expert-skills/references/examples.md +782 -0
- package/.claude/skills/skill-expert-skills/references/integration-examples.md +655 -0
- package/.claude/skills/skill-expert-skills/references/knowledge-validation-checklist.md +246 -0
- package/.claude/skills/skill-expert-skills/references/latest-knowledge-acquisition.md +461 -0
- package/.claude/skills/skill-expert-skills/references/mcp-tools-guide.md +439 -0
- package/.claude/skills/skill-expert-skills/references/official-best-practices.md +616 -0
- package/.claude/skills/skill-expert-skills/references/patterns.md +218 -0
- package/.claude/skills/skill-expert-skills/references/plugin-skills-guide.md +432 -0
- package/.claude/skills/skill-expert-skills/references/requirement-elicitation-protocol.md +290 -0
- package/.claude/skills/skill-expert-skills/references/skill-creator-SKILL.md +353 -0
- package/.claude/skills/skill-expert-skills/references/skill-templates.md +583 -0
- package/.claude/skills/skill-expert-skills/references/skills-knowledge-base.md +561 -0
- package/.claude/skills/skill-expert-skills/references/tools-guide.md +379 -0
- package/.claude/skills/skill-expert-skills/references/troubleshooting.md +378 -0
- package/.claude/skills/skill-expert-skills/references/universality-guide.md +205 -0
- package/.claude/skills/skill-expert-skills/references/writing-style-guide.md +466 -0
- package/.claude/skills/skill-expert-skills/scripts/__pycache__/quick_validate.cpython-313.pyc +0 -0
- package/.claude/skills/skill-expert-skills/scripts/__pycache__/universal_validate.cpython-313.pyc +0 -0
- package/.claude/skills/skill-expert-skills/scripts/analyze_trigger.py +425 -0
- package/.claude/skills/skill-expert-skills/scripts/diff_with_official.py +188 -0
- package/.claude/skills/skill-expert-skills/scripts/init_skill.py +349 -0
- package/.claude/skills/skill-expert-skills/scripts/package_skill.py +156 -0
- package/.claude/skills/skill-expert-skills/scripts/quick_validate.py +493 -0
- package/.claude/skills/skill-expert-skills/scripts/requirements.txt +2 -0
- package/.claude/skills/skill-expert-skills/scripts/universal_validate.py +182 -0
- package/.claude/skills/skill-expert-skills/scripts/upgrade_skill.py +431 -0
- package/.claude/skills/subagent-driven-development/SKILL.md +268 -0
- package/.claude/skills/test-driven-development/SKILL.md +246 -0
- package/.claude/skills/test-driven-development/references/testing-anti-patterns.md +192 -0
- package/.claude/skills/using-git-worktrees/SKILL.md +266 -0
- package/.claude/skills/using-skillstack/SKILL.md +127 -0
- package/.claude/skills/vercel-deploy/SKILL.md +166 -0
- package/.claude/skills/vercel-deploy/scripts/deploy.sh +249 -0
- package/.claude/skills/verification-before-completion/SKILL.md +305 -0
- package/.claude/skills/writing-plans/SKILL.md +259 -0
- package/README.md +69 -0
- package/bin/cli.js +468 -0
- package/lib/init.js +333 -0
- package/package.json +29 -0
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
# UI Element Testing Checklist
|
|
2
|
+
|
|
3
|
+
> Test EVERY interactive element. No exceptions.
|
|
4
|
+
|
|
5
|
+
## Element-by-Element Testing
|
|
6
|
+
|
|
7
|
+
### Buttons
|
|
8
|
+
|
|
9
|
+
| Test | Check |
|
|
10
|
+
|------|-------|
|
|
11
|
+
| Click | Action triggers correctly |
|
|
12
|
+
| Double-click | No duplicate submission |
|
|
13
|
+
| Disabled state | Cannot click when disabled |
|
|
14
|
+
| Loading state | Shows spinner, prevents re-click |
|
|
15
|
+
| Hover | Visual feedback |
|
|
16
|
+
| Focus | Keyboard focusable, visible outline |
|
|
17
|
+
| Aria | Has aria-label or accessible text |
|
|
18
|
+
|
|
19
|
+
### Input Fields
|
|
20
|
+
|
|
21
|
+
| Test | Check |
|
|
22
|
+
|------|-------|
|
|
23
|
+
| Type | Characters appear correctly |
|
|
24
|
+
| Clear | Can clear content |
|
|
25
|
+
| Placeholder | Shows when empty |
|
|
26
|
+
| Validation | Error shows on invalid input |
|
|
27
|
+
| Required | Cannot submit when empty |
|
|
28
|
+
| Max length | Respects character limit |
|
|
29
|
+
| Paste | Handles pasted content |
|
|
30
|
+
| Autofill | Works with browser autofill |
|
|
31
|
+
| Keyboard | Tab navigation works |
|
|
32
|
+
|
|
33
|
+
### Forms
|
|
34
|
+
|
|
35
|
+
| Test | Check |
|
|
36
|
+
|------|-------|
|
|
37
|
+
| Submit | Data sent correctly |
|
|
38
|
+
| Validation | All fields validated |
|
|
39
|
+
| Error display | Errors shown clearly |
|
|
40
|
+
| Success | Success feedback shown |
|
|
41
|
+
| Reset | Form can be reset |
|
|
42
|
+
| Dirty state | Warn before losing changes |
|
|
43
|
+
| Enter key | Submits form |
|
|
44
|
+
| Loading | Disabled during submit |
|
|
45
|
+
|
|
46
|
+
### Modals/Dialogs
|
|
47
|
+
|
|
48
|
+
| Test | Check |
|
|
49
|
+
|------|-------|
|
|
50
|
+
| Open | Opens correctly |
|
|
51
|
+
| Close button | Closes modal |
|
|
52
|
+
| Backdrop click | Closes (if expected) |
|
|
53
|
+
| Escape key | Closes modal |
|
|
54
|
+
| Focus trap | Focus stays in modal |
|
|
55
|
+
| Scroll lock | Background doesn't scroll |
|
|
56
|
+
| Animation | Smooth open/close |
|
|
57
|
+
| Nested | Works if modals nest |
|
|
58
|
+
|
|
59
|
+
### Dropdowns/Selects
|
|
60
|
+
|
|
61
|
+
| Test | Check |
|
|
62
|
+
|------|-------|
|
|
63
|
+
| Open | Dropdown opens |
|
|
64
|
+
| Close | Closes on blur/select |
|
|
65
|
+
| Selection | Value updates |
|
|
66
|
+
| Keyboard | Arrow keys navigate |
|
|
67
|
+
| Search | Filter works (if applicable) |
|
|
68
|
+
| Clear | Can clear selection |
|
|
69
|
+
| Multi-select | Multiple items (if applicable) |
|
|
70
|
+
| Placeholder | Shows default text |
|
|
71
|
+
| **🔴 Bottom edge** | Dropdown flips up when near viewport bottom |
|
|
72
|
+
| **🔴 Right edge** | Content doesn't overflow viewport right |
|
|
73
|
+
|
|
74
|
+
### Context Menus (Right-Click Menus)
|
|
75
|
+
|
|
76
|
+
| Test | Check |
|
|
77
|
+
|------|-------|
|
|
78
|
+
| Open | Menu appears on right-click |
|
|
79
|
+
| Close | Closes on click outside/Escape |
|
|
80
|
+
| Actions | Menu items trigger correctly |
|
|
81
|
+
| Nested | Submenus work (if applicable) |
|
|
82
|
+
| **🔴 Bottom edge** | Menu flips UP when clicked near viewport bottom |
|
|
83
|
+
| **🔴 Right edge** | Menu flips LEFT when clicked near viewport right |
|
|
84
|
+
| **🔴 Corner** | Both flips work when clicked in bottom-right corner |
|
|
85
|
+
| Scroll | Menu stays in view when page scrolls |
|
|
86
|
+
|
|
87
|
+
### Tooltips/Popovers
|
|
88
|
+
|
|
89
|
+
| Test | Check |
|
|
90
|
+
|------|-------|
|
|
91
|
+
| Trigger | Shows on hover/focus/click |
|
|
92
|
+
| Hide | Hides on mouse leave/blur/click outside |
|
|
93
|
+
| Content | Displays correct content |
|
|
94
|
+
| Delay | Appropriate show/hide delay |
|
|
95
|
+
| **🔴 Edge detection** | Flips direction when near any viewport edge |
|
|
96
|
+
| **🔴 All four edges** | Test near top, bottom, left, right edges |
|
|
97
|
+
| Arrow | Arrow points to trigger element |
|
|
98
|
+
| Portal | Renders in portal (not clipped by parent overflow) |
|
|
99
|
+
|
|
100
|
+
### Tables
|
|
101
|
+
|
|
102
|
+
| Test | Check |
|
|
103
|
+
|------|-------|
|
|
104
|
+
| Render | Data displays correctly |
|
|
105
|
+
| Sort | Columns sort |
|
|
106
|
+
| Filter | Filter works |
|
|
107
|
+
| Pagination | Pages work |
|
|
108
|
+
| Empty state | Shows when no data |
|
|
109
|
+
| Loading | Shows loading indicator |
|
|
110
|
+
| Selection | Row selection works |
|
|
111
|
+
| Actions | Row actions work |
|
|
112
|
+
|
|
113
|
+
### Navigation
|
|
114
|
+
|
|
115
|
+
| Test | Check |
|
|
116
|
+
|------|-------|
|
|
117
|
+
| Links | Navigate correctly |
|
|
118
|
+
| Active state | Current page highlighted |
|
|
119
|
+
| External links | Open in new tab |
|
|
120
|
+
| Back button | History works |
|
|
121
|
+
| Deep links | Direct URL access works |
|
|
122
|
+
| Breadcrumbs | Show correct path |
|
|
123
|
+
|
|
124
|
+
### Toast/Notifications
|
|
125
|
+
|
|
126
|
+
| Test | Check |
|
|
127
|
+
|------|-------|
|
|
128
|
+
| Display | Shows correctly |
|
|
129
|
+
| Auto-dismiss | Closes after timeout |
|
|
130
|
+
| Manual close | Can be dismissed |
|
|
131
|
+
| Stack | Multiple notifications stack |
|
|
132
|
+
| Type | Success/error/warning styles |
|
|
133
|
+
|
|
134
|
+
### File Upload
|
|
135
|
+
|
|
136
|
+
| Test | Check |
|
|
137
|
+
|------|-------|
|
|
138
|
+
| Click upload | File dialog opens |
|
|
139
|
+
| Drag drop | Drop zone works |
|
|
140
|
+
| File types | Validates allowed types |
|
|
141
|
+
| File size | Validates size limit |
|
|
142
|
+
| Progress | Shows upload progress |
|
|
143
|
+
| Cancel | Can cancel upload |
|
|
144
|
+
| Preview | Shows file preview |
|
|
145
|
+
| Multiple | Multiple files (if applicable) |
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## State Testing Matrix
|
|
150
|
+
|
|
151
|
+
For EVERY component, test all states:
|
|
152
|
+
|
|
153
|
+
| State | What to Check |
|
|
154
|
+
|-------|---------------|
|
|
155
|
+
| Default | Normal appearance and behavior |
|
|
156
|
+
| Hover | Visual feedback on mouse over |
|
|
157
|
+
| Focus | Visible focus indicator |
|
|
158
|
+
| Active | Click/press state |
|
|
159
|
+
| Disabled | Grayed out, not interactive |
|
|
160
|
+
| Loading | Spinner, disabled interaction |
|
|
161
|
+
| Error | Red border, error message |
|
|
162
|
+
| Success | Green feedback |
|
|
163
|
+
| Empty | Empty state UI |
|
|
164
|
+
| Partial | Partial data state |
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Accessibility Testing
|
|
169
|
+
|
|
170
|
+
| Check | How |
|
|
171
|
+
|-------|-----|
|
|
172
|
+
| Keyboard nav | Tab through all elements |
|
|
173
|
+
| Focus visible | Focus ring visible |
|
|
174
|
+
| Screen reader | Aria labels present |
|
|
175
|
+
| Color contrast | 4.5:1 minimum |
|
|
176
|
+
| Touch targets | 44x44px minimum |
|
|
177
|
+
| Error announcement | Errors announced |
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Responsive Testing
|
|
182
|
+
|
|
183
|
+
| Breakpoint | What to Check |
|
|
184
|
+
|------------|---------------|
|
|
185
|
+
| Mobile (320px) | Layout doesn't break |
|
|
186
|
+
| Mobile (375px) | Standard mobile |
|
|
187
|
+
| Tablet (768px) | Tablet layout |
|
|
188
|
+
| Desktop (1024px) | Desktop layout |
|
|
189
|
+
| Large (1440px) | Wide screen |
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 🔴 Viewport Boundary Testing (MANDATORY for Popups)
|
|
194
|
+
|
|
195
|
+
Test ALL popup/floating elements at every viewport edge.
|
|
196
|
+
|
|
197
|
+
### Test Matrix for Positioned Elements
|
|
198
|
+
|
|
199
|
+
| Element | Test Position | Expected Behavior |
|
|
200
|
+
|---------|---------------|-------------------|
|
|
201
|
+
| Context Menu | Bottom of list | Menu opens UPWARD |
|
|
202
|
+
| Context Menu | Right edge | Menu opens LEFTWARD |
|
|
203
|
+
| Context Menu | Bottom-right corner | Menu opens UP-LEFT |
|
|
204
|
+
| Dropdown | Near viewport bottom | Dropdown flips to "dropup" |
|
|
205
|
+
| Tooltip | Top of viewport | Tooltip shows BELOW trigger |
|
|
206
|
+
| Tooltip | Right edge | Tooltip shows to LEFT |
|
|
207
|
+
| Popover | Any edge | Auto-flips to visible position |
|
|
208
|
+
| Autocomplete | Near bottom | Suggestions open upward |
|
|
209
|
+
|
|
210
|
+
### How to Test
|
|
211
|
+
|
|
212
|
+
1. **Resize browser** to make viewport smaller
|
|
213
|
+
2. **Scroll content** so target element is near edge
|
|
214
|
+
3. **Trigger popup** (right-click, hover, click)
|
|
215
|
+
4. **Verify**: Popup is fully visible, no clipping
|
|
216
|
+
|
|
217
|
+
### Quick Test Script for Edge Detection
|
|
218
|
+
|
|
219
|
+
```typescript
|
|
220
|
+
describe('Popup Edge Detection', () => {
|
|
221
|
+
beforeEach(() => {
|
|
222
|
+
// Set viewport to small size
|
|
223
|
+
cy.viewport(400, 300);
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
it('context menu flips up when near bottom', () => {
|
|
227
|
+
// Scroll to bottom item
|
|
228
|
+
cy.get('[data-testid="last-item"]').scrollIntoView();
|
|
229
|
+
|
|
230
|
+
// Right-click
|
|
231
|
+
cy.get('[data-testid="last-item"]').rightclick();
|
|
232
|
+
|
|
233
|
+
// Menu should be fully visible (not below viewport)
|
|
234
|
+
cy.get('[data-testid="context-menu"]')
|
|
235
|
+
.should('be.visible')
|
|
236
|
+
.then($menu => {
|
|
237
|
+
const rect = $menu[0].getBoundingClientRect();
|
|
238
|
+
expect(rect.bottom).to.be.lessThan(window.innerHeight);
|
|
239
|
+
});
|
|
240
|
+
});
|
|
241
|
+
|
|
242
|
+
it('dropdown flips up when near bottom', () => {
|
|
243
|
+
cy.get('[data-testid="bottom-select"]').click();
|
|
244
|
+
cy.get('[data-testid="dropdown-options"]')
|
|
245
|
+
.should('be.visible')
|
|
246
|
+
.then($dropdown => {
|
|
247
|
+
const rect = $dropdown[0].getBoundingClientRect();
|
|
248
|
+
expect(rect.bottom).to.be.lessThan(window.innerHeight);
|
|
249
|
+
});
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Common Failure Patterns
|
|
255
|
+
|
|
256
|
+
| Symptom | Root Cause | Fix |
|
|
257
|
+
|---------|------------|-----|
|
|
258
|
+
| Menu clipped at bottom | No boundary check | Add `useLayoutEffect` with viewport detection |
|
|
259
|
+
| Menu behind other elements | z-index issue | Use portal or increase z-index |
|
|
260
|
+
| Menu disappears on scroll | Using `absolute` vs `fixed` | Use `fixed` positioning |
|
|
261
|
+
| Flicker on position adjust | Using `useEffect` not `useLayoutEffect` | Switch to `useLayoutEffect` |
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Quick Test Script
|
|
266
|
+
|
|
267
|
+
```typescript
|
|
268
|
+
// For each component, run through:
|
|
269
|
+
|
|
270
|
+
describe('ComponentName', () => {
|
|
271
|
+
// 1. Rendering
|
|
272
|
+
it('renders correctly', () => {});
|
|
273
|
+
|
|
274
|
+
// 2. Interaction
|
|
275
|
+
it('handles click', () => {});
|
|
276
|
+
it('handles keyboard', () => {});
|
|
277
|
+
|
|
278
|
+
// 3. States
|
|
279
|
+
it('shows loading state', () => {});
|
|
280
|
+
it('shows error state', () => {});
|
|
281
|
+
it('shows empty state', () => {});
|
|
282
|
+
|
|
283
|
+
// 4. Validation
|
|
284
|
+
it('validates input', () => {});
|
|
285
|
+
it('shows validation errors', () => {});
|
|
286
|
+
|
|
287
|
+
// 5. Accessibility
|
|
288
|
+
it('is keyboard accessible', () => {});
|
|
289
|
+
it('has proper aria labels', () => {});
|
|
290
|
+
});
|
|
291
|
+
```
|
|
292
|
+
|