From 83200f4fb1a93ce4dab54940747e87d29e185dec Mon Sep 17 00:00:00 2001 From: JM Faircloth Date: Thu, 8 Jun 2023 08:56:22 -0500 Subject: [PATCH] add test case for special chars --- .github/workflows/build.yml | 10 ++++++++++ integrationTests/e2e/e2e.test.js | 1 + integrationTests/e2e/setup.js | 12 ++++++++++++ src/action.test.js | 13 +++++++++++++ 4 files changed, 36 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 50b68b9..c703cba 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -153,6 +153,16 @@ jobs: my-secret/test altSecret | NAMED_ALTSECRET ; my-secret/nested/test otherAltSecret ; + - name: Test Vault Action (default KV V2) + uses: ./ + id: kv-secrets + with: + url: http://localhost:8200 + token: testtoken + secrets: | + secret/data/specialchars secret ; + secret/data/specialchars secret | SPECIAL_CHARS_SECRET ; + - name: Test Vault Action (cubbyhole) uses: ./ with: diff --git a/integrationTests/e2e/e2e.test.js b/integrationTests/e2e/e2e.test.js index c5ed5af..c3ea14a 100644 --- a/integrationTests/e2e/e2e.test.js +++ b/integrationTests/e2e/e2e.test.js @@ -1,6 +1,7 @@ describe('e2e', () => { it('verify', () => { expect(process.env.SECRET).toBe("SUPERSECRET"); + expect(process.env.SPECIAL_CHARS_SECRET).toBe("abc$xyz"); expect(process.env.NAMED_SECRET).toBe("SUPERSECRET"); expect(process.env.OTHERSECRET).toBe("OTHERSUPERSECRET"); expect(process.env.OTHER_SECRET_OUTPUT).toBe("OTHERSUPERSECRET"); diff --git a/integrationTests/e2e/setup.js b/integrationTests/e2e/setup.js index 846a9ed..faca179 100644 --- a/integrationTests/e2e/setup.js +++ b/integrationTests/e2e/setup.js @@ -24,6 +24,18 @@ const vaultToken = `${process.env.VAULT_TOKEN}` === undefined ? `${process.env.V }, }); + await got(`http://${vaultUrl}/v1/secret/data/specialchars`, { + method: 'POST', + headers: { + 'X-Vault-Token': vaultToken, + }, + json: { + data: { + secret: 'abc$xyz', + }, + }, + }); + await got(`http://${vaultUrl}/v1/secret/data/nested/test`, { method: 'POST', headers: { diff --git a/src/action.test.js b/src/action.test.js index 49c33cd..98f482c 100644 --- a/src/action.test.js +++ b/src/action.test.js @@ -207,6 +207,19 @@ describe('exportSecrets', () => { expect(core.setOutput).toBeCalledWith('key', '1'); }); + it('special chars secret retrieval', async () => { + const secret = 'abc$xyz'; + mockInput('test key'); + mockVaultData({ + key: secret + }); + + await exportSecrets(); + + expect(core.exportVariable).toBeCalledWith('KEY', secret); + expect(core.setOutput).toBeCalledWith('key', secret); + }); + it('encoded secret retrieval', async () => { mockInput('test key'); mockVaultData({