mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-13 15:13:07 +00:00
70 lines
2.1 KiB
TypeScript
70 lines
2.1 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import { buildShareLinkAnnouncementView } from '@/lib/shareLinkAnnouncement'
|
|
|
|
describe('buildShareLinkAnnouncementView', () => {
|
|
it('formats the Bahia event label and trims the location', () => {
|
|
const view = buildShareLinkAnnouncementView({
|
|
link: {
|
|
slug: 'plenaria-saude',
|
|
title: 'Plenária da saúde',
|
|
description: 'Encontro online da campanha.',
|
|
startsAt: '2026-10-03T22:00:00.000Z',
|
|
endsAt: '2026-10-04T00:00:00.000Z',
|
|
location: ' Online ',
|
|
},
|
|
imageUrl: '/api/media/file/plenaria.jpg',
|
|
canonicalUrl: 'https://jorgesolla1313.com.br/plenaria-saude',
|
|
})
|
|
|
|
expect(view).toEqual({
|
|
slug: 'plenaria-saude',
|
|
title: 'Plenária da saúde',
|
|
description: 'Encontro online da campanha.',
|
|
imageUrl: '/api/media/file/plenaria.jpg',
|
|
imageAlt: 'Plenária da saúde',
|
|
eventLabel: 'Sábado, 3 de outubro · 19h',
|
|
location: 'Online',
|
|
startsAt: '2026-10-03T22:00:00.000Z',
|
|
endsAt: '2026-10-04T00:00:00.000Z',
|
|
canonicalUrl: 'https://jorgesolla1313.com.br/plenaria-saude',
|
|
})
|
|
})
|
|
|
|
it('prefers the media alt and nulls the absent event data', () => {
|
|
const view = buildShareLinkAnnouncementView({
|
|
link: {
|
|
slug: 'sem-data',
|
|
title: 'Atividade',
|
|
description: 'Descrição',
|
|
image: { alt: 'Foto do encontro' },
|
|
location: ' ',
|
|
},
|
|
imageUrl: null,
|
|
canonicalUrl: null,
|
|
})
|
|
|
|
expect(view.imageAlt).toBe('Foto do encontro')
|
|
expect(view.imageUrl).toBeNull()
|
|
expect(view.eventLabel).toBeNull()
|
|
expect(view.location).toBeNull()
|
|
expect(view.startsAt).toBeNull()
|
|
expect(view.endsAt).toBeNull()
|
|
expect(view.canonicalUrl).toBeNull()
|
|
})
|
|
|
|
it('hides the event label when the date cannot be parsed', () => {
|
|
const view = buildShareLinkAnnouncementView({
|
|
link: {
|
|
slug: 'data-invalida',
|
|
title: 'Atividade',
|
|
description: 'Descrição',
|
|
startsAt: 'lixo',
|
|
},
|
|
imageUrl: null,
|
|
canonicalUrl: null,
|
|
})
|
|
|
|
expect(view.eventLabel).toBeNull()
|
|
})
|
|
})
|