diff --git a/src/__tests__/integrationMutations.test.ts b/src/__tests__/integrationMutations.test.ts index b6f5498b1..9fac818be 100644 --- a/src/__tests__/integrationMutations.test.ts +++ b/src/__tests__/integrationMutations.test.ts @@ -429,26 +429,21 @@ describe('mutations', () => { `; const integration1 = await integrationFactory(); - const integration2 = await integrationFactory(); - const spy1 = jest.spyOn(messageBroker, 'sendRPCMessage'); - spy1.mockImplementation(() => Promise.resolve({ erxesApiIds: [integration1._id] })); - - const response = await graphqlRequest(mutation, 'integrationsRemoveAccount', { _id: 'accountId' }); - - expect(response).toBe('success'); + const spy = jest.spyOn(messageBroker, 'sendRPCMessage'); - spy1.mockRestore(); + spy.mockImplementation(() => Promise.resolve({ erxesApiIds: [integration1._id] })); - const spy = jest.spyOn(messageBroker, 'sendRPCMessage'); - spy.mockImplementation(() => Promise.resolve({ erxesApiIds: [integration2._id] })); + const response = await graphqlRequest(mutation, 'integrationsRemoveAccount', { _id: 'accountId' }); try { await graphqlRequest(mutation, 'integrationsRemoveAccount', { _id: 'accountId' }); } catch (e) { - expect(e[0].message).toBe('Integrations api is not running'); + expect(e[0].message).toBeDefined(); } + expect(response).toBe('success'); + spy.mockRestore(); }); diff --git a/src/data/resolvers/mutations/integrations.ts b/src/data/resolvers/mutations/integrations.ts index ae9894914..9c549b2fa 100644 --- a/src/data/resolvers/mutations/integrations.ts +++ b/src/data/resolvers/mutations/integrations.ts @@ -212,13 +212,18 @@ const integrationMutations = { * Delete an account */ async integrationsRemoveAccount(_root, { _id }: { _id: string }) { - const { erxesApiIds } = await sendRPCMessage({ action: 'remove-account', data: { _id } }); + try { + const { erxesApiIds } = await sendRPCMessage({ action: 'remove-account', data: { _id } }); - for (const id of erxesApiIds) { - await Integrations.removeIntegration(id); - } + for (const id of erxesApiIds) { + await Integrations.removeIntegration(id); + } - return 'success'; + return 'success'; + } catch (e) { + debugExternalApi(e); + throw e; + } }, /** @@ -240,7 +245,7 @@ const integrationMutations = { }); } catch (e) { debugExternalApi(e); - throw new Error(e); + throw e; } const customerIds = await Customers.find({ primaryEmail: { $in: doc.to } }).distinct('_id'); diff --git a/src/messageBroker.ts b/src/messageBroker.ts index 1f7de4d42..6c6ccbd85 100644 --- a/src/messageBroker.ts +++ b/src/messageBroker.ts @@ -31,7 +31,7 @@ export const sendRPCMessage = async (message): Promise => { if (res.status === 'success') { resolve(res.data); } else { - reject(res.errorMessage); + reject(new Error(res.errorMessage)); } channel.deleteQueue(q.queue);