From 1e33a60256d2d2ee10534803e57dea7172383281 Mon Sep 17 00:00:00 2001 From: Munkh-Orgil Date: Sun, 15 Mar 2020 16:04:50 +0800 Subject: [PATCH] fix: remove account only when there is no integration --- src/__tests__/integrationMutations.test.ts | 14 ++++++++++++-- src/data/resolvers/mutations/integrations.ts | 4 ++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/__tests__/integrationMutations.test.ts b/src/__tests__/integrationMutations.test.ts index 4309e2cd4..c7f927375 100644 --- a/src/__tests__/integrationMutations.test.ts +++ b/src/__tests__/integrationMutations.test.ts @@ -470,7 +470,7 @@ describe('mutations', () => { spy.mockImplementation(() => Promise.resolve({ erxesApiIds: [integration1._id] })); - const response = await graphqlRequest(mutation, 'integrationsRemoveAccount', { _id: 'accountId' }); + const firstResponse = await graphqlRequest(mutation, 'integrationsRemoveAccount', { _id: 'accountId' }); try { await graphqlRequest(mutation, 'integrationsRemoveAccount', { _id: 'accountId' }); @@ -478,9 +478,19 @@ describe('mutations', () => { expect(e[0].message).toBeDefined(); } - expect(response).toBe('success'); + expect(firstResponse).toBe('success'); spy.mockRestore(); + + const spy1 = jest.spyOn(messageBroker, 'sendRPCMessage'); + + spy1.mockImplementation(() => Promise.resolve({ erxesApiIds: [] })); + + const secondResponse = await graphqlRequest(mutation, 'integrationsRemoveAccount', { _id: 'accountId' }); + + expect(secondResponse).toBe('success'); + + spy1.mockRestore(); }); test('Send mail', async () => { diff --git a/src/data/resolvers/mutations/integrations.ts b/src/data/resolvers/mutations/integrations.ts index e6662ef41..94dfdb271 100644 --- a/src/data/resolvers/mutations/integrations.ts +++ b/src/data/resolvers/mutations/integrations.ts @@ -205,6 +205,10 @@ const integrationMutations = { try { const { erxesApiIds } = await sendRPCMessage({ action: 'remove-account', data: { _id } }); + if (erxesApiIds.length === 0) { + return 'success'; + } + for (const id of erxesApiIds) { await Integrations.removeIntegration(id); }