From 7dc1ddf98ca663c57edd619c2456fb5860f488f1 Mon Sep 17 00:00:00 2001 From: Simon Johansson Date: Wed, 27 Jan 2021 16:22:26 +0100 Subject: [PATCH] Write a better error message when key not found --- integrationTests/basic/integration.test.js | 8 ++++++++ src/secrets.js | 14 +++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/integrationTests/basic/integration.test.js b/integrationTests/basic/integration.test.js index 2c436c8..fac5e55 100644 --- a/integrationTests/basic/integration.test.js +++ b/integrationTests/basic/integration.test.js @@ -123,6 +123,14 @@ describe('integration', () => { .mockReturnValueOnce(secrets); } + it('prints a nice error message when secret not found', async () => { + mockInput(`secret/data/test secret ; + secret/data/test secret | NAMED_SECRET ; + secret/data/notFound kehe | NO_SIR ;`); + + expect(exportSecrets()).rejects.toEqual(Error(`Unable to retrieve result for "secret/data/notFound". Double check your Key.`)); + }) + it('get simple secret', async () => { mockInput('secret/data/test secret'); diff --git a/src/secrets.js b/src/secrets.js index 91cbd40..c0c1f12 100644 --- a/src/secrets.js +++ b/src/secrets.js @@ -34,9 +34,17 @@ async function getSecrets(secretRequests, client) { body = responseCache.get(requestPath); cachedResponse = true; } else { - const result = await client.get(requestPath); - body = result.body; - responseCache.set(requestPath, body); + try { + const result = await client.get(requestPath); + body = result.body; + responseCache.set(requestPath, body); + } catch (error) { + const {response} = error; + if (response.statusCode === 404) { + throw Error(`Unable to retrieve result for "${path}". Double check your Key.`) + } + throw error + } } if (!selector.match(/.*[\.].*/)) { selector = '"' + selector + '"'