diff --git a/backend/src/schema/resolvers/reports.spec.js b/backend/src/schema/resolvers/reports.spec.js index f247e2ec5..e035938c5 100644 --- a/backend/src/schema/resolvers/reports.spec.js +++ b/backend/src/schema/resolvers/reports.spec.js @@ -108,7 +108,10 @@ describe('report', () => { describe('reported resource is a user', () => { it('returns type "User"', async () => { await expect( - mutate({ mutation: reportMutation, variables: { ...variables, resourceId: 'abusive-user-id' } }), + mutate({ + mutation: reportMutation, + variables: { ...variables, resourceId: 'abusive-user-id' }, + }), ).resolves.toMatchObject({ data: { report: { @@ -118,6 +121,139 @@ describe('report', () => { errors: undefined, }) }) + + it('returns resource in user attribute', async () => { + await expect( + mutate({ + mutation: reportMutation, + variables: { ...variables, resourceId: 'abusive-user-id' }, + }), + ).resolves.toMatchObject({ + data: { + report: { + user: { + name: 'abusive-user', + }, + }, + }, + errors: undefined, + }) + }) + + it('returns the submitter', async () => { + await expect( + mutate({ + mutation: reportMutation, + variables: { ...variables, resourceId: 'abusive-user-id' }, + }), + ).resolves.toMatchObject({ + data: { + report: { + submitter: { + email: 'test@example.org', + }, + }, + }, + errors: undefined, + }) + }) + + it('returns a date', async () => { + await expect( + mutate({ + mutation: reportMutation, + variables: { ...variables, resourceId: 'abusive-user-id' }, + }), + ).resolves.toMatchObject({ + data: { + report: { + createdAt: expect.any(String), + }, + }, + errors: undefined, + }) + }) + + it('returns the reason category', async () => { + await expect( + mutate({ + mutation: reportMutation, + variables: { + ...variables, + resourceId: 'abusive-user-id', + reasonCategory: 'criminal_behavior_violation_german_law', + }, + }), + ).resolves.toMatchObject({ + data: { + report: { + reasonCategory: 'criminal_behavior_violation_german_law', + }, + }, + errors: undefined, + }) + }) + + it('gives an error if the reason category is not in enum "ReasonCategory"', async () => { + await expect( + mutate({ + mutation: reportMutation, + variables: { + ...variables, + resourceId: 'abusive-user-id', + reasonCategory: 'category_missing_from_enum_reason_category', + }, + }), + ).resolves.toMatchObject({ + data: undefined, + errors: [ + { + message: + 'Variable "$reasonCategory" got invalid value "category_missing_from_enum_reason_category"; Expected type ReasonCategory.', + }, + ], + }) + }) + + it('returns the reason description', async () => { + await expect( + mutate({ + mutation: reportMutation, + variables: { + ...variables, + resourceId: 'abusive-user-id', + reasonDescription: 'My reason!', + }, + }), + ).resolves.toMatchObject({ + data: { + report: { + reasonDescription: 'My reason!', + }, + }, + errors: undefined, + }) + }) + + it('sanitize the reason description', async () => { + await expect( + mutate({ + mutation: reportMutation, + variables: { + ...variables, + resourceId: 'abusive-user-id', + reasonDescription: 'My reason !', + }, + }), + ).resolves.toMatchObject({ + data: { + report: { + reasonDescription: 'My reason !', + }, + }, + errors: undefined, + }) + }) }) }) }) @@ -138,79 +274,6 @@ describe('report', () => { // describe('valid resource id', () => { // describe('reported resource is a user', () => { -// it('returns resource in user attribute', async () => { -// await expect(action()).resolves.toMatchObject({ -// report: { -// user: { -// name: 'abusive-user', -// }, -// }, -// }) -// }) - -// it('returns the submitter', async () => { -// await expect(action()).resolves.toMatchObject({ -// report: { -// submitter: { -// email: 'test@example.org', -// }, -// }, -// }) -// }) - -// it('returns a date', async () => { -// await expect(action()).resolves.toMatchObject({ -// report: { -// createdAt: expect.any(String), -// }, -// }) -// }) - -// it('returns the reason category', async () => { -// variables = { -// ...variables, -// reasonCategory: 'criminal_behavior_violation_german_law', -// } -// await expect(action()).resolves.toMatchObject({ -// report: { -// reasonCategory: 'criminal_behavior_violation_german_law', -// }, -// }) -// }) - -// it('gives an error if the reason category is not in enum "ReasonCategory"', async () => { -// variables = { -// ...variables, -// reasonCategory: 'my_category', -// } -// await expect(action()).rejects.toThrow( -// 'got invalid value "my_category"; Expected type ReasonCategory', -// ) -// }) - -// it('returns the reason description', async () => { -// variables = { -// ...variables, -// reasonDescription: 'My reason!', -// } -// await expect(action()).resolves.toMatchObject({ -// report: { -// reasonDescription: 'My reason!', -// }, -// }) -// }) - -// it('sanitize the reason description', async () => { -// variables = { -// ...variables, -// reasonDescription: 'My reason !', -// } -// await expect(action()).resolves.toMatchObject({ -// report: { -// reasonDescription: 'My reason !', -// }, -// }) -// }) // }) // describe('reported resource is a post', () => {