import { describe, expect, it } from '@jest/globals'; import type { WPThematicPreview, WPTopicPreview } from '../../../types'; import { convertTaxonomyToPageLink } from './convert-taxonomy-to-page-link'; describe('convert-taxonomy-to-page-link', () => { it('can convert a WPThematicPreview object to a Thematic object', () => { const thematic: WPThematicPreview = { databaseId: 42, slug: '/the-thematic-slug', title: 'et ut alias', }; const result = convertTaxonomyToPageLink(thematic); expect(result.id).toBe(thematic.databaseId); expect(result.logo).toBeUndefined(); expect(result.name).toBe(thematic.title); expect(result.url).toBe(thematic.slug); }); it('can convert a WPTopicPreview object to a Topic object', () => { const topic: WPTopicPreview = { databaseId: 42, featuredImage: { node: { altText: 'dolorem quia possimus', mediaDetails: { height: 480, width: 640, }, sourceUrl: 'https://picsum.photos/640/480', title: 'eos', }, }, slug: '/the-topic-slug', title: 'et ut alias', }; const result = convertTaxonomyToPageLink(topic); expect(result.id).toBe(topic.databaseId); expect(result.logo?.alt).toBe(topic.featuredImage?.node.altText); expect(result.logo?.height).toBe( topic.featuredImage?.node.mediaDetails.height ); expect(result.logo?.src).toBe(topic.featuredImage?.node.sourceUrl); expect(result.logo?.title).toBe(topic.featuredImage?.node.title); expect(result.logo?.width).toBe( topic.featuredImage?.node.mediaDetails.width ); expect(result.name).toBe(topic.title); expect(result.url).toBe(topic.slug); }); });