105 lines
4.7 KiB
Markdown
105 lines
4.7 KiB
Markdown
# Regression Checklist
|
|
|
|
Use this when a change could affect runtime behavior. It is not required reading for every session.
|
|
|
|
## Automated tests (run first)
|
|
|
|
```
|
|
node svsmspcalc/tests/test-quote-engine.js
|
|
```
|
|
|
|
This covers all core quote math, admin fee logic, discounts, HST, VoIP, ZT, and MRR integrity. If all 88 tests pass, the items marked **[AUTO]** below are verified.
|
|
|
|
## Core quote math
|
|
|
|
- **[AUTO]** Verify M365 Included and BYOL base rates
|
|
- **[AUTO]** Verify each user add-on changes MRR correctly
|
|
- **[AUTO]** Verify endpoint count affects endpoint pricing
|
|
- **[AUTO]** Verify server count affects server pricing
|
|
- **[AUTO]** Verify Zero Trust Networking seat and HaaS counts affect MRR correctly
|
|
- **[AUTO]** Verify VoIP tier changes pricing correctly
|
|
- **[AUTO]** Verify desk phone and eFax add-ons change pricing correctly
|
|
|
|
## Site admin fee
|
|
|
|
- **[AUTO]** Verify admin fee floor at low subtotal
|
|
- **[AUTO]** Verify admin fee reduces as base subtotal rises
|
|
- **[AUTO]** Verify admin fee stops reducing at the configured floor
|
|
- **[AUTO]** Verify Zero Trust supplement appears when Zero Trust is active
|
|
- **[AUTO]** Verify 1Password admin surcharge appears when 1Password is selected
|
|
- **[AUTO]** Verify admin fee waive excludes fee from MRR
|
|
- [MANUAL] Verify admin fee waive state updates all relevant displays
|
|
|
|
## Contract term and onboarding
|
|
|
|
- **[AUTO]** Verify month-to-month has no discount
|
|
- **[AUTO]** Verify 12-month applies 3% discount
|
|
- **[AUTO]** Verify 24-month applies 5% discount
|
|
- [MANUAL] Verify 12-month auto-waives onboarding
|
|
- [MANUAL] Verify 24-month auto-waives onboarding
|
|
- [MANUAL] Verify switching back to month-to-month restores editable onboarding behavior
|
|
- [MANUAL] Verify manual onboarding override persists until reset by waiver logic
|
|
|
|
## Tax and totals
|
|
|
|
- **[AUTO]** Verify HST toggle applies 13% to discounted MRR
|
|
- **[AUTO]** Verify HST disabled = $0
|
|
- **[AUTO]** Verify HST applied after contract discount (not before)
|
|
- **[AUTO]** Verify annual projection matches effective MRR * 12
|
|
- **[AUTO]** Verify per-user effective cost is 0 when users = 0
|
|
|
|
## Sidebar and mobile parity
|
|
|
|
- [MANUAL] Verify desktop sidebar values match configured quote
|
|
- [MANUAL] Verify mobile pill MRR matches headline MRR
|
|
- [MANUAL] Verify mobile panel content matches desktop sidebar
|
|
- [MANUAL] Verify mobile HST toggle syncs back to desktop state
|
|
- [MANUAL] Verify nudge banner content and state match on desktop and mobile
|
|
|
|
## Persistence and reset
|
|
|
|
- [MANUAL] Verify quote state restores after reload
|
|
- [MANUAL] Verify theme preference restores after reload
|
|
- [MANUAL] Verify quote reference persists within the intended window
|
|
- [MANUAL] Verify reset clears quote state
|
|
- [MANUAL] Verify reset preserves theme preference
|
|
|
|
## Export and print
|
|
|
|
- [MANUAL] Verify Print / Save PDF opens the formatted print view
|
|
- [MANUAL] Verify print respects user's HST toggle state
|
|
- [MANUAL] Verify print view uses the expected totals, discount, onboarding, and HST states
|
|
- [MANUAL] Verify JSON export downloads a file
|
|
- [MANUAL] Verify JSON export copies content to clipboard when supported
|
|
- [MANUAL] Verify JSON payload matches the visible quote configuration
|
|
- [MANUAL] Verify JSON export includes `"version": "1.0"` field
|
|
|
|
## Section header layout
|
|
|
|
- [MANUAL] Verify all 6 sections show numeral + title + chevron on row 1
|
|
- [MANUAL] Verify controls row (stepper + badge + price) on row 2
|
|
- [MANUAL] Verify subtitle appears on row 3 only when expanded
|
|
- [MANUAL] Verify small-screen stacking at ≤600px / container ≤520px
|
|
- [MANUAL] Verify all elements span full width when stacked
|
|
|
|
## UX interactions (Phase 3)
|
|
|
|
- [MANUAL] Verify theme switch transitions smoothly (no flash)
|
|
- [MANUAL] Verify nudge banner crossfades on rotation and manual nav
|
|
- [MANUAL] Verify section summary badge fades in on collapse
|
|
- [MANUAL] Verify addon row shows subtle pulse on toggle
|
|
- [MANUAL] Verify touch targets ≥44px at ≤600px (close btn, nudge nav, section toggles)
|
|
- [MANUAL] Verify mobile panel traps focus (Tab cycles within panel)
|
|
- [MANUAL] Verify focus returns to pill on panel close
|
|
- [MANUAL] Verify safe-area insets respected on notch phones (pill position, panel padding)
|
|
|
|
## Accessibility (Phase 5)
|
|
|
|
- [MANUAL] Verify `aria-expanded` toggles on section headers when opening/closing
|
|
- [MANUAL] Verify `aria-expanded` toggles on collapsible headers when opening/closing
|
|
- [MANUAL] Verify reset modal traps focus (Tab cycles within modal, cannot reach background)
|
|
- [MANUAL] Verify stepper buttons announce descriptive labels via screen reader
|
|
- [MANUAL] Verify Glass theme scrolls smoothly on mobile (no jank from fixed backgrounds)
|
|
- [MANUAL] Verify mobile panel gets full sync on open (client name, discount label visible)
|
|
- [MANUAL] Verify mobile sync skips on desktop when panel is closed (performance)
|