Files
InsanityLab-web/tests/consulenza.test.ts
T
2026-09-29 20:32:07 +00:00

29 lines
1.4 KiB
TypeScript

import { describe, it, expect } from 'vitest';
import { linkConsulenza, CONSULENZA_URL_DEFAULT, PAGINE_CON_CONSULENZA } from '../src/data/consulenza';
import { contentSeed } from '../src/data/content-seed';
import { services } from '../src/data/services';
describe('consulenza conoscitiva', () => {
it('accetta un link https, anche con spazi attorno', () => {
expect(linkConsulenza('https://example.com/x')).toBe('https://example.com/x');
expect(linkConsulenza(' https://example.com/x ')).toBe('https://example.com/x');
});
it.each(['javascript:alert(1)', 'http://x.it', '', ' '])('scarta %j e usa il default', (v) => {
expect(linkConsulenza(v)).toBe(CONSULENZA_URL_DEFAULT);
});
it('il seed ha i tre tag', () => {
const v = (tag: string) => contentSeed.find((e) => e.tag === tag)?.value;
expect(v('service.consulenza-cta')).toBe('Prenota una consulenza conoscitiva gratuita');
expect(v('service.consulenza-note')).toBe('30-45 minuti con Nicola, in sede: via Leandro Alberti 76, primo piano');
expect(v('global.consulenza.url')).toBe(CONSULENZA_URL_DEFAULT);
});
it('le pagine con consulenza esistono', () => {
expect(PAGINE_CON_CONSULENZA).toContain('reformer-class');
for (const slug of PAGINE_CON_CONSULENZA) {
const s = services.find((x) => x.slug === slug);
expect(s, slug).toBeDefined();
expect(s!.page).not.toBe(false);
}
});
});