CluPilotCloud/tests/Feature/ProgressStepperTest.php

35 lines
1.2 KiB
PHP

<?php
use Illuminate\Support\Facades\Blade;
/**
* Unter jedem Schritt steht ein Wort, kein Schlüssel.
*
* `dashboard.step_state.done` stand wörtlich unter jedem Schritt — im
* Adminbereich UND im Kundenportal, wo derselbe Stepper jemanden durch die
* Einrichtung seiner Cloud begleitet.
*
* Zwei Gründe, warum das durchkam, und beide erklären, warum dieser Test so
* aussieht, wie er aussieht:
*
* - Die Paritätsprüfung aus R16 vergleicht Deutsch mit Englisch. Der Schlüssel
* fehlte in BEIDEN, also waren sie sich einig.
* - Der Aufruf ist zusammengesetzt (`__('dashboard.step_state.'.$state)`).
* Keine Suche nach festen Zeichenketten findet ihn.
*
* Bleibt das, was das Bauteil wirklich ausgibt.
*/
it('names every step state instead of printing its key', function (string $state) {
foreach (['de', 'en'] as $locale) {
app()->setLocale($locale);
$html = Blade::render(
'<x-ui.progress-stepper :steps="$steps" />',
['steps' => [['label' => 'Ein Schritt', 'state' => $state]]],
);
expect($html)->not->toContain('dashboard.step_state')
->and($html)->toContain(__('dashboard.step_state.'.$state));
}
})->with(['pending', 'running', 'done', 'failed']);