34 lines
1.3 KiB
TypeScript
34 lines
1.3 KiB
TypeScript
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');
|
||
|
|
});
|
||
|
|
});
|