Schalter fuer den Hinweis auf die Kaffeeliste
Der Hinweis unten rechts laesst sich ab einem bezahlten Tarif in den Mandant-Einstellungen abschalten (neue Spalte tenant_settings. watermark_enabled, Standard an). Im kostenlosen Tarif bleibt er fest eingeschaltet: das Kaestchen ist angehakt und disabled, daneben steht der Grund. Zusaetzlich erzwingt saas_update_tenant_settings() den Wert dort noch einmal, damit ein nachgebauter POST ihn nicht abschalten kann. Der Titel des Wasserzeichens spricht nicht mehr vom kostenlosen Tarif - zahlende Mandanten koennen es jetzt freiwillig zeigen. Der Smoke-Test prueft die Einstellungsseite jetzt auch angemeldet. Sein Muster fuer PHP-Meldungen verlangt dafuer einen Doppelpunkt, sonst haette das Feld "negative_warning" als Warnung gezaehlt. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -106,7 +106,41 @@ if ($registration['ok']) {
|
||||
settings_check_assert('self entry is enabled', $updated['self_entry_enabled'] === 1, $failures, $passes);
|
||||
settings_check_assert('pdf row height is updated', (int)$updated['pdf_row_height_px'] === 18, $failures, $passes);
|
||||
settings_check_assert('reminder interval is updated', (int)$updated['payment_reminder_interval_days'] === 14, $failures, $passes);
|
||||
// Das Formular oben schickt kein watermark_enabled - im kostenlosen
|
||||
// Tarif bleibt der Hinweis auf die Kaffeeliste trotzdem an.
|
||||
settings_check_assert('watermark stays on in the free plan', (int)$updated['watermark_enabled'] === 1, $failures, $passes);
|
||||
}
|
||||
|
||||
// Ab einem bezahlten Tarif entscheidet der Mandant selbst.
|
||||
$paidInput = [
|
||||
'tenant_name' => 'M3 Settings Flow Updated',
|
||||
'timezone' => 'Europe/Berlin',
|
||||
'locale' => 'de-DE',
|
||||
'currency_code' => 'EUR',
|
||||
'mark_price' => '0,35',
|
||||
'sheet_window_days' => '90',
|
||||
'negative_warning' => '12,50',
|
||||
'pdf_split_mode' => 'alphabetical',
|
||||
'pdf_row_height_px' => '18',
|
||||
'payment_reminder_interval_days' => '14',
|
||||
];
|
||||
billing_update($pdo, $tenantId, ['plan_code' => 'basic']);
|
||||
|
||||
$paidOff = saas_update_tenant_settings($pdo, $tenantId, $paidInput);
|
||||
settings_check_assert(
|
||||
'watermark can be switched off on a paid plan',
|
||||
$paidOff['ok'] === true && (int)$paidOff['settings']['watermark_enabled'] === 0,
|
||||
$failures,
|
||||
$passes
|
||||
);
|
||||
|
||||
$paidOn = saas_update_tenant_settings($pdo, $tenantId, $paidInput + ['watermark_enabled' => '1']);
|
||||
settings_check_assert(
|
||||
'watermark can be switched back on',
|
||||
$paidOn['ok'] === true && (int)$paidOn['settings']['watermark_enabled'] === 1,
|
||||
$failures,
|
||||
$passes
|
||||
);
|
||||
}
|
||||
|
||||
settings_check_cleanup($pdo, $slug, $emailNorm);
|
||||
|
||||
+18
-1
@@ -5,7 +5,11 @@ declare(strict_types=1);
|
||||
require __DIR__ . '/dev-db.php';
|
||||
|
||||
$baseUrl = rtrim((string)(getenv('SMOKE_BASE_URL') ?: 'http://127.0.0.1:8080'), '/');
|
||||
$issuePattern = '~(?:Deprecated|Warning|Fatal error|Parse error|Notice|Uncaught (?:Error|Exception))~i';
|
||||
// PHP-Meldungen enden immer auf einen Doppelpunkt ("Warning: ...", in HTML
|
||||
// auch "<b>Warning</b>: ..."). Der verlangte Doppelpunkt haelt harmlose
|
||||
// Treffer heraus, die dieselben Woerter enthalten - z. B. das Feld
|
||||
// "negative_warning" in den Mandant-Einstellungen.
|
||||
$issuePattern = '~(?:Deprecated|Warning|Fatal error|Parse error|Notice|Uncaught (?:Error|Exception))(?:</b>)?\s*:~i';
|
||||
|
||||
// Der Smoke-Test legt sich seinen eigenen Mandanten mit bekannten Zahlen an und
|
||||
// meldet sich per HTTP an, statt sich auf vorhandene Daten oder eine
|
||||
@@ -171,6 +175,19 @@ $checks = [
|
||||
'expect_redirect' => 'login.php',
|
||||
'contains' => [],
|
||||
],
|
||||
[
|
||||
// Der Smoke-Mandant ist im kostenlosen Tarif: der Schalter fuer den
|
||||
// Hinweis auf die Kaffeeliste muss erscheinen, aber festgestellt sein.
|
||||
'label' => 'Mandant-Einstellungen',
|
||||
'path' => 'mandant-einstellungen.php',
|
||||
'auth' => true,
|
||||
'contains' => [
|
||||
'Hinweis auf die Kaffeeliste',
|
||||
'Logo der Kaffeeliste unten rechts anzeigen',
|
||||
'Im kostenlosen Tarif bleibt dieser Hinweis eingeblendet',
|
||||
'disabled',
|
||||
],
|
||||
],
|
||||
[
|
||||
'label' => 'Namensanpassung',
|
||||
'path' => 'namenanpassen.php',
|
||||
|
||||
Reference in New Issue
Block a user