<?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']);
