Strip orphan straight-quote pairings in JSX descriptions
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-school (push) Successful in 30s
CI / test-go-edu-search (push) Successful in 31s
CI / test-python-klausur (push) Failing after 2m35s
CI / test-python-agent-core (push) Successful in 20s
CI / test-nodejs-website (push) Successful in 21s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-school (push) Successful in 30s
CI / test-go-edu-search (push) Successful in 31s
CI / test-python-klausur (push) Failing after 2m35s
CI / test-python-agent-core (push) Successful in 20s
CI / test-nodejs-website (push) Successful in 21s
The German „X" markers in the description prop combined a curly „ (U+201E) with a straight " (U+0022). The straight quote prematurely terminated the JavaScript string inside the JSX expression. Removing both markers around the example text keeps the description readable and unambiguously valid JSX. Test selector for the UnavailableWindow description updated to match the new wording. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -32,7 +32,7 @@ export function ClassMaxHoursDayEditor() {
|
|||||||
<ConstraintShell
|
<ConstraintShell
|
||||||
testId="class-max-hours-day-editor"
|
testId="class-max-hours-day-editor"
|
||||||
title="Klasse: Max. Stunden / Tag"
|
title="Klasse: Max. Stunden / Tag"
|
||||||
description={"Beispiel: „5a hoechstens 6 Stunden pro Tag" (jugendgerecht)."}
|
description={"Beispiel: 5a hoechstens 6 Stunden pro Tag (jugendgerecht)."}
|
||||||
newLabel="+ Neue Regel"
|
newLabel="+ Neue Regel"
|
||||||
newDisabled={classes.length === 0}
|
newDisabled={classes.length === 0}
|
||||||
prereqWarning={classes.length === 0 ? 'Zuerst Klassen anlegen.' : null}
|
prereqWarning={classes.length === 0 ? 'Zuerst Klassen anlegen.' : null}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ export function RoomRequiresTypeEditor() {
|
|||||||
<ConstraintShell
|
<ConstraintShell
|
||||||
testId="room-requires-type-editor"
|
testId="room-requires-type-editor"
|
||||||
title="Fach: benoetigter Raumtyp"
|
title="Fach: benoetigter Raumtyp"
|
||||||
description={"Beispiel: „Sport braucht immer Sporthalle"."}
|
description={"Beispiel: Sport braucht immer Sporthalle."}
|
||||||
newLabel="+ Neue Regel"
|
newLabel="+ Neue Regel"
|
||||||
newDisabled={subjects.length === 0}
|
newDisabled={subjects.length === 0}
|
||||||
prereqWarning={subjects.length === 0 ? 'Zuerst Faecher anlegen.' : null}
|
prereqWarning={subjects.length === 0 ? 'Zuerst Faecher anlegen.' : null}
|
||||||
@@ -97,7 +97,7 @@ export function RoomUnavailableEditor() {
|
|||||||
<ConstraintShell
|
<ConstraintShell
|
||||||
testId="room-unavailable-editor"
|
testId="room-unavailable-editor"
|
||||||
title="Raum: nicht verfuegbar"
|
title="Raum: nicht verfuegbar"
|
||||||
description={"Beispiel: „Sporthalle Di 5. Stunde Wartung"."}
|
description={"Beispiel: Sporthalle Di 5. Stunde Wartung."}
|
||||||
newLabel="+ Neue Regel"
|
newLabel="+ Neue Regel"
|
||||||
newDisabled={rooms.length === 0}
|
newDisabled={rooms.length === 0}
|
||||||
prereqWarning={rooms.length === 0 ? 'Zuerst Raeume anlegen.' : null}
|
prereqWarning={rooms.length === 0 ? 'Zuerst Raeume anlegen.' : null}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ export function SubjectMaxConsecutiveEditor() {
|
|||||||
<ConstraintShell
|
<ConstraintShell
|
||||||
testId="subject-max-consecutive-editor"
|
testId="subject-max-consecutive-editor"
|
||||||
title="Fach: Max. Stunden am Stueck"
|
title="Fach: Max. Stunden am Stueck"
|
||||||
description={"Beispiel: „Mathe nicht mehr als 2 Stunden am Stueck" (keine Dreifach-Stunde)."}
|
description={"Beispiel: Mathe nicht mehr als 2 Stunden am Stueck (keine Dreifach-Stunde)."}
|
||||||
newLabel="+ Neue Regel"
|
newLabel="+ Neue Regel"
|
||||||
newDisabled={subjects.length === 0}
|
newDisabled={subjects.length === 0}
|
||||||
prereqWarning={subjects.length === 0 ? 'Zuerst Faecher anlegen.' : null}
|
prereqWarning={subjects.length === 0 ? 'Zuerst Faecher anlegen.' : null}
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ export function SubjectPreferredPeriodEditor() {
|
|||||||
<ConstraintShell
|
<ConstraintShell
|
||||||
testId="subject-preferred-period-editor"
|
testId="subject-preferred-period-editor"
|
||||||
title="Fach: Bevorzugter Stunden-Bereich"
|
title="Fach: Bevorzugter Stunden-Bereich"
|
||||||
description={"Beispiel: „Hauptfaecher lieber in den ersten 4 Stunden" (Soft-Regel)."}
|
description={"Beispiel: Hauptfaecher lieber in den ersten 4 Stunden (Soft-Regel)."}
|
||||||
newLabel="+ Neue Regel"
|
newLabel="+ Neue Regel"
|
||||||
newDisabled={subjects.length === 0}
|
newDisabled={subjects.length === 0}
|
||||||
prereqWarning={subjects.length === 0 ? 'Zuerst Faecher anlegen.' : null}
|
prereqWarning={subjects.length === 0 ? 'Zuerst Faecher anlegen.' : null}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export function SubjectMinDayGapEditor() {
|
|||||||
<ConstraintShell
|
<ConstraintShell
|
||||||
testId="subject-min-day-gap-editor"
|
testId="subject-min-day-gap-editor"
|
||||||
title="Fach: Min. Tagesabstand"
|
title="Fach: Min. Tagesabstand"
|
||||||
description={"Beispiel: „Mathe nicht an 2 Tagen direkt hintereinander"."}
|
description={"Beispiel: Mathe nicht an 2 Tagen direkt hintereinander."}
|
||||||
newLabel="+ Neue Regel"
|
newLabel="+ Neue Regel"
|
||||||
newDisabled={subjects.length === 0}
|
newDisabled={subjects.length === 0}
|
||||||
prereqWarning={subjects.length === 0 ? 'Zuerst Faecher anlegen.' : null}
|
prereqWarning={subjects.length === 0 ? 'Zuerst Faecher anlegen.' : null}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ export function TeacherExcludedSubjectEditor() {
|
|||||||
<ConstraintShell
|
<ConstraintShell
|
||||||
testId="teacher-excluded-subject-editor"
|
testId="teacher-excluded-subject-editor"
|
||||||
title="Lehrer: Fach ausgeschlossen"
|
title="Lehrer: Fach ausgeschlossen"
|
||||||
description={"Beispiel: „Anna darf kein Sport unterrichten" (oft Pflicht, z.B. Qualifikation/Behinderung)."}
|
description={"Beispiel: Anna darf kein Sport unterrichten (oft Pflicht, z.B. Qualifikation/Behinderung)."}
|
||||||
newLabel="+ Neue Regel"
|
newLabel="+ Neue Regel"
|
||||||
newDisabled={missing}
|
newDisabled={missing}
|
||||||
prereqWarning={missing ? 'Zuerst Lehrer und Faecher anlegen.' : null}
|
prereqWarning={missing ? 'Zuerst Lehrer und Faecher anlegen.' : null}
|
||||||
@@ -115,7 +115,7 @@ export function TeacherExcludedRoomEditor() {
|
|||||||
<ConstraintShell
|
<ConstraintShell
|
||||||
testId="teacher-excluded-room-editor"
|
testId="teacher-excluded-room-editor"
|
||||||
title="Lehrer: Raum ausgeschlossen"
|
title="Lehrer: Raum ausgeschlossen"
|
||||||
description={"Beispiel: „Anna im Rollstuhl, Raum F kein Fahrstuhl"."}
|
description={"Beispiel: Anna im Rollstuhl, Raum F kein Fahrstuhl."}
|
||||||
newLabel="+ Neue Regel"
|
newLabel="+ Neue Regel"
|
||||||
newDisabled={missing}
|
newDisabled={missing}
|
||||||
prereqWarning={missing ? 'Zuerst Lehrer und Raeume anlegen.' : null}
|
prereqWarning={missing ? 'Zuerst Lehrer und Raeume anlegen.' : null}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export function TeacherMaxHoursDayEditor() {
|
|||||||
<ConstraintShell
|
<ConstraintShell
|
||||||
testId="teacher-max-hours-day-editor"
|
testId="teacher-max-hours-day-editor"
|
||||||
title="Lehrer: Max. Stunden / Tag"
|
title="Lehrer: Max. Stunden / Tag"
|
||||||
description={"Beispiel: „Anna unterrichtet hoechstens 6 Stunden pro Tag" (oft Soft-Regel)."}
|
description={"Beispiel: Anna unterrichtet hoechstens 6 Stunden pro Tag (oft Soft-Regel)."}
|
||||||
newLabel="+ Neue Regel"
|
newLabel="+ Neue Regel"
|
||||||
newDisabled={teachers.length === 0}
|
newDisabled={teachers.length === 0}
|
||||||
prereqWarning={teachers.length === 0 ? 'Zuerst Lehrer anlegen.' : null}
|
prereqWarning={teachers.length === 0 ? 'Zuerst Lehrer anlegen.' : null}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ export function TeacherUnavailableDayEditor() {
|
|||||||
<ConstraintShell
|
<ConstraintShell
|
||||||
testId="teacher-unavailable-day-editor"
|
testId="teacher-unavailable-day-editor"
|
||||||
title="Lehrer: Tag nicht verfuegbar"
|
title="Lehrer: Tag nicht verfuegbar"
|
||||||
description={"Beispiel: „Lehrer X kann Montags nie"."}
|
description={"Beispiel: Lehrer X kann Montags nie."}
|
||||||
newLabel="+ Neue Regel"
|
newLabel="+ Neue Regel"
|
||||||
newDisabled={teachers.length === 0}
|
newDisabled={teachers.length === 0}
|
||||||
prereqWarning={teachers.length === 0 ? 'Zuerst Lehrer anlegen, dann koennen Regeln vergeben werden.' : null}
|
prereqWarning={teachers.length === 0 ? 'Zuerst Lehrer anlegen, dann koennen Regeln vergeben werden.' : null}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ export function TeacherUnavailableWindowEditor() {
|
|||||||
<ConstraintShell
|
<ConstraintShell
|
||||||
testId="teacher-unavailable-window-editor"
|
testId="teacher-unavailable-window-editor"
|
||||||
title="Lehrer: Zeitfenster nicht verfuegbar"
|
title="Lehrer: Zeitfenster nicht verfuegbar"
|
||||||
description={"Beispiel: „Lehrer Z Dienstags 13:00–17:00 nicht"."}
|
description={"Beispiel: Lehrer Z Dienstags 13:00–17:00 nicht."}
|
||||||
newLabel="+ Neue Regel"
|
newLabel="+ Neue Regel"
|
||||||
newDisabled={teachers.length === 0}
|
newDisabled={teachers.length === 0}
|
||||||
prereqWarning={teachers.length === 0 ? 'Zuerst Lehrer anlegen.' : null}
|
prereqWarning={teachers.length === 0 ? 'Zuerst Lehrer anlegen.' : null}
|
||||||
|
|||||||
@@ -312,7 +312,7 @@ test.describe('Stundenplan — Regeln Hub', () => {
|
|||||||
test('switching to UnavailableWindow editor swaps the right pane', async ({ page }) => {
|
test('switching to UnavailableWindow editor swaps the right pane', async ({ page }) => {
|
||||||
await page.getByRole('button', { name: 'Zeitfenster nicht verfuegbar' }).click()
|
await page.getByRole('button', { name: 'Zeitfenster nicht verfuegbar' }).click()
|
||||||
await expect(page.getByTestId('teacher-unavailable-window-editor')).toBeVisible()
|
await expect(page.getByTestId('teacher-unavailable-window-editor')).toBeVisible()
|
||||||
await expect(page.getByText('„Lehrer Z Dienstags 13:00–17:00 nicht".')).toBeVisible()
|
await expect(page.getByText('Lehrer Z Dienstags 13:00–17:00 nicht.')).toBeVisible()
|
||||||
})
|
})
|
||||||
|
|
||||||
test('switching to SubjectMaxConsecutive editor works', async ({ page }) => {
|
test('switching to SubjectMaxConsecutive editor works', async ({ page }) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user