feat(journey-editor): JourneyEditor frontend — issue #753 #792

Merged
marcel merged 92 commits from feat/issue-753-journey-editor into feat/issue-750-lesereisen-data-model 2026-06-11 12:07:23 +02:00
Showing only changes of commit e1ca2c6831 - Show all commits

View File

@@ -9,23 +9,23 @@ afterEach(() => {
});
describe('JourneyAddBar — interlude flow', () => {
it('interlude confirm button is aria-disabled until text is non-empty', async () => {
it('interlude confirm button is natively disabled when text is empty (WCAG 4.1.2)', async () => {
render(JourneyAddBar, { onAddDocument: vi.fn(), onAddInterlude: vi.fn() });
await userEvent.click(page.getByText('Zwischentext hinzufügen'));
const confirmBtn = page.getByRole('button', { name: 'Hinzufügen', exact: true });
await expect.element(confirmBtn).toHaveAttribute('aria-disabled', 'true');
await expect.element(confirmBtn).toBeDisabled();
});
it('confirm becomes active after typing text', async () => {
it('confirm becomes enabled after typing text', async () => {
render(JourneyAddBar, { onAddDocument: vi.fn(), onAddInterlude: vi.fn() });
await userEvent.click(page.getByText('Zwischentext hinzufügen'));
await userEvent.fill(page.getByRole('textbox'), 'Eine schöne Reise');
const confirmBtn = page.getByRole('button', { name: 'Hinzufügen', exact: true });
await expect.element(confirmBtn).toHaveAttribute('aria-disabled', 'false');
await expect.element(confirmBtn).toBeEnabled();
});
it('calls onAddInterlude with text on confirm', async () => {