# Minijob-Rechner 2026 - Next Steps & Testing Guide

**Last Updated:** 2026-01-21

## Overview

This document provides comprehensive manual testing instructions and deployment checklist for the Minijob-Rechner 2026 update.

## Pre-Deployment Checklist

### Code Changes

- [x] Employer contribution rates updated in `constants.js` ✅
- [x] All console.log statements removed from `calculator.js` ✅
- [x] calculateEmployer() function updated for Privathaushalt ✅
- [x] Validation script updated to 2026 values ✅
- [x] Test suite created and all tests passing ✅

### Content Updates

- [x] FAQ content updated with corrected rates ✅
- [x] Educational content updated with individual Umlage rates ✅
- [x] FAQ schema updated to match content ✅
- [x] Example calculations updated ✅

### Documentation

- [x] Main documentation updated ✅
- [x] Research report updated ✅
- [x] Tool-by-tool analysis updated ✅
- [x] Update summary created ✅

## Manual Testing Checklist

### 1. Basic Mode Testing

**Test Case 1.1: Maximum Brutto (RV befreit)**
- [ ] Enter 603€ brutto
- [ ] Ensure Rentenversicherung is OFF
- [ ] Verify netto = 603.00€
- [ ] Verify rvAbzug = 0.00€

**Test Case 1.2: Maximum Brutto (mit RV)**
- [ ] Enter 603€ brutto
- [ ] Enable Rentenversicherung
- [ ] Verify netto = 581.29€
- [ ] Verify rvAbzug = 21.71€

**Test Case 1.3: Typical Amount**
- [ ] Enter 450€ brutto
- [ ] Test both RV scenarios
- [ ] Verify calculations match expected values

**Test Case 1.4: Edge Cases**
- [ ] Enter 0€ (should show validation error)
- [ ] Enter 604€ (should show validation error - exceeds limit)
- [ ] Enter exactly 603€ (should work)
- [ ] Enter negative value (should show validation error)

### 2. Advanced Mode Testing

**Test Case 2.1: Monthly Input**
- [ ] Enter 603€ brutto (monthly mode)
- [ ] Verify netto calculation matches Basic mode
- [ ] Test with RV enabled/disabled

**Test Case 2.2: Hourly Input**
- [ ] Switch to hourly mode
- [ ] Enter 13.90€/hour, 10 hours/week
- [ ] Verify brutto = 601.87€ (capped at 603€)
- [ ] Verify netto calculation
- [ ] Verify nettoProStunde calculation

**Test Case 2.3: Hourly Capping**
- [ ] Enter 15.00€/hour, 10 hours/week
- [ ] Verify brutto is capped at 603€
- [ ] Verify calculations use capped value

**Test Case 2.4: Low Hours**
- [ ] Enter 13.90€/hour, 5 hours/week
- [ ] Verify brutto = 300.94€ (not capped)
- [ ] Verify calculations work correctly

### 3. Employer Mode Testing

**Test Case 3.1: Gewerblich (Maximum)**
- [ ] Enter 603€ brutto
- [ ] Select "Gewerblich"
- [ ] Verify gesamtKosten = 798.79€
- [ ] Verify abgabenGesamt = 195.79€
- [ ] Verify individual components:
  - [ ] Rentenversicherung = 90.45€
  - [ ] Krankenversicherung = 78.39€
  - [ ] Pauschalsteuer = 12.06€
  - [ ] Umlage U1 = 4.82€
  - [ ] Umlage U2 = 1.33€
  - [ ] Umlage U3 = 0.90€
  - [ ] Unfallversicherung = 7.84€

**Test Case 3.2: Privathaushalt (Maximum)**
- [ ] Enter 603€ brutto
- [ ] Select "Privathaushalt"
- [ ] Verify gesamtKosten = 691.16€
- [ ] Verify abgabenGesamt = 88.16€
- [ ] Verify individual components:
  - [ ] Rentenversicherung = 30.15€
  - [ ] Krankenversicherung = 30.15€
  - [ ] Pauschalsteuer = 12.06€
  - [ ] Umlage U1 = 4.82€
  - [ ] Umlage U2 = 1.33€
  - [ ] Unfallversicherung = 9.65€
  - [ ] Umlage U3 = 0.00€ (not applicable)

