From 60d711bb0a6544fd4460b458396a9c56e53d8784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Sun, 10 Mar 2019 18:57:45 +0100 Subject: [PATCH] Prevent to report any type Resouce must have a label (Post|Comment|User) --- src/resolvers/moderation.js | 4 ++-- src/resolvers/moderation.spec.js | 5 ++--- src/resolvers/reports.js | 1 + src/resolvers/reports.spec.js | 16 ++++++++++++++-- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/resolvers/moderation.js b/src/resolvers/moderation.js index 97fe22e9a..7bc1227ff 100644 --- a/src/resolvers/moderation.js +++ b/src/resolvers/moderation.js @@ -17,7 +17,7 @@ export default { const [resource] = res.records.map((record) => { return record.get('resource') }) - if(!resource) return null + if (!resource) return null return resource.id }, enable: async (object, params, { user, driver }) => { @@ -34,7 +34,7 @@ export default { const [resource] = res.records.map((record) => { return record.get('resource') }) - if(!resource) return null + if (!resource) return null return resource.id } } diff --git a/src/resolvers/moderation.spec.js b/src/resolvers/moderation.spec.js index 0b74287b4..dfbcac80f 100644 --- a/src/resolvers/moderation.spec.js +++ b/src/resolvers/moderation.spec.js @@ -14,7 +14,6 @@ const setupAuthenticateClient = (params) => { return authenticateClient } - let createResource let authenticateClient beforeEach(() => { @@ -87,7 +86,7 @@ describe('disable', () => { } createResource = () => { return Promise.all([ - factory.create('Tag', { id: 't23' }), + factory.create('Tag', { id: 't23' }) ]) } }) @@ -261,7 +260,7 @@ describe('enable', () => { createResource = () => { // we cannot create a :DISABLED relationship here return Promise.all([ - factory.create('Tag', { id: 't23' }), + factory.create('Tag', { id: 't23' }) ]) } }) diff --git a/src/resolvers/reports.js b/src/resolvers/reports.js index acac516e0..fb912a557 100644 --- a/src/resolvers/reports.js +++ b/src/resolvers/reports.js @@ -14,6 +14,7 @@ export default { const res = await session.run(` MATCH (submitter:User {id: $userId}) MATCH (resource {id: $resourceId}) + WHERE resource:User OR resource:Comment OR resource:Post CREATE (report:Report $reportData) MERGE (resource)<-[:REPORTED]-(report) MERGE (report)<-[:REPORTED]-(submitter) diff --git a/src/resolvers/reports.spec.js b/src/resolvers/reports.spec.js index ac45235ac..ae8894572 100644 --- a/src/resolvers/reports.spec.js +++ b/src/resolvers/reports.spec.js @@ -11,6 +11,8 @@ describe('report', () => { let variables beforeEach(async () => { + returnedObject = '{ description }' + variables = { id: 'whatever' } headers = {} await factory.create('User', { id: 'u1', @@ -36,10 +38,9 @@ describe('report', () => { report( id: $id, description: "Violates code of conduct" - ) ${returnedObject || '{ description }'} + ) ${returnedObject} } ` - variables = variables || { id: 'whatever' } client = new GraphQLClient(host, { headers }) return client.request(mutation, variables) } @@ -146,6 +147,17 @@ describe('report', () => { }) }) }) + + describe('reported resource is a tag', () => { + beforeEach(async () => { + await factory.create('Tag', { id: 't23' }) + variables = { id: 't23' } + }) + + it('returns null', async () => { + await expect(action()).resolves.toEqual({ report: null }) + }) + }) }) }) })