Fixed:
- Price: €800K-€1.5M, Sunseeker added
- Agent 1: Joe Trader persona + actual sale ads research
- Ignored meilisearch binary + data/ (too large for GitHub)
- SESSION_DEBUG_BLOCKERS.md created
Ready for Session 1 launch.
🤖 Generated with Claude Code
628 lines
17 KiB
Markdown
628 lines
17 KiB
Markdown
# LibraryView - Smoke Test Checklist
|
|
|
|
**Version:** 1.0
|
|
**Last Updated:** 2025-10-23
|
|
**Component:** LibraryView (`/home/setup/navidocs/client/src/views/LibraryView.vue`)
|
|
**Test Duration:** ~10-15 minutes
|
|
|
|
---
|
|
|
|
## Purpose
|
|
|
|
This smoke test checklist provides a quick validation that the LibraryView component is functioning correctly after code changes, deployments, or environment updates. It covers critical functionality that must work for the feature to be considered "shippable."
|
|
|
|
---
|
|
|
|
## Prerequisites
|
|
|
|
- [ ] Repository cloned: `/home/setup/navidocs`
|
|
- [ ] Node.js installed (v18 or v20)
|
|
- [ ] Dependencies installed (`npm install` in client directory)
|
|
- [ ] No pending git changes that might interfere
|
|
- [ ] Browser available (Chrome, Firefox, or Safari recommended)
|
|
|
|
---
|
|
|
|
## Test Environment Setup
|
|
|
|
### 1. Start the Development Server
|
|
|
|
```bash
|
|
# Navigate to client directory
|
|
cd /home/setup/navidocs/client
|
|
|
|
# Install dependencies (if not already done)
|
|
npm install
|
|
|
|
# Start dev server
|
|
npm run dev
|
|
```
|
|
|
|
**Expected Output:**
|
|
```
|
|
VITE v5.x.x ready in XXX ms
|
|
|
|
➜ Local: http://localhost:5173/
|
|
➜ Network: use --host to expose
|
|
➜ press h to show help
|
|
```
|
|
|
|
**Verification:**
|
|
- [ ] Server starts without errors
|
|
- [ ] Port 5173 is accessible
|
|
- [ ] No dependency errors in terminal
|
|
- [ ] Build completes in <5 seconds
|
|
|
|
**If server fails:**
|
|
- Check for port conflicts: `lsof -i :5173`
|
|
- Check Node version: `node --version`
|
|
- Clear cache: `rm -rf node_modules/.vite`
|
|
|
|
---
|
|
|
|
## Smoke Test Scenarios
|
|
|
|
### Test 1: Initial Page Load ✓
|
|
|
|
**Steps:**
|
|
1. Open browser
|
|
2. Navigate to `http://localhost:5173/library`
|
|
3. Wait for page to fully load (2-3 seconds)
|
|
|
|
**Pass Criteria:**
|
|
- [ ] Page loads without white screen or errors
|
|
- [ ] Header appears with "Document Library" title
|
|
- [ ] Vessel name "LILIAN I - 29 documents" visible
|
|
- [ ] No JavaScript errors in console (F12 > Console)
|
|
- [ ] Background gradient visible (purple to black)
|
|
- [ ] Page renders in <3 seconds
|
|
|
|
**Expected Console Output:**
|
|
```
|
|
[Vue Router] Navigating to: /library
|
|
[LibraryView] Component mounted
|
|
```
|
|
|
|
**Failure Indicators:**
|
|
- ❌ Blank/white page
|
|
- ❌ "Cannot read property X of undefined" errors
|
|
- ❌ Infinite loading spinner
|
|
- ❌ 404 Not Found
|
|
|
|
---
|
|
|
|
### Test 2: Console Error Check ✓
|
|
|
|
**Steps:**
|
|
1. With `/library` loaded, open DevTools (F12)
|
|
2. Go to Console tab
|
|
3. Scan for errors (red text)
|
|
|
|
**Pass Criteria:**
|
|
- [ ] No JavaScript errors (Uncaught, TypeError, ReferenceError)
|
|
- [ ] No Vue warnings about failed components
|
|
- [ ] No "Failed to fetch" network errors
|
|
- [ ] No unhandled promise rejections
|
|
|
|
**Acceptable Warnings (can ignore):**
|
|
```javascript
|
|
// These are OK
|
|
[Vue Router warn]: ...
|
|
[Vue Devtools] ...
|
|
```
|
|
|
|
**Failure Indicators:**
|
|
```javascript
|
|
// These are BAD
|
|
❌ Uncaught TypeError: Cannot read properties of undefined
|
|
❌ [Vue warn]: Failed to resolve component
|
|
❌ Uncaught ReferenceError: X is not defined
|
|
❌ Failed to fetch
|
|
```
|
|
|
|
**If errors found:**
|
|
- Copy full error stack trace
|
|
- Note which action triggered it
|
|
- Document browser and version
|
|
- Screenshot the console
|
|
|
|
---
|
|
|
|
### Test 3: All Sections Render ✓
|
|
|
|
**Steps:**
|
|
1. On `/library`, scroll through entire page
|
|
2. Verify each major section is visible
|
|
|
|
**Essential Documents Section:**
|
|
- [ ] Section title "Essential Documents" visible
|
|
- [ ] "Pin Document" button visible (top-right)
|
|
- [ ] 3 document cards present:
|
|
- [ ] Insurance Policy 2025 (blue icon)
|
|
- [ ] LILIAN I Registration (green icon)
|
|
- [ ] Owner's Manual (purple icon)
|
|
- [ ] Each card has an icon, title, description, badge, and alert banner
|
|
- [ ] Icons have proper colors and gradients
|
|
|
|
**Browse by Category Section:**
|
|
- [ ] Section title "Browse by Category" visible
|
|
- [ ] 8 category cards present:
|
|
- [ ] Legal & Compliance (green)
|
|
- [ ] Financial (yellow)
|
|
- [ ] Operations (blue)
|
|
- [ ] Manuals (purple)
|
|
- [ ] Insurance (indigo)
|
|
- [ ] Photos (pink)
|
|
- [ ] Service Records (orange)
|
|
- [ ] Warranties (teal)
|
|
- [ ] Each card has icon, title, description, and arrow
|
|
- [ ] Document counts visible on each card
|
|
|
|
**Recent Activity Section:**
|
|
- [ ] Section title "Recent Activity" visible
|
|
- [ ] Glass panel container visible
|
|
- [ ] 3 activity items present:
|
|
- [ ] Facture n° F1820008157 (PDF badge)
|
|
- [ ] Lilian delivery Olbia Cannes (XLSX badge)
|
|
- [ ] Vessel exterior photo (JPG badge)
|
|
- [ ] Each item has file type badge, title, timestamp, and status badge
|
|
|
|
**Pass Criteria:**
|
|
- [ ] All 3 sections visible without scrolling issues
|
|
- [ ] No missing images or broken icons
|
|
- [ ] No layout overflow or cutoff content
|
|
- [ ] Spacing looks correct between sections
|
|
|
|
---
|
|
|
|
### Test 4: Role Switcher Functionality ✓
|
|
|
|
**Steps:**
|
|
1. Locate role switcher in header (top-right)
|
|
2. Verify "Owner" is selected by default (has gradient background)
|
|
3. Click "Captain" button
|
|
4. Click "Manager" button
|
|
5. Click "Crew" button
|
|
6. Click "Owner" button again
|
|
|
|
**Pass Criteria:**
|
|
- [ ] All 4 role buttons visible: Owner, Captain, Manager, Crew
|
|
- [ ] Default role "Owner" has gradient background (from-primary-500 to-secondary-500)
|
|
- [ ] Clicking button immediately updates visual state
|
|
- [ ] Only one role highlighted at a time
|
|
- [ ] Previously selected role returns to inactive state (text-white/70)
|
|
- [ ] Inactive buttons show hover effect (bg-white/10)
|
|
- [ ] Smooth transition animation (no flashing)
|
|
- [ ] No console errors when switching roles
|
|
|
|
**Console Verification:**
|
|
```javascript
|
|
// Open console (F12) and check for:
|
|
Navigate to category: captain (if logging enabled)
|
|
Navigate to category: manager
|
|
Navigate to category: crew
|
|
Navigate to category: owner
|
|
```
|
|
|
|
**Failure Indicators:**
|
|
- ❌ Multiple roles highlighted simultaneously
|
|
- ❌ Button doesn't respond to clicks
|
|
- ❌ JavaScript error on click
|
|
- ❌ Role state doesn't update
|
|
|
|
---
|
|
|
|
### Test 5: Category Card Clicks ✓
|
|
|
|
**Steps:**
|
|
1. Open browser console (F12 > Console)
|
|
2. Scroll to "Browse by Category" section
|
|
3. Click on each category card and verify console output:
|
|
|
|
| Category | Click | Console Output Expected |
|
|
|----------|-------|------------------------|
|
|
| Legal & Compliance | Click | `Navigate to category: legal` |
|
|
| Financial | Click | `Navigate to category: financial` |
|
|
| Operations | Click | `Navigate to category: operations` |
|
|
| Manuals | Click | `Navigate to category: manuals` |
|
|
| Insurance | Click | `Navigate to category: insurance` |
|
|
| Photos | Click | `Navigate to category: photos` |
|
|
| Service Records | Click | `Navigate to category: service` |
|
|
| Warranties | Click | `Navigate to category: warranties` |
|
|
|
|
**Pass Criteria:**
|
|
- [ ] Each card is clickable
|
|
- [ ] Hover effect applies: card translates up, shadow increases
|
|
- [ ] Icon scales and rotates on hover (group-hover effects)
|
|
- [ ] Arrow icon transitions to pink-400 and translates right
|
|
- [ ] Console logs correct category ID
|
|
- [ ] No JavaScript errors
|
|
- [ ] No actual page navigation (stays on /library)
|
|
|
|
**Failure Indicators:**
|
|
- ❌ Cards not clickable
|
|
- ❌ Wrong category logged
|
|
- ❌ TypeError in console
|
|
- ❌ Page navigates away unexpectedly
|
|
- ❌ Hover effects don't work
|
|
|
|
---
|
|
|
|
### Test 6: Header Navigation ✓
|
|
|
|
**Steps:**
|
|
1. On `/library` page
|
|
2. Locate logo button (wave icon, top-left)
|
|
3. Hover over button
|
|
4. Click button
|
|
|
|
**Pass Criteria:**
|
|
- [ ] Logo button visible with gradient background (primary to secondary)
|
|
- [ ] Hover effect: button scales to 105% (hover:scale-105)
|
|
- [ ] Clicking button navigates to home page (`/`)
|
|
- [ ] Navigation completes without errors
|
|
- [ ] Back button returns to `/library`
|
|
|
|
**Console Verification:**
|
|
```javascript
|
|
[Router] Navigating to: { name: 'home' }
|
|
[Router] Navigation complete
|
|
```
|
|
|
|
---
|
|
|
|
### Test 7: Hover Effects & Interactions ✓
|
|
|
|
**Steps:**
|
|
Test hover states on key interactive elements.
|
|
|
|
**Essential Document Cards:**
|
|
1. Hover over Insurance Policy card
|
|
- [ ] Card translates up (-translate-y-1)
|
|
- [ ] Shadow increases
|
|
- [ ] Border color brightens (border-pink-400/50)
|
|
- [ ] Icon scales to 110%
|
|
|
|
2. Hover over bookmark icon
|
|
- [ ] Background changes (hover:bg-white/10)
|
|
- [ ] Color changes to pink-300
|
|
|
|
**Category Cards:**
|
|
1. Hover over "Financial" category
|
|
- [ ] Card translates up
|
|
- [ ] Shadow increases
|
|
- [ ] Icon scales to 110% and rotates 3deg
|
|
- [ ] Title color changes to pink-400
|
|
- [ ] Arrow changes to pink-400 and translates right
|
|
|
|
**Activity Items:**
|
|
1. Hover over activity items
|
|
- [ ] Item translates up slightly
|
|
- [ ] Background lightens (hover:bg-white/15)
|
|
- [ ] Title color changes to pink-400
|
|
|
|
**Role Buttons:**
|
|
1. Hover over inactive role button
|
|
- [ ] Text color changes to white
|
|
- [ ] Background changes to white/10
|
|
|
|
**Pass Criteria:**
|
|
- [ ] All hover effects smooth (no janky animations)
|
|
- [ ] Transition duration feels right (~200-300ms)
|
|
- [ ] Effects revert when mouse leaves
|
|
- [ ] No layout shifts during hover
|
|
|
|
---
|
|
|
|
### Test 8: Responsive Behavior ✓
|
|
|
|
**Steps:**
|
|
1. Open DevTools (F12)
|
|
2. Click device toggle (Ctrl+Shift+M or Cmd+Shift+M)
|
|
3. Test at different viewport sizes:
|
|
|
|
**Desktop (1920x1080):**
|
|
- [ ] Container max-width: 1280px (max-w-7xl)
|
|
- [ ] Essential docs: 3 columns
|
|
- [ ] Categories: 4 columns
|
|
- [ ] All content centered
|
|
- [ ] No horizontal scroll
|
|
|
|
**Tablet (768px):**
|
|
- [ ] Essential docs: 3 columns maintained
|
|
- [ ] Categories: 3 columns
|
|
- [ ] Role switcher fits in header
|
|
- [ ] Readable spacing
|
|
|
|
**Mobile (375px):**
|
|
- [ ] Essential docs: 1 column (stacked)
|
|
- [ ] Categories: 1 column (stacked)
|
|
- [ ] Role switcher may wrap or scroll
|
|
- [ ] Header remains sticky
|
|
- [ ] No horizontal overflow
|
|
- [ ] Text remains legible
|
|
|
|
**Pass Criteria:**
|
|
- [ ] Layout adapts smoothly at all breakpoints
|
|
- [ ] No broken layouts
|
|
- [ ] No overlapping content
|
|
- [ ] Touch targets at least 44x44px on mobile
|
|
|
|
---
|
|
|
|
### Test 9: Visual Styling & Polish ✓
|
|
|
|
**Visual Quality Check:**
|
|
|
|
**Glass Morphism:**
|
|
- [ ] Header has glass effect (backdrop blur visible)
|
|
- [ ] Essential doc cards have glass effect
|
|
- [ ] Role switcher container has glass effect
|
|
- [ ] Recent activity panel has glass effect
|
|
- [ ] Blur effect works across all browsers
|
|
|
|
**Gradients:**
|
|
- [ ] Page background: Purple to black gradient
|
|
- [ ] Role switcher: Pink to purple gradient
|
|
- [ ] Category icons: Proper color gradients (green, yellow, blue, etc.)
|
|
- [ ] No gradient banding or color issues
|
|
|
|
**Typography:**
|
|
- [ ] Font: Inter (loaded from Google Fonts)
|
|
- [ ] Titles: Bold and readable
|
|
- [ ] Body text: Appropriate size (not too small)
|
|
- [ ] Proper hierarchy (H1 > H2 > H3)
|
|
|
|
**Colors:**
|
|
- [ ] White text contrasts well with dark background
|
|
- [ ] Pink accent color (#f472b6) visible and vibrant
|
|
- [ ] Badge colors match design (green=success, yellow=warning, etc.)
|
|
- [ ] Transparent elements blend smoothly
|
|
|
|
**Spacing:**
|
|
- [ ] Consistent padding/margins
|
|
- [ ] No elements touching edges
|
|
- [ ] Good visual rhythm (not cramped or too spacious)
|
|
|
|
**Animations:**
|
|
- [ ] Cards fade in on initial load
|
|
- [ ] Staggered animation delays (0.1s, 0.2s, etc.)
|
|
- [ ] Smooth transitions (no jerky movements)
|
|
- [ ] No animation flicker
|
|
|
|
**Pass Criteria:**
|
|
- [ ] Looks polished and professional
|
|
- [ ] Matches design system (Meilisearch-inspired)
|
|
- [ ] No visual bugs or glitches
|
|
- [ ] Consistent styling throughout
|
|
|
|
---
|
|
|
|
### Test 10: Browser Compatibility Quick Check ✓
|
|
|
|
**If Multiple Browsers Available:**
|
|
|
|
**Chrome/Edge:**
|
|
- [ ] All features work
|
|
- [ ] Glass effects render correctly
|
|
- [ ] Animations smooth
|
|
- [ ] No console errors
|
|
|
|
**Firefox:**
|
|
- [ ] All features work
|
|
- [ ] Gradients render correctly
|
|
- [ ] Hover effects work
|
|
- [ ] No console errors
|
|
|
|
**Safari (if on macOS):**
|
|
- [ ] All features work
|
|
- [ ] Backdrop blur supported
|
|
- [ ] Transitions smooth
|
|
- [ ] No console errors
|
|
|
|
**Pass Criteria:**
|
|
- [ ] Core functionality works in all tested browsers
|
|
- [ ] Only minor visual differences acceptable
|
|
- [ ] No critical errors in any browser
|
|
|
|
---
|
|
|
|
## Quick Issue Triage
|
|
|
|
### If Tests Fail
|
|
|
|
**Component doesn't load:**
|
|
1. Check route is registered in `/home/setup/navidocs/client/src/router.js`
|
|
2. Verify component file exists at `/home/setup/navidocs/client/src/views/LibraryView.vue`
|
|
3. Check for import errors in console
|
|
|
|
**Console errors appear:**
|
|
1. Copy full error message and stack trace
|
|
2. Note which action triggered the error
|
|
3. Check for typos in component code
|
|
4. Verify all imports are correct
|
|
|
|
**Styling looks wrong:**
|
|
1. Verify Tailwind CSS is loaded (check `main.css` import)
|
|
2. Check for conflicting CSS
|
|
3. Clear browser cache (Ctrl+Shift+R or Cmd+Shift+R)
|
|
4. Verify PostCSS and Tailwind configs
|
|
|
|
**Hover effects don't work:**
|
|
1. Ensure you're testing on desktop (not mobile)
|
|
2. Check for JavaScript errors blocking events
|
|
3. Verify CSS classes are applied
|
|
|
|
**Router navigation fails:**
|
|
1. Check Vue Router is initialized
|
|
2. Verify route names match
|
|
3. Check for navigation guards blocking access
|
|
|
|
---
|
|
|
|
## Pass/Fail Criteria
|
|
|
|
### Critical (Must Pass)
|
|
|
|
All of these must pass for the component to be considered functional:
|
|
|
|
- [ ] Test 1: Initial Page Load ✓
|
|
- [ ] Test 2: Console Error Check ✓
|
|
- [ ] Test 3: All Sections Render ✓
|
|
- [ ] Test 4: Role Switcher Functionality ✓
|
|
- [ ] Test 5: Category Card Clicks ✓
|
|
|
|
### Important (Should Pass)
|
|
|
|
These should work but can be fixed in follow-up:
|
|
|
|
- [ ] Test 6: Header Navigation ✓
|
|
- [ ] Test 7: Hover Effects & Interactions ✓
|
|
- [ ] Test 8: Responsive Behavior ✓
|
|
|
|
### Nice to Have (Can Defer)
|
|
|
|
These enhance quality but aren't blocking:
|
|
|
|
- [ ] Test 9: Visual Styling & Polish ✓
|
|
- [ ] Test 10: Browser Compatibility Quick Check ✓
|
|
|
|
---
|
|
|
|
## Test Results Template
|
|
|
|
**Tester Name:** ___________________________
|
|
**Date:** ___________________________
|
|
**Time Started:** ___________________________
|
|
**Time Completed:** ___________________________
|
|
**Browser:** ___________________________
|
|
**Browser Version:** ___________________________
|
|
**OS:** ___________________________
|
|
**Screen Resolution:** ___________________________
|
|
|
|
### Summary
|
|
|
|
**Tests Passed:** _____ / 10
|
|
**Tests Failed:** _____
|
|
**Critical Issues Found:** _____
|
|
**Minor Issues Found:** _____
|
|
|
|
**Overall Status:** 🟢 PASS / 🟡 PASS WITH ISSUES / 🔴 FAIL
|
|
|
|
### Failed Tests
|
|
|
|
| Test # | Test Name | Failure Reason | Severity |
|
|
|--------|-----------|----------------|----------|
|
|
| | | | Critical / Major / Minor |
|
|
| | | | Critical / Major / Minor |
|
|
|
|
### Issues Found
|
|
|
|
| Issue # | Description | Steps to Reproduce | Severity | Screenshot/Log |
|
|
|---------|-------------|-------------------|----------|----------------|
|
|
| 1 | | | | |
|
|
| 2 | | | | |
|
|
|
|
### Notes
|
|
|
|
```
|
|
Additional observations, questions, or concerns:
|
|
|
|
```
|
|
|
|
---
|
|
|
|
## Cleanup
|
|
|
|
After testing:
|
|
|
|
1. Stop the dev server (Ctrl+C in terminal)
|
|
2. Close browser tabs
|
|
3. Document any issues in project tracker
|
|
4. Update this checklist if new tests are needed
|
|
|
|
---
|
|
|
|
## Next Steps
|
|
|
|
**If All Tests Pass:**
|
|
- [ ] Mark component as smoke test approved
|
|
- [ ] Proceed to full regression testing (see `/home/setup/navidocs/client/tests/LibraryView.test.md`)
|
|
- [ ] Consider deploying to staging environment
|
|
|
|
**If Tests Fail:**
|
|
- [ ] Document failures in detail
|
|
- [ ] Create bug tickets for critical issues
|
|
- [ ] Assign to developer for fixes
|
|
- [ ] Re-run smoke tests after fixes
|
|
- [ ] Do not deploy until critical tests pass
|
|
|
|
**For Future Enhancements:**
|
|
- [ ] Add API integration tests
|
|
- [ ] Create automated Playwright tests
|
|
- [ ] Set up CI/CD smoke test pipeline
|
|
- [ ] Add performance benchmarks
|
|
|
|
---
|
|
|
|
## Automation Notes
|
|
|
|
This checklist can be partially automated with Playwright:
|
|
|
|
```javascript
|
|
// /home/setup/navidocs/tests/e2e/library-smoke.spec.js
|
|
import { test, expect } from '@playwright/test'
|
|
|
|
test('LibraryView smoke test', async ({ page }) => {
|
|
// Test 1: Initial load
|
|
await page.goto('http://localhost:5173/library')
|
|
await expect(page.locator('h1')).toContainText('Document Library')
|
|
|
|
// Test 2: Console errors
|
|
page.on('console', msg => {
|
|
if (msg.type() === 'error') throw new Error(msg.text())
|
|
})
|
|
|
|
// Test 3: Sections render
|
|
await expect(page.locator('text=Essential Documents')).toBeVisible()
|
|
await expect(page.locator('text=Browse by Category')).toBeVisible()
|
|
await expect(page.locator('text=Recent Activity')).toBeVisible()
|
|
|
|
// Test 4: Role switcher
|
|
await page.click('text=Captain')
|
|
await expect(page.locator('button:has-text("Captain")')).toHaveClass(/from-primary-500/)
|
|
|
|
// Test 5: Category clicks
|
|
await page.click('text=Legal & Compliance')
|
|
// Check console for navigation log
|
|
|
|
// ... more tests
|
|
})
|
|
```
|
|
|
|
---
|
|
|
|
## Version History
|
|
|
|
| Version | Date | Changes | Author |
|
|
|---------|------|---------|--------|
|
|
| 1.0 | 2025-10-23 | Initial smoke test checklist created | Claude |
|
|
|
|
---
|
|
|
|
## Contact & Support
|
|
|
|
**Questions about this checklist?**
|
|
- Review full test documentation: `/home/setup/navidocs/client/tests/LibraryView.test.md`
|
|
- Check component source: `/home/setup/navidocs/client/src/views/LibraryView.vue`
|
|
- Review router config: `/home/setup/navidocs/client/src/router.js`
|
|
|
|
**Reporting Issues:**
|
|
- Include browser version and OS
|
|
- Attach screenshots or screen recordings
|
|
- Copy full console error messages
|
|
- Note steps to reproduce
|
|
|
|
---
|
|
|
|
**END OF SMOKE TEST CHECKLIST**
|