import { metadata } from '@/app/(frontend)/about/page'; import { personJsonLd, organizationJsonLd } from '@/lib/jsonld'; describe('/about metadata', () => { it('canonicalises to the bare path', () => { expect(metadata.alternates?.canonical) .toBe('https://www.schoolcompare.co.uk/about'); }); }); describe('author structured data', () => { it('describes a Person with a first name and a photo', () => { const person = personJsonLd(); expect(person['@type']).toBe('Person'); expect(person.name).toBe('Tudor'); expect(person.image).toBe('https://www.schoolcompare.co.uk/brand/tudor.jpg'); expect(person.url).toBe('https://www.schoolcompare.co.uk/about'); }); it('never publishes a surname or an employer', () => { // Author identity constraint: first name only. A surname here would be // the one place it leaks, since JSON-LD is machine-read and archived. const serialised = JSON.stringify(personJsonLd()); expect(serialised).not.toMatch(/familyName|Sitaru/i); expect(serialised).not.toMatch(/worksFor|affiliation/i); }); it('describes the site as an Organization the Person authors for', () => { const org = organizationJsonLd(); expect(org['@type']).toBe('Organization'); expect(org.name).toBe('schoolcompare'); expect(org.url).toBe('https://www.schoolcompare.co.uk'); }); });