From 1c718a5f61cb59389218330e76490ab017e636c0 Mon Sep 17 00:00:00 2001 From: Fabian Weber Date: Wed, 7 Mar 2018 11:17:10 +0100 Subject: [PATCH 1/3] fix delete keys --- app/src/renderer/lcdClient.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/renderer/lcdClient.js b/app/src/renderer/lcdClient.js index ae4b76654c..9fa138ac23 100644 --- a/app/src/renderer/lcdClient.js +++ b/app/src/renderer/lcdClient.js @@ -57,7 +57,8 @@ Object.assign(Client.prototype, { listKeys: req('GET', '/keys'), getKey: argReq('GET', '/keys'), updateKey: argReq('PUT', '/keys'), - deleteKey: argReq('DELETE', '/keys'), + // axios handles DELETE requests different then other requests, we have to but the body in a config object with the prob data + deleteKey: function (name, body) { return argReq('DELETE', '/keys').call(this, name, {data: body}) }, recoverKey: req('POST', '/keys/recover'), // coins From 9bf673fbdff0b6d456a07d9b3b25f67f50d63819 Mon Sep 17 00:00:00 2001 From: Fabian Date: Wed, 7 Mar 2018 12:34:36 +0100 Subject: [PATCH 2/3] typo --- app/src/renderer/lcdClient.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/renderer/lcdClient.js b/app/src/renderer/lcdClient.js index 9fa138ac23..4ee4220adc 100644 --- a/app/src/renderer/lcdClient.js +++ b/app/src/renderer/lcdClient.js @@ -57,7 +57,7 @@ Object.assign(Client.prototype, { listKeys: req('GET', '/keys'), getKey: argReq('GET', '/keys'), updateKey: argReq('PUT', '/keys'), - // axios handles DELETE requests different then other requests, we have to but the body in a config object with the prob data + // axios handles DELETE requests different then other requests, we have to but the body in a config object with the prop data deleteKey: function (name, body) { return argReq('DELETE', '/keys').call(this, name, {data: body}) }, recoverKey: req('POST', '/keys/recover'), From 25eae7bc05a69a6c114fd29af597b98615b0f007 Mon Sep 17 00:00:00 2001 From: Fabian Weber Date: Wed, 7 Mar 2018 13:50:32 +0100 Subject: [PATCH 3/3] refactored + added tests --- app/src/renderer/lcdClient.js | 7 ++++++- test/unit/specs/lcdClient.spec.js | 11 +++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/src/renderer/lcdClient.js b/app/src/renderer/lcdClient.js index 4ee4220adc..0a06862af5 100644 --- a/app/src/renderer/lcdClient.js +++ b/app/src/renderer/lcdClient.js @@ -19,6 +19,11 @@ function argReq (method, path) { if (Array.isArray(args)) { args = args.join('/') } + if (method === 'DELETE') { + data = { + data + } + } return await this.request(method, `${path}/${args}`, data) } } @@ -58,7 +63,7 @@ Object.assign(Client.prototype, { getKey: argReq('GET', '/keys'), updateKey: argReq('PUT', '/keys'), // axios handles DELETE requests different then other requests, we have to but the body in a config object with the prop data - deleteKey: function (name, body) { return argReq('DELETE', '/keys').call(this, name, {data: body}) }, + deleteKey: argReq('DELETE', '/keys'), recoverKey: req('POST', '/keys/recover'), // coins diff --git a/test/unit/specs/lcdClient.spec.js b/test/unit/specs/lcdClient.spec.js index 775db24a2e..8e562662cb 100644 --- a/test/unit/specs/lcdClient.spec.js +++ b/test/unit/specs/lcdClient.spec.js @@ -97,6 +97,17 @@ describe('LCD Client', () => { ]) }) + it('delete requests have the correct format for data', async () => { + axios.delete = (path, config) => { + expect(config).toEqual({data: {password: 'abc'}}) + return Promise.resolve({data: { + foo: 'bar' + }}) + } + + await client.deleteKey('test', {password: 'abc'}) + }) + it('does not throw error for empty results', async () => { axios.get = jest.fn() .mockReturnValueOnce(Promise.reject({