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', () => { 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);