47a26d0ca68c7ef9d10d5c77f6386d5ea5135363
HandoverServiceTest: 30 new cases covering: - assign(): happy path, draft→in_progress transition, permission check, zero assignedTo, not found, email sent, due date passed to repo - submitForReview(): assignee and manager paths, non-assignee denied, wrong status (under_review/completed), revision created, email sent - resendNotification(): happy path, permission denied, no assignee - statusLabel/Variant for under_review HandoverNotificationServiceTest: 9 new cases covering: - notifyAssigned: sends correct template+vars, skips on empty/null email, fallback dash for empty debitor and due_date - notifyReviewRequested: sends to manager, skips on no email, fallback dash for empty assignee name 48 tests total, all passing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The Shire
Anwendung auf Basis von MintyPHP (PHP 8.5, MariaDB 11, Nginx, Memcached, Docker). Liefert Tenants, User, Rollen, Adressbuch, Mail, Scheduler, Microsoft SSO und ein Helpdesk-Modul mit Business-Central-Anbindung.
Setup (frischer Clone)
cp .env.example .env # 1. ENV (enthaelt APP_CRYPTO_KEY fuer Test-Secrets)
docker compose up --build -d # 2. Container starten + init.sql einspielen
docker compose exec php php bin/console module:sync # 3. Modul-Migrationen + Asset-Publish
App: http://localhost:8080 · phpMyAdmin: http://localhost:8081
APP_CRYPTO_KEYaus.env.examplenicht ändern — sonst lassen sich die geseeded Microsoft-SSO- und BC-Test-Secrets nicht entschlüsseln.
Login
Alle Demo-User haben das Passwort Demo123:
| Rolle | |
|---|---|
demo@user.com |
Admin |
max@user.com |
Manager |
bernd@user.com |
User |
petra@user.com |
Auditor |
hilde@user.com |
Support |
Plus der Live-User fs@breadcrumb-solutions.de (alle Rollen, Passwort nur per Reset).
Microsoft SSO ist für den Tenant breadcrumb mediasolutions GmbH vorkonfiguriert (Domain breadcrumb-solutions.de).
Quality Gates
docker compose exec php vendor/bin/phpunit # Tests
docker compose exec php vendor/bin/phpstan analyse -c phpstan.neon # Static Analysis
docker compose exec php composer cs:fix # Code Style autofix
Wo was steht
- Architektur, Konventionen, Guards —
CLAUDE.md - Tutorials, How-Tos, Referenzen —
docs/index.md - Production-Deployment —
docs/howto-docker-produktiv.md - Schema + Seed —
db/init/init.sql, idempotente Updates indb/updates/ - Module —
modules/<id>/(eigene Migrationen untermodules/<id>/migrations/)
Description
Languages
PHP
70.8%
HTML
11.8%
JavaScript
10.4%
CSS
6.6%
Shell
0.3%
Other
0.1%