From 9551bbd1ca9c4a89ac5aad411e58852a57dca92c Mon Sep 17 00:00:00 2001 From: Marcel Date: Mon, 15 Jun 2026 11:07:43 +0200 Subject: [PATCH] test(i18n): assert the #827 grouping + bucket keys exist in every locale REQ-012 coverage: the new grouping/segment/bucket keys are present in de/en/es and the pre-existing timeline_grouping_date / timeline_tag_chip_label are reused, not re-declared. Refs #827 Co-Authored-By: Claude Opus 4.8 --- frontend/src/lib/messages.spec.ts | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/frontend/src/lib/messages.spec.ts b/frontend/src/lib/messages.spec.ts index 155ae1a3..22f1527b 100644 --- a/frontend/src/lib/messages.spec.ts +++ b/frontend/src/lib/messages.spec.ts @@ -133,4 +133,33 @@ describe('message key parity', () => { expect(es, `missing key in es: ${key}`).toHaveProperty(key); } }); + + // #827 REQ-012: the grouping toggle + bucket strings are new Paraglide keys in + // every locale; the pre-existing timeline_grouping_date / timeline_tag_chip_label / + // timeline_filter_* set is reused, never re-added. + it('zeitstrahl grouping + bucket keys are present in all locales (#827 REQ-012)', () => { + const requiredKeys = [ + 'timeline_grouping_event', + 'timeline_grouping_thema', + 'timeline_grouping_aria_label', + 'timeline_grouping_segment_date', + 'timeline_grouping_segment_event', + 'timeline_grouping_segment_thema', + 'timeline_grouping_segment_date_short', + 'timeline_grouping_segment_event_short', + 'timeline_grouping_segment_thema_short', + 'timeline_grouping_disabled_reason', + 'timeline_grouping_multitag_hint', + 'timeline_bucket_other_letters', + 'timeline_bucket_no_topic' + ]; + for (const key of requiredKeys) { + expect(de, `missing key in de: ${key}`).toHaveProperty(key); + expect(en, `missing key in en: ${key}`).toHaveProperty(key); + expect(es, `missing key in es: ${key}`).toHaveProperty(key); + } + // the pre-existing meta-line + chip keys are reused by #827, not re-declared + expect(de).toHaveProperty('timeline_grouping_date'); + expect(de).toHaveProperty('timeline_tag_chip_label'); + }); });