diff --git a/admin/src/components/Tables/OpenCreationsTable.vue b/admin/src/components/Tables/OpenCreationsTable.vue
index 86c5ecce6..af9947f85 100644
--- a/admin/src/components/Tables/OpenCreationsTable.vue
+++ b/admin/src/components/Tables/OpenCreationsTable.vue
@@ -12,33 +12,42 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
d),
$store: {
commit: storeCommitMock,
+ state: {
+ moderator: {
+ firstName: 'Peter',
+ lastName: 'Lustig',
+ isAdmin: '2022-08-30T07:41:31.000Z',
+ id: 263,
+ language: 'de',
+ },
+ },
},
$apollo: {
query: apolloQueryMock,
diff --git a/backend/src/graphql/resolver/AdminResolver.ts b/backend/src/graphql/resolver/AdminResolver.ts
index fbeea716c..ac3936e4f 100644
--- a/backend/src/graphql/resolver/AdminResolver.ts
+++ b/backend/src/graphql/resolver/AdminResolver.ts
@@ -717,6 +717,9 @@ export class AdminResolver {
if (!contribution) {
throw new Error('Contribution not found')
}
+ if (contribution.userId === user.id) {
+ throw new Error('Admin can not answer on own contribution')
+ }
contributionMessage.contributionId = contributionId
contributionMessage.createdAt = new Date()
contributionMessage.message = message
diff --git a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts
index 6c617acb4..c0e330750 100644
--- a/backend/src/graphql/resolver/ContributionMessageResolver.test.ts
+++ b/backend/src/graphql/resolver/ContributionMessageResolver.test.ts
@@ -93,6 +93,38 @@ describe('ContributionMessageResolver', () => {
}),
)
})
+
+ it('throws error when contribution.userId equals user.id', async () => {
+ await query({
+ query: login,
+ variables: { email: 'peter@lustig.de', password: 'Aa12345_' },
+ })
+ const result2 = await mutate({
+ mutation: createContribution,
+ variables: {
+ amount: 100.0,
+ memo: 'Test env contribution',
+ creationDate: new Date().toString(),
+ },
+ })
+ await expect(
+ mutate({
+ mutation: adminCreateContributionMessage,
+ variables: {
+ contributionId: result2.data.createContribution.id,
+ message: 'Test',
+ },
+ }),
+ ).resolves.toEqual(
+ expect.objectContaining({
+ errors: [
+ new GraphQLError(
+ 'ContributionMessage was not successful: Error: Admin can not answer on own contribution',
+ ),
+ ],
+ }),
+ )
+ })
})
describe('valid input', () => {