diff --git a/assets/certificates/260325_Rheinland Haftpflichtversicherung.pdf b/assets/certificates/260325_Rheinland Haftpflichtversicherung.pdf new file mode 100644 index 000000000..a01ff85cf Binary files /dev/null and b/assets/certificates/260325_Rheinland Haftpflichtversicherung.pdf differ diff --git a/components/blocks/CertificatesBlock.tsx b/components/blocks/CertificatesBlock.tsx index 06f4c145a..9463b29f1 100644 --- a/components/blocks/CertificatesBlock.tsx +++ b/components/blocks/CertificatesBlock.tsx @@ -25,7 +25,7 @@ interface CertificatesBlockProps { hideHeader?: boolean; } -const defaultCertificates: Certificate[] = [ +export const defaultCertificates: Certificate[] = [ { title: 'ISO 14001:2015', description: 'Umweltmanagementsystem', @@ -47,6 +47,13 @@ const defaultCertificates: Certificate[] = [ type: 'iso', date: '05.12.2025', }, + { + title: 'Betriebshaftpflichtversicherung', + description: 'RheinLand Versicherungen (10 Mio. € Deckung)', + pdfUrl: '/assets/certificates/betriebshaftpflicht.pdf', + type: 'general', + date: '25.03.2026', + }, { title: 'Freistellungsbescheinigung', description: 'Nach § 48 b EStG', @@ -68,7 +75,6 @@ const defaultCertificates: Certificate[] = [ type: 'tax', date: '13.02.2025', }, - ]; export function CertificatesBlock({ badge, title, description, certificates = defaultCertificates, hideHeader = false }: CertificatesBlockProps) { diff --git a/content/en/zertifikate.mdx b/content/en/zertifikate.mdx index 6e46a3a8f..8d04a3657 100644 --- a/content/en/zertifikate.mdx +++ b/content/en/zertifikate.mdx @@ -39,6 +39,13 @@ layout: "fullBleed" type: 'iso', date: '05.12.2025', }, + { + title: 'Commercial Liability Insurance', + description: 'RheinLand Insurance (€10M coverage)', + pdfUrl: '/assets/certificates/betriebshaftpflicht.pdf', + type: 'general', + date: '25.03.2026', + }, { title: 'Exemption Certificate', description: 'According to § 48 b EStG', diff --git a/public/assets/certificates/betriebshaftpflicht.pdf b/public/assets/certificates/betriebshaftpflicht.pdf new file mode 100644 index 000000000..a01ff85cf Binary files /dev/null and b/public/assets/certificates/betriebshaftpflicht.pdf differ diff --git a/tests/certificates.test.ts b/tests/certificates.test.ts new file mode 100644 index 000000000..aecb4d5b7 --- /dev/null +++ b/tests/certificates.test.ts @@ -0,0 +1,26 @@ +import { describe, it, expect } from 'vitest'; +import fs from 'fs'; +import { defaultCertificates } from '../components/blocks/CertificatesBlock'; + +describe('Certificates & Insurance Integration (DE + EN)', () => { + it('includes the new RheinLand Betriebshaftpflichtversicherung in defaultCertificates (DE)', () => { + const haftpflichtCert = defaultCertificates.find( + (cert) => cert.title === 'Betriebshaftpflichtversicherung' + ); + expect(haftpflichtCert).toBeDefined(); + expect(haftpflichtCert?.pdfUrl).toBe('/assets/certificates/betriebshaftpflicht.pdf'); + expect(haftpflichtCert?.date).toBe('25.03.2026'); + }); + + it('verifies that content/en/zertifikate.mdx includes Commercial Liability Insurance (EN)', () => { + const enMdx = fs.readFileSync('/Volumes/Alpha SSD/Coding/e-tib.com/content/en/zertifikate.mdx', 'utf-8'); + expect(enMdx).toContain("title: 'Commercial Liability Insurance'"); + expect(enMdx).toContain("pdfUrl: '/assets/certificates/betriebshaftpflicht.pdf'"); + expect(enMdx).toContain("date: '25.03.2026'"); + }); + + it('verifies that the PDF asset exists in public/assets/certificates/betriebshaftpflicht.pdf', () => { + const filePath = '/Volumes/Alpha SSD/Coding/e-tib.com/public/assets/certificates/betriebshaftpflicht.pdf'; + expect(fs.existsSync(filePath)).toBe(true); + }); +});