feat(quick-260907-fgv): Anmeldeseite zeigt Logo links, Text rechts daneben

Auf Wunsch des Users stehen Bildmarke und Text auf dem gelben Anmelde-Panel jetzt
nebeneinander statt untereinander — dieselbe Anordnung wie in der gelieferten Datei
tessera-logo-schriftzug.svg: links die Marke, rechts der Name und darunter der
Untertitel.

Dafuer nimmt die horizontale Variante der Marken-Komponente einen optionalen
Untertitel entgegen. Die gestapelte Variante entfaellt — sie war nach dieser
Umstellung nirgends mehr im Einsatz, alle uebrigen fuenf Stellen standen schon vorher
nebeneinander.

Der Test auf die entfallene Variante wurde nicht geloescht, sondern durch zwei Tests
auf das neue Verhalten ersetzt: einer prueft, dass ohne Angabe kein Untertitel
erscheint, der andere die tatsaechliche Reihenfolge im Dokument (Marke vor Name, Name
vor Untertitel) statt nur deren Vorhandensein. Die Erwartungstexte sind von Hand
geschrieben und nicht aus derselben Quelle gebildet, aus der die Komponente sie zieht.

222/222 Web-Tests gruen, Typpruefung sauber, im Browser gegengeprueft.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K5jtbGzC5Sf9npJ3JCjKhq
This commit is contained in:
2026-09-07 11:41:07 +02:00
parent f8d7da073b
commit 11c0ec63cb
3 changed files with 64 additions and 29 deletions
@@ -46,11 +46,36 @@ describe('TesseraLogo', () => {
expect(screen.getByText('Tessera')).toBeInTheDocument();
});
it('variant "stacked" renders the img-role mark and the visible wordmark text', () => {
render(<TesseraLogo variant="stacked" />);
it('renders no tagline unless one is passed', () => {
render(<TesseraLogo variant="horizontal" />);
expect(screen.getByRole('img', { name: 'Tessera Logo' })).toBeInTheDocument();
expect(screen.getByText('Tessera')).toBeInTheDocument();
// Hand-geschriebener Erwartungstext, bewusst NICHT aus derselben Quelle
// gebildet, aus der die Komponente ihn zoege.
expect(
screen.queryByText('Modulare Workflow-Plattform fuer Ihr Unternehmen'),
).not.toBeInTheDocument();
});
it('places mark, wordmark and tagline in that document order when a tagline is passed', () => {
render(
<TesseraLogo
variant="horizontal"
tagline="Modulare Workflow-Plattform fuer Ihr Unternehmen"
/>,
);
const mark = screen.getByRole('img', { name: 'Tessera Logo' });
const wordmark = screen.getByText('Tessera');
const tagline = screen.getByText(
'Modulare Workflow-Plattform fuer Ihr Unternehmen',
);
expect(mark).toBeInTheDocument();
// Node.compareDocumentPosition: DOCUMENT_POSITION_FOLLOWING === 4.
// Prueft die tatsaechliche Reihenfolge im Baum — Bildmarke vor Schriftzug,
// Schriftzug vor Untertitel — statt nur deren Vorhandensein.
expect(mark.compareDocumentPosition(wordmark) & 4).toBe(4);
expect(wordmark.compareDocumentPosition(tagline) & 4).toBe(4);
});
it('enables the dark-mode plate outline class by default', () => {