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
17 KiB
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 installin client directory) - No pending git changes that might interfere
- Browser available (Chrome, Firefox, or Safari recommended)
Test Environment Setup
1. Start the Development Server
# 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:
- Open browser
- Navigate to
http://localhost:5173/library - 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:
- With
/libraryloaded, open DevTools (F12) - Go to Console tab
- 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):
// These are OK
[Vue Router warn]: ...
[Vue Devtools] ...
Failure Indicators:
// 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:
- On
/library, scroll through entire page - 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:
- Locate role switcher in header (top-right)
- Verify "Owner" is selected by default (has gradient background)
- Click "Captain" button
- Click "Manager" button
- Click "Crew" button
- 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:
// 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:
- Open browser console (F12 > Console)
- Scroll to "Browse by Category" section
- 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:
- On
/librarypage - Locate logo button (wave icon, top-left)
- Hover over button
- 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:
[Router] Navigating to: { name: 'home' }
[Router] Navigation complete
Test 7: Hover Effects & Interactions ✓
Steps: Test hover states on key interactive elements.
Essential Document Cards:
-
Hover over Insurance Policy card
- Card translates up (-translate-y-1)
- Shadow increases
- Border color brightens (border-pink-400/50)
- Icon scales to 110%
-
Hover over bookmark icon
- Background changes (hover:bg-white/10)
- Color changes to pink-300
Category Cards:
- 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:
- Hover over activity items
- Item translates up slightly
- Background lightens (hover:bg-white/15)
- Title color changes to pink-400
Role Buttons:
- 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:
- Open DevTools (F12)
- Click device toggle (Ctrl+Shift+M or Cmd+Shift+M)
- 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:
- Check route is registered in
/home/setup/navidocs/client/src/router.js - Verify component file exists at
/home/setup/navidocs/client/src/views/LibraryView.vue - Check for import errors in console
Console errors appear:
- Copy full error message and stack trace
- Note which action triggered the error
- Check for typos in component code
- Verify all imports are correct
Styling looks wrong:
- Verify Tailwind CSS is loaded (check
main.cssimport) - Check for conflicting CSS
- Clear browser cache (Ctrl+Shift+R or Cmd+Shift+R)
- Verify PostCSS and Tailwind configs
Hover effects don't work:
- Ensure you're testing on desktop (not mobile)
- Check for JavaScript errors blocking events
- Verify CSS classes are applied
Router navigation fails:
- Check Vue Router is initialized
- Verify route names match
- 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:
- Stop the dev server (Ctrl+C in terminal)
- Close browser tabs
- Document any issues in project tracker
- 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:
// /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