**Test Case 3.3: Typical Amounts**
- [ ] Test Gewerblich with 450€
- [ ] Test Privathaushalt with 450€
- [ ] Verify calculations match expected values

**Test Case 3.4: Percentage Verification**
- [ ] Use 100€ brutto for easy percentage calculation
- [ ] Verify Gewerblich total = 32.47€ (32.47%)
- [ ] Verify Privathaushalt total = 14.62€ (14.62%)

### 4. Vacation Mode Testing

**Test Case 4.1: Full Year (5 days/week)**
- [ ] Enter 603€ brutto
- [ ] Set workdays = 5
- [ ] Set start date = 2026-01-01
- [ ] Verify urlaubstage = 20 days
- [ ] Verify urlaubsgeldGesamt calculation
- [ ] Verify tageslohn calculation

**Test Case 4.2: Prorated (June Start)**
- [ ] Enter 603€ brutto
- [ ] Set workdays = 5
- [ ] Set start date = 2026-06-01
- [ ] Verify urlaubstage = 12 days (prorated)
- [ ] Verify monthsWorked = 7
- [ ] Verify prorated flag = true

**Test Case 4.3: Different Workdays**
- [ ] Test with 3 days/week (should = 12 days)
- [ ] Test with 2 days/week (should = 8 days)
- [ ] Test with 6 days/week (should = 24 days)

**Test Case 4.4: Daily Wage Calculation**
- [ ] Enter 603€ brutto, 5 days/week
- [ ] Verify tageslohn = 27.85€
- [ ] Verify urlaubsgeldGesamt = tageslohn × urlaubstage

### 5. Export Functionality

**Test Case 5.1: PDF Export**
- [ ] Perform calculation in any mode
- [ ] Click "PDF herunterladen"
- [ ] Enter name and email
- [ ] Verify PDF downloads correctly
- [ ] Verify PDF contains correct calculation results
- [ ] Verify PDF contains Ordio branding

**Test Case 5.2: CSV Export**
- [ ] Perform calculation in any mode
- [ ] Click "CSV herunterladen"
- [ ] Enter name and email
- [ ] Verify CSV downloads correctly
- [ ] Verify CSV contains correct calculation results
- [ ] Verify CSV format is correct (semicolon-separated, UTF-8 BOM)

**Test Case 5.3: Email Collection**
- [ ] Verify email modal appears when export clicked without email
- [ ] Verify email validation works
- [ ] Verify email is stored in localStorage
- [ ] Verify email persists across page reloads

### 6. Responsive Design

**Test Case 6.1: Mobile View**
- [ ] Test on mobile device (375px width)
- [ ] Verify calculator inputs are accessible
- [ ] Verify results display correctly
- [ ] Verify modals work on mobile

**Test Case 6.2: Tablet View**
- [ ] Test on tablet (768px width)
- [ ] Verify layout adapts correctly
- [ ] Verify all functionality works

**Test Case 6.3: Desktop View**
- [ ] Test on desktop (1920px width)
- [ ] Verify layout is optimal
- [ ] Verify all functionality works

### 7. Schema Validation

**Test Case 7.1: FAQPage Schema**
- [ ] Use Google Rich Results Test: https://search.google.com/test/rich-results
- [ ] Enter URL: https://www.ordio.com/tools/minijob-rechner
- [ ] Verify all 15 FAQs appear correctly
- [ ] Verify FAQ answers match content exactly
- [ ] Fix any schema errors if found

**Test Case 7.2: WebApplication Schema**
- [ ] Verify WebApplication schema is present
- [ ] Verify schema contains correct name, description
- [ ] Verify schema contains correct applicationCategory
- [ ] Verify schema contains correct offers (price: 0)

