From 6040cb5197b679357045bf8f89eaed073d46bfdb Mon Sep 17 00:00:00 2001 From: Ole-Martin Bratteng <1681525+omBratteng@users.noreply.github.com> Date: Tue, 6 Aug 2024 16:51:51 +0200 Subject: [PATCH 1/2] fix: set vordr flags on comment reply --- src/schema/comments.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/schema/comments.ts b/src/schema/comments.ts index 039c791ea..20c5f66ca 100644 --- a/src/schema/comments.ts +++ b/src/schema/comments.ts @@ -837,6 +837,10 @@ export const resolvers: IResolvers = { content, }); + createdComment.flags = { + vordr: await checkWithVordr(createdComment, ctx), + }; + return saveNewComment(entityManager, createdComment, squadId); }); return getCommentById(comment.id, ctx, info); From 3fdb8c46faf232a90a5750d394c32ef0425449b4 Mon Sep 17 00:00:00 2001 From: Ole-Martin Bratteng <1681525+omBratteng@users.noreply.github.com> Date: Thu, 8 Aug 2024 12:37:22 +0200 Subject: [PATCH 2/2] test: add vordr tests for comments --- __tests__/comments.ts | 70 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/__tests__/comments.ts b/__tests__/comments.ts index 499204794..fc2b24a64 100644 --- a/__tests__/comments.ts +++ b/__tests__/comments.ts @@ -39,6 +39,7 @@ import { getRedisObject, getRedisObjectExpiry, } from '../src/redis'; +import { badUsersFixture } from './fixture'; let con: DataSource; let state: GraphQLTestingState; @@ -72,6 +73,7 @@ beforeEach(async () => { await saveFixtures(con, ArticlePost, sharedPostsFixture); await saveFixtures(con, PostTag, postTagsFixture); await con.getRepository(User).save(usersFixture); + await con.getRepository(User).save(badUsersFixture); await con.getRepository(Comment).save([ { id: 'c1', @@ -958,6 +960,40 @@ describe('mutation commentOnPost', () => { expect(await getRedisObjectExpiry(redisKey)).toBeGreaterThanOrEqual(3590); }); }); + + describe('vordr', () => { + it('should set correct vordr flags on good user', async () => { + loggedUser = '1'; + + const res = await client.mutate(MUTATION, { + variables: { postId: 'p1', content: 'comment' }, + }); + + expect(res.errors).toBeFalsy(); + + const comment = await con.getRepository(Comment).findOneByOrFail({ + id: res.data.commentOnPost.id, + }); + + expect(comment.flags).toEqual({ vordr: false }); + }); + + it('should set correct vordr flags on bad user', async () => { + loggedUser = 'vordr'; + + const res = await client.mutate(MUTATION, { + variables: { postId: 'p1', content: 'comment' }, + }); + + expect(res.errors).toBeFalsy(); + + const comment = await con.getRepository(Comment).findOneByOrFail({ + id: res.data.commentOnPost.id, + }); + + expect(comment.flags).toEqual({ vordr: true }); + }); + }); }); describe('mutation commentOnComment', () => { @@ -1154,6 +1190,40 @@ describe('mutation commentOnComment', () => { expect(await getRedisObjectExpiry(redisKey)).toBeGreaterThanOrEqual(3590); }); }); + + describe('vordr', () => { + it('should set correct vordr flags on good user', async () => { + loggedUser = '1'; + + const res = await client.mutate(MUTATION, { + variables: { commentId: 'c1', content: 'comment' }, + }); + + expect(res.errors).toBeFalsy(); + + const comment = await con.getRepository(Comment).findOneByOrFail({ + id: res.data.commentOnComment.id, + }); + + expect(comment.flags).toEqual({ vordr: false }); + }); + + it('should set correct vordr flags on bad user', async () => { + loggedUser = 'vordr'; + + const res = await client.mutate(MUTATION, { + variables: { commentId: 'c1', content: 'comment' }, + }); + + expect(res.errors).toBeFalsy(); + + const comment = await con.getRepository(Comment).findOneByOrFail({ + id: res.data.commentOnComment.id, + }); + + expect(comment.flags).toEqual({ vordr: true }); + }); + }); }); describe('mutation deleteComment', () => {