aboutsummaryrefslogtreecommitdiffstats
path: root/src/services/graphql/helpers/convert-wp-comment-to-comment.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/services/graphql/helpers/convert-wp-comment-to-comment.test.ts')
-rw-r--r--src/services/graphql/helpers/convert-wp-comment-to-comment.test.ts93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/services/graphql/helpers/convert-wp-comment-to-comment.test.ts b/src/services/graphql/helpers/convert-wp-comment-to-comment.test.ts
new file mode 100644
index 0000000..4b385b4
--- /dev/null
+++ b/src/services/graphql/helpers/convert-wp-comment-to-comment.test.ts
@@ -0,0 +1,93 @@
+import { describe, expect, it } from '@jest/globals';
+import type { WPComment } from '../../../types';
+import { convertWPCommentToComment } from './convert-wp-comment-to-comment';
+
+describe('convert-wp-comment-to-comment', () => {
+ it('converts a WPComment object to a Comment object', () => {
+ const comment: WPComment = {
+ approved: true,
+ author: {
+ node: {
+ avatar: null,
+ name: 'Maribel.Roberts',
+ url: null,
+ },
+ },
+ content: 'Aliquam qui et facere consequatur quia.',
+ databaseId: 4,
+ date: '2023-10-15',
+ parentDatabaseId: 1,
+ status: 'HOLD',
+ };
+
+ const transformedComment = convertWPCommentToComment(comment);
+
+ expect(transformedComment.content).toBe(comment.content);
+ expect(transformedComment.id).toBe(comment.databaseId);
+ expect(transformedComment.isApproved).toBe(comment.approved);
+ expect(transformedComment.meta.author.avatar).toBeUndefined();
+ expect(transformedComment.meta.author.name).toBe(comment.author.node.name);
+ expect(transformedComment.meta.author.website).toBeUndefined();
+ expect(transformedComment.parentId).toBe(comment.parentDatabaseId);
+ expect(transformedComment.replies).toStrictEqual([]);
+ });
+
+ it('can convert the avatar', () => {
+ const comment: WPComment = {
+ approved: true,
+ author: {
+ node: {
+ avatar: {
+ height: 80,
+ url: 'https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/426.jpg',
+ width: 80,
+ },
+ name: 'Maribel.Roberts',
+ url: null,
+ },
+ },
+ content: 'Aliquam qui et facere consequatur quia.',
+ databaseId: 4,
+ date: '2023-10-15',
+ parentDatabaseId: 1,
+ status: 'HOLD',
+ };
+
+ const transformedComment = convertWPCommentToComment(comment);
+
+ expect(transformedComment.meta.author.avatar?.alt).toBe(
+ `${comment.author.node.name} avatar`
+ );
+ expect(transformedComment.meta.author.avatar?.height).toBe(
+ comment.author.node.avatar?.height
+ );
+ expect(transformedComment.meta.author.avatar?.src).toBe(
+ comment.author.node.avatar?.url
+ );
+ expect(transformedComment.meta.author.avatar?.width).toBe(
+ comment.author.node.avatar?.width
+ );
+ });
+
+ it('can remove the parentId when not meaningful', () => {
+ const comment: WPComment = {
+ approved: true,
+ author: {
+ node: {
+ avatar: null,
+ name: 'Maribel.Roberts',
+ url: null,
+ },
+ },
+ content: 'Aliquam qui et facere consequatur quia.',
+ databaseId: 4,
+ date: '2023-10-15',
+ parentDatabaseId: 0,
+ status: 'HOLD',
+ };
+
+ const transformedComment = convertWPCommentToComment(comment);
+
+ expect(transformedComment.parentId).toBeUndefined();
+ });
+});