### 8. Content Verification

**Test Case 8.1: Year References**
- [ ] Verify no "2025" references remain
- [ ] Verify all "2026" references are correct
- [ ] Verify all "€603" references (not €556 or €520)
- [ ] Verify all "13,90 €/h" references (not 12,82)

**Test Case 8.2: Employer Contribution Percentages**
- [ ] Verify Gewerblich total = 32.47% (not 32.63%)
- [ ] Verify Privathaushalt total = 14.62% (not 13.14% or 14.82%)
- [ ] Verify individual Umlage rates are correct:
  - [ ] U1 = 0.80% (not 1.0% or 0.9%)
  - [ ] U2 = 0.22% (not 0.24%)
  - [ ] U3 = 0.15% (not 0.09%) - Gewerblich only

**Test Case 8.3: Example Calculations**
- [ ] Verify Gewerblich example: 196€ (not 197€)
- [ ] Verify Privathaushalt example: 89€ (not 79€)

### 9. Performance Testing

**Test Case 9.1: Calculation Speed**
- [ ] Verify calculations are instant
- [ ] Test with rapid input changes
- [ ] Verify no lag or delays

**Test Case 9.2: Browser Compatibility**
- [ ] Test in Chrome (latest)
- [ ] Test in Firefox (latest)
- [ ] Test in Safari (latest)
- [ ] Test in Edge (latest)

### 10. Error Handling

**Test Case 10.1: Invalid Inputs**
- [ ] Test with non-numeric inputs
- [ ] Test with negative values
- [ ] Test with values exceeding limits
- [ ] Verify appropriate error messages

**Test Case 10.2: Missing Dependencies**
- [ ] Verify calculator works if Alpine.js loads slowly
- [ ] Verify error handling if constants.js fails to load
- [ ] Verify error handling if helpers.js fails to load

## Deployment Checklist

### Pre-Deployment

- [ ] Run minification: `npm run minify`
- [ ] Verify minified files created/updated
- [ ] Check file sizes to confirm minification worked
- [ ] Run automated test suite: `node v2/scripts/dev-helpers/test-minijob-calculations.js`
- [ ] Verify all tests pass
- [ ] Review all code changes one final time
- [ ] Verify no console.log statements remain: `grep -r "console\.\(log\|error\|warn\)" v2/js/minijob/ --include="*.js" --exclude="*.min.js"`

### Deployment

- [ ] Deploy code changes to staging
- [ ] Run manual testing checklist on staging
- [ ] Verify schema validation on staging
- [ ] Deploy to production
- [ ] Run smoke tests on production
- [ ] Monitor error logs for 24 hours

### Post-Deployment

- [ ] Verify page loads correctly: https://www.ordio.com/tools/minijob-rechner
- [ ] Test calculations on production
- [ ] Verify schema validation on production
- [ ] Monitor analytics for errors
- [ ] Check user feedback

## Verification Commands

### Check for Console Statements
```bash
grep -r "console\.\(log\|error\|warn\)" v2/js/minijob/ --include="*.js" --exclude="*.min.js"
```
Expected: No matches

### Run Test Suite
```bash
node v2/scripts/dev-helpers/test-minijob-calculations.js
```
Expected: All 25 tests passing

### Check Constants
```bash
grep -A 20 "GEWERBLICH:" v2/js/minijob/constants.js
grep -A 15 "PRIVATHAUSHALT:" v2/js/minijob/constants.js
```
Expected: Updated rates visible

### Verify Content
```bash
grep -i "2025\|556\|520\|12,82" v2/pages/tools_minijob_rechner.php
```
Expected: Only historical references (e.g., "2025 limit")

## Known Issues

None at this time.

## Notes

- The Privathaushalt total percentage is 14.62% (not 14.82%) due to rounding in the calculation
- All employer contribution rates have been verified against official 2026 sources
- The test suite provides comprehensive coverage of all calculation modes and edge cases
- Manual testing should focus on UI/UX and edge cases not covered by automated tests
