aboutsummaryrefslogtreecommitdiffstats
path: root/src/services/graphql/helpers/convert-recent-post-to-recent-article.test.ts
blob: 8acf7537bdeebbc7861a2c63f45559fc71336884 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import { describe, expect, it } from '@jest/globals';
import type { RecentWPPost } from '../../../types';
import { convertRecentPostToRecentArticle } from './convert-recent-post-to-recent-article';
import { convertWPImgToImg } from './convert-wp-image-to-img';

describe('convert-recent-post-to-recent-article', () => {
  it('converts a RecentWPPost object to a RecentArticle object', () => {
    const post: RecentWPPost = {
      databaseId: 5,
      date: '2022-03-20',
      featuredImage: null,
      slug: '/the-post-slug',
      title: 'veritatis ex autem',
    };
    const result = convertRecentPostToRecentArticle(post);

    expect(result.cover).toBeUndefined();
    expect(result.id).toBe(post.databaseId);
    expect(result.publicationDate).toBe(post.date);
    expect(result.slug).toBe(post.slug);
    expect(result.title).toBe(post.title);
  });

  it('can convert the cover', () => {
    const post = {
      databaseId: 5,
      date: '2022-03-20',
      featuredImage: {
        node: {
          altText: 'molestiae praesentium animi',
          mediaDetails: {
            height: 480,
            width: 640,
          },
          sourceUrl: 'https://picsum.photos/640/480',
          title: 'ullam deserunt perspiciatis',
        },
      },
      slug: '/the-post-slug',
      title: 'veritatis ex autem',
    } satisfies RecentWPPost;
    const result = convertRecentPostToRecentArticle(post);

    expect(result.cover).toStrictEqual(
      convertWPImgToImg(post.featuredImage.node)
    );
  });
});