12214a948e
- Layout mit neuerer Rasterversion wird nie gespeichert, Bearbeiten gesperrt mit Hinweis - Kalender minW 11 (~260 px bei lg), Breiten je Breakpoint auf Spaltenzahl begrenzt - optimistische Ruecksetzung nur, wenn noch der gesetzte Wert steht - Titel-Schalter mit fester Beschriftung + aria-pressed - Hintergrund-Dialog: Fokus rein/zurueck, Tab bleibt im Dialog - Loeschen eines Bildes setzt eine darauf zeigende Hintergrund-Wahl zurueck - Uebersetzungen und CHANGELOG Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
43 lines
1.6 KiB
TypeScript
43 lines
1.6 KiB
TypeScript
import { fireEvent, render, screen } from '@testing-library/react';
|
|
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
|
|
// quick-260930: Stammt die Anordnung von einem neueren Programmstand, ist der
|
|
// Stift gesperrt und bittet ums Neuladen.
|
|
vi.mock('next-intl', () => ({
|
|
useTranslations: () => (key: string) => key,
|
|
}));
|
|
|
|
const storeState = vi.hoisted(() => ({ layoutFromNewerVersion: false }));
|
|
vi.mock('@/lib/stores/dashboard-store', () => ({
|
|
useDashboardStore: (selector: (state: typeof storeState) => unknown) => selector(storeState),
|
|
}));
|
|
|
|
import { EditModeToggle } from './edit-mode-toggle';
|
|
|
|
beforeEach(() => {
|
|
storeState.layoutFromNewerVersion = false;
|
|
});
|
|
|
|
describe('EditModeToggle (quick-260930)', () => {
|
|
it('normal: Stift ist bedienbar', () => {
|
|
const onToggle = vi.fn();
|
|
render(<EditModeToggle isEditMode={false} onToggle={onToggle} />);
|
|
const button = screen.getByRole('button', { name: 'editShort' });
|
|
expect(button).toBeEnabled();
|
|
fireEvent.click(button);
|
|
expect(onToggle).toHaveBeenCalledTimes(1);
|
|
});
|
|
|
|
it('Anordnung eines neueren Programmstands: gesperrt, Hinweis „neu laden“ als Beschreibung und Tooltip', () => {
|
|
storeState.layoutFromNewerVersion = true;
|
|
const onToggle = vi.fn();
|
|
render(<EditModeToggle isEditMode={false} onToggle={onToggle} />);
|
|
const button = screen.getByRole('button', { name: 'editShort' });
|
|
expect(button).toBeDisabled();
|
|
expect(button).toHaveAttribute('title', 'reloadRequired');
|
|
expect(button).toHaveAccessibleDescription('reloadRequired');
|
|
fireEvent.click(button);
|
|
expect(onToggle).not.toHaveBeenCalled();
|
|
});
|
|
});
|