@rockcarver/frodo-lib 0.17.1 → 0.17.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/CHANGELOG.md +9 -1
  2. package/cjs/api/AgentApi.js +1 -1
  3. package/cjs/api/AgentApi.js.map +1 -1
  4. package/cjs/api/AgentApi.test.js.map +1 -1
  5. package/cjs/api/AuthenticateApi.js +17 -12
  6. package/cjs/api/AuthenticateApi.js.map +1 -1
  7. package/cjs/api/AuthenticateApi.test.js.map +1 -1
  8. package/cjs/api/NodeApi.test.js.map +1 -1
  9. package/cjs/api/SecretsApi.test.js.map +1 -1
  10. package/cjs/api/TreeApi.test.js.map +1 -1
  11. package/cjs/api/VariablesApi.test.js.map +1 -1
  12. package/cjs/api/utils/ApiUtils.js +13 -4
  13. package/cjs/api/utils/ApiUtils.js.map +1 -1
  14. package/cjs/api/utils/ApiUtils.test.js.map +1 -1
  15. package/cjs/ops/AgentOps.test.js.map +1 -1
  16. package/cjs/ops/AuthenticateOps.js +6 -0
  17. package/cjs/ops/AuthenticateOps.js.map +1 -1
  18. package/cjs/ops/AuthenticateOps.test.js.map +1 -1
  19. package/cjs/ops/SecretsOps.js +3 -3
  20. package/cjs/ops/SecretsOps.js.map +1 -1
  21. package/cjs/ops/ServiceAccountOps.test.js.map +1 -1
  22. package/cjs/ops/VariablesOps.js +3 -3
  23. package/cjs/ops/VariablesOps.js.map +1 -1
  24. package/cjs/shared/State.js +42 -2
  25. package/cjs/shared/State.js.map +1 -1
  26. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent1.json} +0 -2
  27. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/{ig_chico.json → FrodoOpsTestGatewayAgent2.json} +0 -2
  28. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent3.json} +0 -2
  29. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/{ig_mytestrun_com.json → FrodoOpsTestGatewayAgent4.json} +0 -2
  30. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/api_client.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent5.json} +0 -2
  31. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/{api_client.json → FrodoOpsTestGatewayAgent6.json} +0 -2
  32. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent7.json +20 -0
  33. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent8.json +20 -0
  34. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent9.json +30 -0
  35. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent1.json +30 -0
  36. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent2.json +20 -0
  37. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent3.json +20 -0
  38. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/{javaAgent.json → FrodoOpsTestJavaAgent1.json} +0 -2
  39. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/{tomcatagent.json → FrodoOpsTestJavaAgent2.json} +0 -2
  40. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/tomcatagent.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent3.json} +0 -2
  41. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/javaAgent.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent4.json} +0 -2
  42. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent5.json +621 -0
  43. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent6.json +628 -0
  44. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent7.json +628 -0
  45. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent8.json +628 -0
  46. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent9.json +628 -0
  47. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent1.json +621 -0
  48. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent2.json +628 -0
  49. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent3.json +628 -0
  50. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/apacheagent.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent1.json} +0 -2
  51. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/webserver.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent2.json} +0 -2
  52. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/{webserver.json → FrodoOpsTestWebAgent3.json} +0 -2
  53. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/{apacheagent.json → FrodoOpsTestWebAgent4.json} +0 -2
  54. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent5.json +454 -0
  55. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent6.json +453 -0
  56. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent7.json +453 -0
  57. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent8.json +453 -0
  58. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent9.json +453 -0
  59. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent1.json +454 -0
  60. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent2.json +453 -0
  61. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent3.json +453 -0
  62. package/cjs/test/mocks/TreeApi/putTree/FrodoTest.json +0 -2
  63. package/cjs/utils/AutoSetupPolly.js +43 -30
  64. package/cjs/utils/AutoSetupPolly.js.map +1 -1
  65. package/esm/api/AgentApi.mjs +1 -1
  66. package/esm/api/AgentApi.test.mjs +323 -246
  67. package/esm/api/AuthenticateApi.mjs +16 -12
  68. package/esm/api/AuthenticateApi.test.mjs +77 -35
  69. package/esm/api/NodeApi.test.mjs +248 -914
  70. package/esm/api/SecretsApi.test.mjs +252 -245
  71. package/esm/api/TreeApi.test.mjs +323 -135
  72. package/esm/api/VariablesApi.test.mjs +153 -41
  73. package/esm/api/utils/ApiUtils.mjs +12 -4
  74. package/esm/api/utils/ApiUtils.test.mjs +80 -79
  75. package/esm/ops/AgentOps.test.mjs +780 -1210
  76. package/esm/ops/AuthenticateOps.mjs +6 -0
  77. package/esm/ops/AuthenticateOps.test.mjs +63 -12
  78. package/esm/ops/SecretsOps.mjs +3 -3
  79. package/esm/ops/ServiceAccountOps.test.mjs +5 -0
  80. package/esm/ops/VariablesOps.mjs +3 -3
  81. package/esm/shared/State.mjs +42 -2
  82. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent1.json +30 -0
  83. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent2.json +20 -0
  84. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent3.json +20 -0
  85. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent4.json +30 -0
  86. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent5.json +20 -0
  87. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent6.json +20 -0
  88. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent7.json +20 -0
  89. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent8.json +20 -0
  90. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent9.json +30 -0
  91. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent1.json +30 -0
  92. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent2.json +20 -0
  93. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent3.json +20 -0
  94. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent1.json +621 -0
  95. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent2.json +628 -0
  96. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent3.json +628 -0
  97. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent4.json +621 -0
  98. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent5.json +621 -0
  99. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent6.json +628 -0
  100. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent7.json +628 -0
  101. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent8.json +628 -0
  102. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent9.json +628 -0
  103. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent1.json +621 -0
  104. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent2.json +628 -0
  105. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent3.json +628 -0
  106. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent1.json +454 -0
  107. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent2.json +453 -0
  108. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent3.json +453 -0
  109. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent4.json +454 -0
  110. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent5.json +454 -0
  111. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent6.json +453 -0
  112. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent7.json +453 -0
  113. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent8.json +453 -0
  114. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent9.json +453 -0
  115. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent1.json +454 -0
  116. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent2.json +453 -0
  117. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent3.json +453 -0
  118. package/esm/test/mocks/TreeApi/putTree/FrodoTest.json +0 -2
  119. package/esm/utils/AutoSetupPolly.mjs +41 -30
  120. package/package.json +4 -4
  121. package/types/api/AgentApi.d.ts.map +1 -1
  122. package/types/api/AuthenticateApi.d.ts +11 -2
  123. package/types/api/AuthenticateApi.d.ts.map +1 -1
  124. package/types/api/utils/ApiUtils.d.ts +7 -1
  125. package/types/api/utils/ApiUtils.d.ts.map +1 -1
  126. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  127. package/types/ops/SecretsOps.d.ts.map +1 -1
  128. package/types/ops/VariablesOps.d.ts.map +1 -1
  129. package/types/shared/State.d.ts.map +1 -1
  130. package/types/utils/AutoSetupPolly.d.ts +2 -1
  131. package/types/utils/AutoSetupPolly.d.ts.map +1 -1
  132. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +0 -22
  133. package/cjs/utils/SetupJest.js +0 -6
  134. package/cjs/utils/SetupJest.js.map +0 -1
  135. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +0 -22
  136. package/esm/utils/SetupJest.mjs +0 -3
  137. package/types/utils/SetupJest.d.ts +0 -1
  138. package/types/utils/SetupJest.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SecretsApi.test.js","names":["__dirname","path","dirname","fileURLToPath","mock","MockAdapter","axios","state","setHost","setRealm","setCookieName","setCookieValue","describe","test","mockResponse","JSON","parse","fs","readFileSync","resolve","onGet","reply","response","SecretsRaw","getSecrets","expect","toBeTruthy","toMatchObject","assertions","error","toMatchSnapshot","getSecret","onPut","putSecret","onPost","setSecretDescription","toBe","status","data","code","message","onDelete","deleteSecret","getSecretVersions","createNewVersionOfSecret","getVersionOfSecret","setStatusOfVersionOfSecret","VersionOfSecretStatus","DISABLED","deleteVersionOfSecret"],"sources":["api/SecretsApi.test.ts"],"sourcesContent":["import axios from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport { SecretsRaw, state } from '../index';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst mock = new MockAdapter(axios);\n\nstate.setHost('https://openam-frodo-dev.forgeblocks.com/am');\nstate.setRealm('alpha');\nstate.setCookieName('cookieName');\nstate.setCookieValue('cookieValue');\n\ndescribe('SecretsApi - getSecrets()', () => {\n test('getSecrets() 1: Get all secrets - success', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/getSecrets/secrets.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet('https://openam-frodo-dev.forgeblocks.com/environment/secrets')\n .reply(200, mockResponse);\n const response = await SecretsRaw.getSecrets();\n expect(response).toBeTruthy();\n expect(response).toMatchObject(mockResponse);\n });\n\n test('getSecrets() 2: Get all secrets - error', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/getSecrets/error.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet('https://openam-frodo-dev.forgeblocks.com/environment/secrets')\n .reply(500, mockResponse);\n expect.assertions(2);\n try {\n await SecretsRaw.getSecrets();\n } catch (error) {\n // console.dir(error);\n expect(error).toBeTruthy();\n expect(error).toMatchSnapshot();\n }\n });\n});\n\ndescribe('SecretsApi - getSecret()', () => {\n test('getSecret() 1: Get existing secret: esv-volkerstestsecret1', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/getSecret/esv-volkerstestsecret1.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1'\n )\n .reply(200, mockResponse);\n const response = await SecretsRaw.getSecret('esv-volkerstestsecret1');\n expect(response).toBeTruthy();\n expect(response).toMatchObject(mockResponse);\n });\n\n test('getSecret() 2: Get non-existing secret: esv-does-not-exist', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/getSecret/esv-does-not-exist.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-does-not-exist'\n )\n .reply(404, mockResponse);\n expect.assertions(2);\n try {\n await SecretsRaw.getSecret('esv-does-not-exist');\n } catch (error) {\n // console.dir(error);\n expect(error).toBeTruthy();\n expect(error).toMatchSnapshot();\n }\n });\n});\n\ndescribe('SecretsApi - putSecret()', () => {\n test('putSecret() 1: Create secret: esv-volkerstestsecret1 - success', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/putSecret/esv-volkerstestsecret1.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPut(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1'\n )\n .reply(200, mockResponse);\n const response = await SecretsRaw.putSecret(\n 'esv-volkerstestsecret1',\n \"Volker's Test Secret Value\",\n \"Volker's Test Secret Description\",\n 'generic',\n true\n );\n expect(response).toBeTruthy();\n expect(response).toMatchObject(mockResponse);\n });\n\n test('putSecret() 2: Create secret: esv-volkerstestsecret1 - error', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/putSecret/error.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPut(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1'\n )\n .reply(500, mockResponse);\n try {\n await SecretsRaw.putSecret(\n 'esv-volkerstestsecret1',\n \"Volker's Test Secret Value\",\n \"Volker's Test Secret Description\",\n 'generic',\n true\n );\n } catch (error) {\n // console.dir(error);\n expect(error).toMatchSnapshot();\n }\n });\n});\n\ndescribe('SecretsApi - setSecretDescription()', () => {\n test('setSecretDescription() 1: Set secret description: esv-volkerstestsecret1 - success', async () => {\n const mockResponse = '';\n mock\n .onPost(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1?_action=setDescription'\n )\n .reply(200, mockResponse);\n const response = await SecretsRaw.setSecretDescription(\n 'esv-volkerstestsecret1',\n \"Volker's Updated Test Secret Description\"\n );\n expect(response).toBe('');\n });\n\n test('setSecretDescription() 2: Set secret description: esv-volkerstestsecret1 - error', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/setSecretDescription/error.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPost(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1?_action=setDescription'\n )\n .reply(500, mockResponse);\n expect.assertions(4);\n try {\n await SecretsRaw.setSecretDescription(\n 'esv-volkerstestsecret1',\n \"Volker's Updated Test Secret Description\"\n );\n } catch (error) {\n // console.dir(error);\n expect(error).toBeTruthy();\n expect(error.response.status).toBe(500);\n expect(error.response.data.code).toBe(500);\n expect(error.response.data.message).toBe('Server Error');\n }\n });\n});\n\ndescribe('SecretsApi - deleteSecret()', () => {\n test('deleteSecret() 1: Delete secret: esv-volkerstestsecret1 - success', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/deleteSecret/esv-volkerstestsecret1.json'\n ),\n 'utf8'\n )\n );\n mock\n .onDelete(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1'\n )\n .reply(200, mockResponse);\n const response = await SecretsRaw.deleteSecret('esv-volkerstestsecret1');\n expect(response).toBeTruthy();\n expect(response).toMatchObject(mockResponse);\n });\n\n test('deleteSecret() 2: Delete secret: esv-volkerstestsecret1 - error', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/deleteSecret/error.json'\n ),\n 'utf8'\n )\n );\n mock\n .onDelete(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1'\n )\n .reply(500, mockResponse);\n expect.assertions(4);\n try {\n await SecretsRaw.deleteSecret('esv-volkerstestsecret1');\n } catch (error) {\n // console.dir(error);\n expect(error).toBeTruthy();\n expect(error.response.status).toBe(500);\n expect(error.response.data.code).toBe(500);\n expect(error.response.data.message).toBe('Server Error');\n }\n });\n});\n\ndescribe('SecretsApi - getSecretVersions()', () => {\n test('getSecretVersions() 1: Get versions of existing secret: esv-volkerstestsecret1', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/getSecretVersions/esv-volkerstestsecret1.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions'\n )\n .reply(200, mockResponse);\n const response = await SecretsRaw.getSecretVersions(\n 'esv-volkerstestsecret1'\n );\n expect(response).toBeTruthy();\n expect(response).toMatchObject(mockResponse);\n });\n\n test('getSecretVersions() 2: Get versions of non-existing secret: esv-does-not-exist', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/getSecretVersions/esv-does-not-exist.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-does-not-exist/versions'\n )\n .reply(404, mockResponse);\n expect.assertions(4);\n try {\n await SecretsRaw.getSecretVersions('esv-does-not-exist');\n } catch (error) {\n // console.dir(error);\n expect(error).toBeTruthy();\n expect(error.response.status).toBe(404);\n expect(error.response.data.code).toBe(404);\n expect(error.response.data.message).toBe(\n 'The secret does not exist or does not have a version'\n );\n }\n });\n});\n\ndescribe('SecretsApi - createNewVersionOfSecret()', () => {\n test('createNewVersionOfSecret() 1: Create new version of existing secret: esv-volkerstestsecret1 - success', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/createNewVersionOfSecret/esv-volkerstestsecret1.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPost(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions?_action=create'\n )\n .reply(200, mockResponse);\n const response = await SecretsRaw.createNewVersionOfSecret(\n 'esv-volkerstestsecret1',\n \"Volker's Test Secret Value\"\n );\n expect(response).toBeTruthy();\n expect(response).toMatchObject(mockResponse);\n });\n\n test('createNewVersionOfSecret() 2: Create new version of existing secret: esv-volkerstestsecret1 - error', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/createNewVersionOfSecret/error.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPost(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions?_action=create'\n )\n .reply(500, mockResponse);\n expect.assertions(4);\n try {\n await SecretsRaw.createNewVersionOfSecret(\n 'esv-volkerstestsecret1',\n \"Volker's Test Secret Value\"\n );\n } catch (error) {\n // console.dir(error);\n expect(error).toBeTruthy();\n expect(error.response.status).toBe(500);\n expect(error.response.data.code).toBe(500);\n expect(error.response.data.message).toBe('Server Error');\n }\n });\n\n test('createNewVersionOfSecret() 3: Create new version of non-existing secret: esv-does-not-exist - error', async () => {\n const mockResponse = fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/createNewVersionOfSecret/esv-does-not-exist.txt'\n ),\n 'utf8'\n );\n mock\n .onPost(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions?_action=create'\n )\n .reply(500, mockResponse);\n expect.assertions(3);\n try {\n await SecretsRaw.createNewVersionOfSecret(\n 'esv-volkerstestsecret1',\n \"Volker's Test Secret Value\"\n );\n } catch (error) {\n // console.dir(error);\n expect(error).toBeTruthy();\n expect(error.response.status).toBe(500);\n expect(error.response.data).toBe(mockResponse);\n }\n });\n});\n\ndescribe('SecretsApi - getVersionOfSecret()', () => {\n test('getVersionOfSecret() 1: Get version 2 of existing secret: esv-volkerstestsecret1', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/getVersionOfSecret/esv-volkerstestsecret1_v2.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions/2'\n )\n .reply(200, mockResponse);\n const response = await SecretsRaw.getVersionOfSecret(\n 'esv-volkerstestsecret1',\n '2'\n );\n expect(response).toBeTruthy();\n expect(response).toMatchObject(mockResponse);\n });\n\n test('getVersionOfSecret() 2: Get version 2 of non-existing secret: esv-does-not-exist', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/getVersionOfSecret/esv-does-not-exist_v2.json'\n ),\n 'utf8'\n )\n );\n mock\n .onGet(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-does-not-exist/versions/2'\n )\n .reply(500, mockResponse);\n expect.assertions(4);\n try {\n await SecretsRaw.getVersionOfSecret('esv-does-not-exist', '2');\n } catch (error) {\n // console.dir(error);\n expect(error).toBeTruthy();\n expect(error.response.status).toBe(500);\n expect(error.response.data.code).toBe(500);\n expect(error.response.data.message).toBe(\n 'Failed to update secret version'\n );\n }\n });\n});\n\ndescribe('SecretsApi - setStatusOfVersionOfSecret()', () => {\n test('setStatusOfVersionOfSecret() 1: Disable version 2 of existing secret: esv-volkerstestsecret1 - success', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/setStatusOfVersionOfSecret/esv-volkerstestsecret1_v2_DISABLED.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPost(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions/2?_action=changestatus'\n )\n .reply(200, mockResponse);\n const response = await SecretsRaw.setStatusOfVersionOfSecret(\n 'esv-volkerstestsecret1',\n '2',\n SecretsRaw.VersionOfSecretStatus.DISABLED\n );\n expect(response).toBeTruthy();\n expect(response).toMatchObject(mockResponse);\n });\n\n test('setStatusOfVersionOfSecret() 2: Disable version 2 of existing secret: esv-volkerstestsecret1 - error', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/setStatusOfVersionOfSecret/error.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPost(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions/2?_action=changestatus'\n )\n .reply(500, mockResponse);\n expect.assertions(4);\n try {\n await SecretsRaw.setStatusOfVersionOfSecret(\n 'esv-volkerstestsecret1',\n '2',\n SecretsRaw.VersionOfSecretStatus.DISABLED\n );\n } catch (error) {\n // console.dir(error);\n expect(error).toBeTruthy();\n expect(error.response.status).toBe(500);\n expect(error.response.data.code).toBe(500);\n expect(error.response.data.message).toBe('Server Error');\n }\n });\n\n test('setStatusOfVersionOfSecret() 3: Disable version 2 of non-existing secret: esv-does-not-exist - error', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/setStatusOfVersionOfSecret/esv-does-not-exist_v2_DISABLED.json'\n ),\n 'utf8'\n )\n );\n mock\n .onPost(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-does-not-exist/versions/2?_action=changestatus'\n )\n .reply(404, mockResponse);\n expect.assertions(4);\n try {\n await SecretsRaw.setStatusOfVersionOfSecret(\n 'esv-does-not-exist',\n '2',\n SecretsRaw.VersionOfSecretStatus.DISABLED\n );\n } catch (error) {\n // console.dir(error);\n expect(error).toBeTruthy();\n expect(error.response.status).toBe(404);\n expect(error.response.data.code).toBe(404);\n expect(error.response.data.message).toBe(\n 'The secret does not exist or does not have a version'\n );\n }\n });\n});\n\ndescribe('SecretsApi - deleteVersionOfSecret()', () => {\n test('deleteVersionOfSecret() 1: Delete version 2 of secret: esv-volkerstestsecret1 - success', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/deleteVersionOfSecret/esv-volkerstestsecret1_v2.json'\n ),\n 'utf8'\n )\n );\n mock\n .onDelete(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions/2'\n )\n .reply(200, mockResponse);\n const response = await SecretsRaw.deleteVersionOfSecret(\n 'esv-volkerstestsecret1',\n '2'\n );\n expect(response).toBeTruthy();\n expect(response).toMatchObject(mockResponse);\n });\n\n test('deleteVersionOfSecret() 2: Delete version 2 of secret: esv-volkerstestsecret1 - error', async () => {\n const mockResponse = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/SecretsApi/deleteVersionOfSecret/error.json'\n ),\n 'utf8'\n )\n );\n mock\n .onDelete(\n 'https://openam-frodo-dev.forgeblocks.com/environment/secrets/esv-volkerstestsecret1/versions/2'\n )\n .reply(500, mockResponse);\n expect.assertions(4);\n try {\n await SecretsRaw.deleteVersionOfSecret('esv-volkerstestsecret1', '2');\n } catch (error) {\n // console.dir(error);\n expect(error).toBeTruthy();\n expect(error.response.status).toBe(500);\n expect(error.response.data.code).toBe(500);\n expect(error.response.data.message).toBe('Server Error');\n }\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"SecretsApi.test.js","names":["jest","setTimeout","autoSetupPolly","describe","secret1","name","value","description","secret2","secret3","secret4","encoding","placeholders","beforeAll","process","env","FRODO_POLLY_MODE","SecretsRaw","getSecret","deleteSecret","error","putSecret","createNewVersionOfSecret","setStatusOfVersionOfSecret","VersionOfSecretStatus","DISABLED","afterAll","test","expect","getSecrets","toBeDefined","response","toMatchSnapshot","assertions","setSecretDescription","getSecretVersions","getVersionOfSecret","deleteVersionOfSecret"],"sources":["api/SecretsApi.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=volker-dev npm run test:record SecretsApi\n *\n * The above command assumes that you have a connection profile for\n * 'volker-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update SecretsApi\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test SecretsApi\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { jest } from '@jest/globals';\nimport { SecretsRaw } from '../index';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\n// Increase timeout for this test as pipeline keeps failing with error:\n// Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.\njest.setTimeout(30000);\n\nautoSetupPolly();\n\ndescribe('SecretsApi', () => {\n const secret1 = {\n name: 'esv-frodo-test-secret1',\n value: 'Frodo Test Secret One Value',\n description: 'Frodo Test Secret One Description',\n };\n const secret2 = {\n name: 'esv-frodo-test-secret2',\n value: 'Frodo Test Secret Two Value',\n description: 'Frodo Test Secret Two Description',\n };\n const secret3 = {\n name: 'esv-frodo-test-secret3',\n value: 'Frodo Test Secret Three Value',\n description: 'Frodo Test Secret Three Description',\n };\n const secret4 = {\n name: 'esv-frodo-test-secret4',\n value: 'Frodo Test Secret Four Value',\n description: 'Frodo Test Secret Four Description',\n encoding: 'generic',\n placeholders: true,\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n // setup secret1 - delete if exists, then create\n try {\n await SecretsRaw.getSecret(secret1.name);\n await SecretsRaw.deleteSecret(secret1.name);\n } catch (error) {\n // ignore\n } finally {\n await SecretsRaw.putSecret(\n secret1.name,\n secret1.value,\n secret1.description\n );\n await SecretsRaw.createNewVersionOfSecret(\n secret1.name,\n secret1.value + ' Version 2'\n );\n await SecretsRaw.createNewVersionOfSecret(\n secret1.name,\n secret1.value + ' Version 3'\n );\n await SecretsRaw.setStatusOfVersionOfSecret(\n secret1.name,\n '2',\n SecretsRaw.VersionOfSecretStatus.DISABLED\n );\n }\n // setup secret2 - delete if exists, then create\n try {\n await SecretsRaw.getSecret(secret2.name);\n await SecretsRaw.deleteSecret(secret2.name);\n } catch (error) {\n // ignore\n } finally {\n await SecretsRaw.putSecret(\n secret2.name,\n secret2.value,\n secret2.description\n );\n await SecretsRaw.createNewVersionOfSecret(\n secret2.name,\n secret2.value + ' Version 2'\n );\n await SecretsRaw.createNewVersionOfSecret(\n secret2.name,\n secret2.value + ' Version 3'\n );\n }\n // setup secret3 - delete if exists, then create\n try {\n await SecretsRaw.getSecret(secret3.name);\n await SecretsRaw.deleteSecret(secret3.name);\n } catch (error) {\n // ignore\n } finally {\n await SecretsRaw.putSecret(\n secret3.name,\n secret3.value,\n secret3.description\n );\n }\n // setup secret4 - delete if exists\n try {\n await SecretsRaw.getSecret(secret4.name);\n await SecretsRaw.deleteSecret(secret4.name);\n } catch (error) {\n // ignore\n }\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n try {\n await SecretsRaw.getSecret(secret1.name);\n await SecretsRaw.deleteSecret(secret1.name);\n } catch (error) {\n // ignore\n }\n try {\n await SecretsRaw.getSecret(secret2.name);\n await SecretsRaw.deleteSecret(secret2.name);\n } catch (error) {\n // ignore\n }\n try {\n await SecretsRaw.getSecret(secret3.name);\n await SecretsRaw.deleteSecret(secret3.name);\n } catch (error) {\n // ignore\n }\n try {\n await SecretsRaw.getSecret(secret4.name);\n await SecretsRaw.deleteSecret(secret4.name);\n } catch (error) {\n // ignore\n }\n }\n });\n\n describe('getSecrets()', () => {\n test('0: Method is implemented', async () => {\n expect(SecretsRaw.getSecrets).toBeDefined();\n });\n\n test('1: Get all secrets - success', async () => {\n const response = await SecretsRaw.getSecrets();\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSecret()', () => {\n test('0: Method is implemented', async () => {\n expect(SecretsRaw.getSecret).toBeDefined();\n });\n\n test(`1: Get existing secret: ${secret1.name}`, async () => {\n const response = await SecretsRaw.getSecret(secret1.name);\n expect(response).toMatchSnapshot();\n });\n\n test('2: Get non-existing secret: esv-does-not-exist', async () => {\n expect.assertions(1);\n try {\n await SecretsRaw.getSecret('esv-does-not-exist');\n } catch (error) {\n expect(error).toMatchSnapshot();\n }\n });\n });\n\n describe('putSecret()', () => {\n test('0: Method is implemented', async () => {\n expect(SecretsRaw.putSecret).toBeDefined();\n });\n\n test(`1: Create secret: ${secret4.name} - success`, async () => {\n const response = await SecretsRaw.putSecret(\n secret4.name,\n secret4.value,\n secret4.description,\n secret4.encoding,\n secret4.placeholders\n );\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('setSecretDescription()', () => {\n test('0: Method is implemented', async () => {\n expect(SecretsRaw.setSecretDescription).toBeDefined();\n });\n\n test(`1: Set existing secret's description: ${secret2.name} - success`, async () => {\n const response = await SecretsRaw.setSecretDescription(\n secret2.name,\n 'Updated Frodo Test Secret Two Description'\n );\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('deleteSecret()', () => {\n test('0: Method is implemented', async () => {\n expect(SecretsRaw.deleteSecret).toBeDefined();\n });\n\n test(`1: Delete existing secret: ${secret3.name} - success`, async () => {\n const response = await SecretsRaw.deleteSecret(secret3.name);\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getSecretVersions()', () => {\n test('0: Method is implemented', async () => {\n expect(SecretsRaw.getSecretVersions).toBeDefined();\n });\n\n test(`1: Get versions of existing secret: ${secret1.name}`, async () => {\n const response = await SecretsRaw.getSecretVersions(secret1.name);\n expect(response).toMatchSnapshot();\n });\n\n test('2: Get versions of non-existing secret: esv-does-not-exist', async () => {\n expect.assertions(1);\n try {\n await SecretsRaw.getSecretVersions('esv-does-not-exist');\n } catch (error) {\n expect(error).toMatchSnapshot();\n }\n });\n });\n\n describe('getVersionOfSecret()', () => {\n test('0: Method is implemented', async () => {\n expect(SecretsRaw.getVersionOfSecret).toBeDefined();\n });\n\n test(`1: Get version 2 of existing secret: ${secret1.name}`, async () => {\n const response = await SecretsRaw.getVersionOfSecret(secret1.name, '2');\n expect(response).toMatchSnapshot();\n });\n\n test('2: Get version 2 of non-existing secret: esv-does-not-exist', async () => {\n expect.assertions(1);\n try {\n await SecretsRaw.getVersionOfSecret('esv-does-not-exist', '2');\n } catch (error) {\n expect(error).toMatchSnapshot();\n }\n });\n });\n\n describe('createNewVersionOfSecret()', () => {\n test('0: Method is implemented', async () => {\n expect(SecretsRaw.createNewVersionOfSecret).toBeDefined();\n });\n\n test(`1: Create new version of existing secret: ${secret2.name} - success`, async () => {\n const response = await SecretsRaw.createNewVersionOfSecret(\n secret2.name,\n secret2.value + ' Version 4'\n );\n expect(response).toMatchSnapshot();\n });\n\n test('2: Create new version of non-existing secret: esv-does-not-exist - error', async () => {\n expect.assertions(1);\n try {\n await SecretsRaw.createNewVersionOfSecret(\n 'esv-does-not-exist',\n 'Frodo Non-Existing Test Secret Value Version 2'\n );\n } catch (error) {\n expect(error).toMatchSnapshot();\n }\n });\n });\n\n describe('setStatusOfVersionOfSecret()', () => {\n test('0: Method is implemented', async () => {\n expect(SecretsRaw.setStatusOfVersionOfSecret).toBeDefined();\n });\n\n test(`1: Disable version 2 of existing secret: ${secret2.name} - success`, async () => {\n expect.assertions(1);\n const response = await SecretsRaw.setStatusOfVersionOfSecret(\n secret2.name,\n '2',\n SecretsRaw.VersionOfSecretStatus.DISABLED\n );\n expect(response).toMatchSnapshot();\n });\n\n test('2: Disable version 2 of non-existing secret: esv-does-not-exist - error', async () => {\n expect.assertions(1);\n try {\n await SecretsRaw.setStatusOfVersionOfSecret(\n 'esv-does-not-exist',\n '2',\n SecretsRaw.VersionOfSecretStatus.DISABLED\n );\n } catch (error) {\n expect(error).toMatchSnapshot();\n }\n });\n });\n\n describe('deleteVersionOfSecret()', () => {\n test('0: Method is implemented', async () => {\n expect(SecretsRaw.deleteVersionOfSecret).toBeDefined();\n });\n\n test(`1: Delete version 1 of secret: ${secret2.name} - success`, async () => {\n const response = await SecretsRaw.deleteVersionOfSecret(\n secret2.name,\n '1'\n );\n expect(response).toMatchSnapshot();\n });\n });\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeApi.test.js","names":["__dirname","path","dirname","fileURLToPath","mock","MockAdapter","axios","state","setHost","setRealm","setCookieName","setCookieValue","describe","test","expect","TreeRaw","getTrees","toBeDefined","response","JSON","parse","fs","readFileSync","resolve","onGet","getHost","reply","trees","toBeTruthy","toMatchSnapshot","getTree","tree","code","reason","message","error","data","putTree","onPut","request","assertions","detail","validAttributes","deleteTree","onDelete"],"sources":["api/TreeApi.test.ts"],"sourcesContent":["import axios from 'axios';\nimport MockAdapter from 'axios-mock-adapter';\nimport { TreeRaw, state } from '../index';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nconst mock = new MockAdapter(axios);\n\nstate.setHost('');\nstate.setRealm('alpha');\nstate.setCookieName('cookieName');\nstate.setCookieValue('cookieValue');\n\ndescribe('TreeApi - getTrees()', () => {\n test('getTrees() 0: Method is implemented', async () => {\n expect(TreeRaw.getTrees).toBeDefined();\n });\n\n test('getTrees() 1: Get all trees', async () => {\n const response = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, '../test/mocks/TreeApi/getTrees/trees.json'),\n 'utf8'\n )\n );\n mock\n .onGet(\n `${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees?_queryFilter=true`\n )\n .reply(200, response);\n const trees = await TreeRaw.getTrees();\n expect(trees).toBeTruthy();\n expect(trees).toMatchSnapshot();\n });\n});\n\ndescribe('TreeApi - getTree()', () => {\n test('getTree() 0: Method is implemented', async () => {\n expect(TreeRaw.getTree).toBeDefined();\n });\n\n test('getTree() 1: Get existing tree', async () => {\n const response = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, '../test/mocks/TreeApi/getTree/FrodoTest.json'),\n 'utf8'\n )\n );\n mock\n .onGet(\n `${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/FrodoTest`\n )\n .reply(200, response);\n const tree = await TreeRaw.getTree('FrodoTest');\n expect(tree).toBeTruthy();\n expect(tree).toMatchSnapshot();\n });\n\n test('getTree() 2: Get non-existing tree', async () => {\n mock\n .onGet(\n `${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/DoesNotExist`\n )\n .reply(404, {\n code: 404,\n reason: 'Not Found',\n message: 'Not Found',\n });\n try {\n await TreeRaw.getTree('DoesNotExist');\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n});\n\ndescribe('TreeApi - putTree()', () => {\n test('putTree() 0: Method is implemented', async () => {\n expect(TreeRaw.putTree).toBeDefined();\n });\n\n test('putTree() 1: Put valid tree', async () => {\n const response = JSON.parse(\n fs.readFileSync(\n path.resolve(__dirname, '../test/mocks/TreeApi/putTree/FrodoTest.json'),\n 'utf8'\n )\n );\n mock\n .onPut(\n `${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/FrodoTest`\n )\n .reply(201, response);\n const tree = await TreeRaw.putTree('FrodoTest', response);\n expect(tree).toBeTruthy();\n expect(tree).toMatchSnapshot();\n });\n\n test('putTree() 2: Put invalid tree [trailing data]', async () => {\n const request = fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/TreeApi/putTree/Invalid_trailing-data.txt'\n ),\n 'utf8'\n );\n mock\n .onPut(\n `${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/Invalid`\n )\n .reply(400, {\n code: 400,\n reason: 'Bad Request',\n message:\n 'The request could not be processed because there is trailing data after the JSON content',\n });\n expect.assertions(2);\n try {\n await TreeRaw.putTree('Invalid', request);\n } catch (error) {\n expect(error.response).toBeTruthy();\n expect(error.response.data).toMatchSnapshot();\n }\n });\n\n test('putTree() 3: Put invalid tree [invalid attribute]', async () => {\n const request = fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/TreeApi/putTree/Invalid_invalid-attribute.json'\n ),\n 'utf8'\n );\n mock\n .onPut(\n `${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/Invalid`\n )\n .reply(400, {\n code: 400,\n reason: 'Bad Request',\n message: 'Invalid attribute specified.',\n detail: {\n validAttributes: [\n 'description',\n 'enabled',\n 'entryNodeId',\n 'identityResource',\n 'nodes',\n 'staticNodes',\n 'uiConfig',\n ],\n },\n });\n expect.assertions(2);\n try {\n await TreeRaw.putTree('Invalid', request);\n } catch (error) {\n expect(error.response).toBeTruthy();\n expect(error.response.data).toMatchSnapshot();\n }\n });\n\n test('putTree() 4: Put invalid tree [no entry node]', async () => {\n const request = fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/TreeApi/putTree/Invalid_no-entry-node.json'\n ),\n 'utf8'\n );\n mock\n .onPut(\n `${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/Invalid`\n )\n .reply(400, {\n code: 400,\n reason: 'Bad Request',\n message: 'Node with ID entryNodeId must exist in the tree.',\n });\n expect.assertions(2);\n try {\n await TreeRaw.putTree('Invalid', request);\n } catch (error) {\n expect(error.response).toBeTruthy();\n expect(error.response.data).toMatchSnapshot();\n }\n });\n\n test('putTree() 5: Put invalid tree [invalid nodes]', async () => {\n const request = fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/TreeApi/putTree/Invalid_invalid-nodes.json'\n ),\n 'utf8'\n );\n mock\n .onPut(\n `${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/Invalid`\n )\n .reply(400, {\n code: 400,\n reason: 'Bad Request',\n message: 'Node with ID entryNodeId must exist in the tree.',\n });\n expect.assertions(2);\n try {\n await TreeRaw.putTree('Invalid', request);\n } catch (error) {\n expect(error.response).toBeTruthy();\n expect(error.response.data).toMatchSnapshot();\n }\n });\n});\n\ndescribe('TreeApi - deleteTree()', () => {\n test('deleteTree() 0: Method is implemented', async () => {\n expect(TreeRaw.deleteTree).toBeDefined();\n });\n\n test('deleteTree() 1: Delete existing tree', async () => {\n const response = JSON.parse(\n fs.readFileSync(\n path.resolve(\n __dirname,\n '../test/mocks/TreeApi/deleteTree/FrodoTest.json'\n ),\n 'utf8'\n )\n );\n mock\n .onDelete(\n `${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/FrodoTest`\n )\n .reply(200, response);\n const tree = await TreeRaw.deleteTree('FrodoTest');\n expect(tree).toBeTruthy();\n expect(tree).toMatchSnapshot();\n });\n\n test('deleteTree() 2: Delete non-existing tree', async () => {\n mock\n .onDelete(\n `${state.getHost()}/json/realms/root/realms/alpha/realm-config/authentication/authenticationtrees/trees/DoesNotExist`\n )\n .reply(404, {\n code: 404,\n reason: 'Not Found',\n message: 'Not Found',\n });\n expect.assertions(2);\n try {\n await TreeRaw.deleteTree('DoesNotExist');\n } catch (error) {\n expect(error.response).toBeTruthy();\n expect(error.response.data).toMatchSnapshot();\n }\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"TreeApi.test.js","names":["autoSetupPolly","describe","tree1","name","tree","identityResource","uiConfig","categories","entryNodeId","nodes","staticNodes","startNode","x","y","description","enabled","tree2","tree3","tree4","beforeAll","process","env","FRODO_POLLY_MODE","TreeRaw","getTree","deleteTree","error","putTree","afterAll","test","expect","getTrees","toBeDefined","response","toMatchSnapshot","assertions","data","treeData","JSON","stringify","parse","nodes2","invalid"],"sources":["api/TreeApi.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=volker-dev npm run test:record TreeApi\n *\n * The above command assumes that you have a connection profile for\n * 'volker-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update TreeApi\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test TreeApi\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { TreeRaw } from '../index';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\nautoSetupPolly();\n\ndescribe('TreeApi', () => {\n const tree1 = {\n name: 'FrodoTestTree1',\n tree: {\n identityResource: 'managed/alpha_user',\n uiConfig: {\n categories: '[\"Authentication\",\"Frodo\"]',\n },\n entryNodeId: 'e301438c-0bd0-429c-ab0c-66126501069a',\n nodes: {},\n staticNodes: {\n startNode: {\n x: 70,\n y: 80,\n },\n '70e691a5-1e33-4ac3-a356-e7b6d60d92e0': {\n x: 70,\n y: 230,\n },\n 'e301438c-0bd0-429c-ab0c-66126501069a': {\n x: 210,\n y: 80,\n },\n },\n description: 'Frodo Test Tree One',\n enabled: true,\n },\n };\n const tree2 = {\n name: 'FrodoTestTree2',\n tree: {\n identityResource: 'managed/alpha_user',\n uiConfig: {\n categories: '[\"Authentication\",\"Frodo\"]',\n },\n entryNodeId: 'f19e5458-6c2e-43e6-9273-84d66f4a8f46',\n nodes: {},\n staticNodes: {\n startNode: {\n x: 70,\n y: 80,\n },\n 'c904b319-0bb0-454e-b408-08ade91469cf': {\n x: 70,\n y: 230,\n },\n '97704adc-c3a0-469a-9f6a-c07325890232': {\n x: 210,\n y: 80,\n },\n },\n description: 'Frodo Test Tree Two',\n enabled: true,\n },\n };\n const tree3 = {\n name: 'FrodoTestTree3',\n tree: {\n identityResource: 'managed/alpha_user',\n uiConfig: {\n categories: '[\"Authentication\",\"Frodo\"]',\n },\n entryNodeId: 'b320a71e-ddac-4180-a106-e6690ac775ca',\n nodes: {},\n staticNodes: {\n startNode: {\n x: 70,\n y: 80,\n },\n '1edf4a79-6103-48ee-af91-75af47f85870': {\n x: 70,\n y: 230,\n },\n '4bb0250d-40fe-4ab8-9ea4-77e901615736': {\n x: 210,\n y: 80,\n },\n },\n description: 'Frodo Test Tree Three',\n enabled: true,\n },\n };\n const tree4 = {\n name: 'FrodoTestTree4',\n tree: {\n identityResource: 'managed/alpha_user',\n uiConfig: {\n categories: '[\"Authentication\",\"Frodo\"]',\n },\n entryNodeId: 'f3bea587-d5ad-476b-80bb-b288ab45bc52',\n nodes: {},\n staticNodes: {\n startNode: {\n x: 70,\n y: 80,\n },\n 'e6b2ead4-7cb2-4f6f-b9ef-f2086a3814dd': {\n x: 70,\n y: 230,\n },\n 'be2da6e2-ca86-4c4a-9252-5df7ea0551be': {\n x: 210,\n y: 80,\n },\n },\n description: 'Frodo Test Tree Four',\n enabled: true,\n },\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n // setup tree1 - delete if exists, then create\n try {\n await TreeRaw.getTree(tree1.name);\n await TreeRaw.deleteTree(tree1.name);\n } catch (error) {\n // ignore\n } finally {\n await TreeRaw.putTree(tree1.name, tree1.tree);\n }\n // setup tree2 - delete if exists, then create\n try {\n await TreeRaw.getTree(tree2.name);\n await TreeRaw.deleteTree(tree2.name);\n } catch (error) {\n // ignore\n } finally {\n await TreeRaw.putTree(tree2.name, tree2.tree);\n }\n // setup tree3 - delete if exists, then create\n try {\n await TreeRaw.getTree(tree3.name);\n await TreeRaw.deleteTree(tree3.name);\n } catch (error) {\n // ignore\n } finally {\n await TreeRaw.putTree(tree3.name, tree3.tree);\n }\n // setup tree4 - delete if exists\n try {\n await TreeRaw.getTree(tree4.name);\n await TreeRaw.deleteTree(tree4.name);\n } catch (error) {\n // ignore\n }\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n try {\n await TreeRaw.getTree(tree1.name);\n await TreeRaw.deleteTree(tree1.name);\n } catch (error) {\n // ignore\n }\n try {\n await TreeRaw.getTree(tree2.name);\n await TreeRaw.deleteTree(tree2.name);\n } catch (error) {\n // ignore\n }\n try {\n await TreeRaw.getTree(tree3.name);\n await TreeRaw.deleteTree(tree3.name);\n } catch (error) {\n // ignore\n }\n try {\n await TreeRaw.getTree(tree4.name);\n await TreeRaw.deleteTree(tree4.name);\n } catch (error) {\n // ignore\n }\n }\n });\n\n describe('getTrees()', () => {\n test('0: Method is implemented', async () => {\n expect(TreeRaw.getTrees).toBeDefined();\n });\n\n test('1: Get all trees', async () => {\n const response = await TreeRaw.getTrees();\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getTree()', () => {\n test('0: Method is implemented', async () => {\n expect(TreeRaw.getTree).toBeDefined();\n });\n\n test(`1: Get existing tree ${tree1.name}`, async () => {\n const response = await TreeRaw.getTree(tree1.name);\n expect(response).toMatchSnapshot();\n });\n\n test('2: Get non-existing tree DoesNotExist', async () => {\n expect.assertions(1);\n try {\n await TreeRaw.getTree('DoesNotExist');\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n });\n\n describe('putTree()', () => {\n test('0: Method is implemented', async () => {\n expect(TreeRaw.putTree).toBeDefined();\n });\n\n test(`1: Put valid tree ${tree4.name}`, async () => {\n const response = await TreeRaw.putTree(tree4.name, tree4.tree);\n expect(response).toMatchSnapshot();\n });\n\n test('2: Put invalid tree [trailing data]', async () => {\n expect.assertions(1);\n const treeData =\n JSON.stringify({\n entryNodeId: 'e301438c-0bd0-429c-ab0c-66126501069a',\n nodes: {},\n staticNodes: {},\n description: 'invalid tree def',\n identityResource: 'managed/alpha_user',\n uiConfig: {\n categories: '[]',\n },\n }) + '\\ntrailing data';\n try {\n await TreeRaw.putTree('Invalid', treeData);\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n\n test('3: Put invalid tree [invalid attribute]', async () => {\n expect.assertions(1);\n const treeData = JSON.parse(\n JSON.stringify({\n entryNodeId: 'e301438c-0bd0-429c-ab0c-66126501069a',\n nodes2: {},\n staticNodes: {},\n description: 'invalid tree def',\n identityResource: 'managed/alpha_user',\n uiConfig: {\n categories: '[]',\n },\n })\n );\n try {\n await TreeRaw.putTree('Invalid', treeData);\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n\n test('4: Put invalid tree [no entry node]', async () => {\n expect.assertions(1);\n const treeData = JSON.parse(\n JSON.stringify({\n nodes: {},\n staticNodes: {},\n description: 'invalid tree def',\n identityResource: 'managed/alpha_user',\n uiConfig: {\n categories: '[]',\n },\n })\n );\n try {\n await TreeRaw.putTree('Invalid', treeData);\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n\n test('5: Put invalid tree [invalid nodes]', async () => {\n expect.assertions(1);\n const treeData = JSON.parse(\n JSON.stringify({\n entryNodeId: 'e301438c-0bd0-429c-ab0c-66126501069a',\n nodes: {\n invalid: 'bad data',\n },\n staticNodes: {},\n description: 'invalid tree def',\n identityResource: 'managed/alpha_user',\n uiConfig: {\n categories: '[]',\n },\n })\n );\n try {\n await TreeRaw.putTree('Invalid', treeData);\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n });\n\n describe('deleteTree()', () => {\n test('0: Method is implemented', async () => {\n expect(TreeRaw.deleteTree).toBeDefined();\n });\n\n test(`1: Delete existing tree ${tree2.name}`, async () => {\n const response = await TreeRaw.deleteTree(tree2.name);\n expect(response).toMatchSnapshot();\n });\n\n test('2: Delete non-existing tree DoesNotExist', async () => {\n expect.assertions(1);\n try {\n await TreeRaw.deleteTree('DoesNotExist');\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n });\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VariablesApi.test.js","names":["pollyContext","autoSetupPolly","describe","test","expect","VariablesRaw","getVariables","toBeDefined","response","toMatchSnapshot","error","data","getVariable","putVariable","setVariableDescription","deleteVariable"],"sources":["api/VariablesApi.test.ts"],"sourcesContent":["import { VariablesRaw } from '../index';\nimport autoSetupPolly from '../utils/AutoSetupPolly';\n\nconst pollyContext = autoSetupPolly();\n\ndescribe('VariablesApi', () => {\n describe('VariablesApi - getVariables()', () => {\n test('getVariables() 0: Method is implemented', async () => {\n expect(VariablesRaw.getVariables).toBeDefined();\n });\n\n test('getVariables() 1: Get all variables - success', async () => {\n const response = await VariablesRaw.getVariables();\n expect(response).toMatchSnapshot();\n });\n\n test('getVariables() 2: Get all variables - error', async () => {\n try {\n await VariablesRaw.getVariables();\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n });\n\n describe('VariablesApi - getVariable()', () => {\n test('getVariable() 0: Method is implemented', async () => {\n expect(VariablesRaw.getVariable).toBeDefined();\n });\n\n test('getVariable() 1: Get existing variable: esv-volkerstestvariable1', async () => {\n const response = await VariablesRaw.getVariable(\n 'esv-volkerstestvariable1'\n );\n expect(response).toMatchSnapshot();\n });\n\n test('getVariable() 2: Get non-existing variable: esv-does-not-exist', async () => {\n try {\n await VariablesRaw.getVariable('esv-does-not-exist');\n } catch (error) {\n // expect(error.response.status).toBe(404);\n expect(error.response.data).toMatchSnapshot();\n }\n });\n });\n\n describe('VariablesApi - putVariable()', () => {\n test('putVariable() 0: Method is implemented', async () => {\n expect(VariablesRaw.putVariable).toBeDefined();\n });\n\n test('putVariable() 1: Create variable: esv-volkerstestvariable2 - success', async () => {\n const response = await VariablesRaw.putVariable(\n 'esv-volkerstestvariable2',\n \"Volker's Test Variable Value\",\n \"Volker's Test Variable Description\"\n );\n expect(response).toMatchSnapshot();\n });\n\n test('putVariable() 2: Create variable: esv-volkerstestvariable2 - error', async () => {\n try {\n await VariablesRaw.putVariable(\n 'esv-volkerstestvariable2',\n \"Volker's Test Variable Value\",\n \"Volker's Test Variable Description\"\n );\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n });\n\n describe('VariablesApi - setVariableDescription()', () => {\n test('setVariableDescription() 0: Method is implemented', async () => {\n expect(VariablesRaw.setVariableDescription).toBeDefined();\n });\n\n test('setVariableDescription() 1: Set variable description: esv-volkerstestvariable2 - success', async () => {\n const response = await VariablesRaw.setVariableDescription(\n 'esv-volkerstestvariable2',\n \"Volker's Updated Test Secret Description\"\n );\n expect(response).toMatchSnapshot();\n });\n\n test('setVariableDescription() 2: Set variable description: esv-volkerstestvariable3 - error', async () => {\n try {\n await VariablesRaw.setVariableDescription(\n 'esv-volkerstestvariable3',\n \"Volker's Updated Test Secret Description\"\n );\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n });\n\n describe('VariablesApi - deleteVariable()', () => {\n test('deleteVariable() 0: Method is implemented', async () => {\n expect(VariablesRaw.deleteVariable).toBeDefined();\n });\n\n test('deleteVariable() 1: Delete variable: esv-volkerstestvariable2 - success', async () => {\n const response = await VariablesRaw.deleteVariable(\n 'esv-volkerstestvariable2'\n );\n expect(response).toMatchSnapshot();\n });\n\n test('deleteVariable() 2: Delete variable: esv-volkerstestvariable3 - error', async () => {\n try {\n await VariablesRaw.deleteVariable('esv-volkerstestvariable3');\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"VariablesApi.test.js","names":["jest","setTimeout","autoSetupPolly","describe","var1","name","value","description","var2","var3","var4","beforeAll","process","env","FRODO_POLLY_MODE","VariablesRaw","getVariable","deleteVariable","error","putVariable","afterAll","test","expect","getVariables","toBeDefined","response","toMatchSnapshot","assertions","data","setVariableDescription"],"sources":["api/VariablesApi.test.ts"],"sourcesContent":["/**\n * To record and update snapshots, you must perform 3 steps in order:\n *\n * 1. Record API responses & update ESM snapshots\n *\n * To record and update ESM snapshots, you must call the test:record\n * script and override all the connection state variables required\n * to connect to the env to record from:\n *\n * FRODO_DEBUG=1 FRODO_HOST=volker-dev npm run test:record VariablesApi\n *\n * The above command assumes that you have a connection profile for\n * 'volker-dev' on your development machine.\n *\n * 2. Update CJS snapshots\n *\n * After recording, the ESM snapshots will already be updated as that happens\n * in one go, but you musty manually update the CJS snapshots by running:\n *\n * FRODO_DEBUG=1 npm run test:update VariablesApi\n *\n * 3. Test your changes\n *\n * If 1 and 2 didn't produce any errors, you are ready to run the tests in\n * replay mode and make sure they all succeed as well:\n *\n * npm run test VariablesApi\n *\n * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output\n * in case things don't function as expected\n */\nimport { jest } from '@jest/globals';\nimport { VariablesRaw } from '../index';\nimport { autoSetupPolly } from '../utils/AutoSetupPolly';\n\n// Increase timeout for this test as pipeline keeps failing with error:\n// Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.\njest.setTimeout(30000);\n\nautoSetupPolly();\n\ndescribe('VariablesApi', () => {\n const var1 = {\n name: 'esv-frodo-test-variable1',\n value: 'Frodo Test Variable One Value',\n description: 'Frodo Test Variable One Description',\n };\n const var2 = {\n name: 'esv-frodo-test-variable2',\n value: 'Frodo Test Variable Two Value',\n description: 'Frodo Test Variable Two Description',\n };\n const var3 = {\n name: 'esv-frodo-test-variable3',\n value: 'Frodo Test Variable Three Value',\n description: 'Frodo Test Variable Three Description',\n };\n const var4 = {\n name: 'esv-frodo-test-variable4',\n value: 'Frodo Test Variable Four Value',\n description: 'Frodo Test Variable Four Description',\n };\n // in recording mode, setup test data before recording\n beforeAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n // setup var1 - delete if exists, then create\n try {\n await VariablesRaw.getVariable(var1.name);\n await VariablesRaw.deleteVariable(var1.name);\n } catch (error) {\n // ignore\n } finally {\n await VariablesRaw.putVariable(var1.name, var1.value, var1.description);\n }\n // setup var2 - delete if exists, then create\n try {\n await VariablesRaw.getVariable(var2.name);\n await VariablesRaw.deleteVariable(var2.name);\n } catch (error) {\n // ignore\n } finally {\n await VariablesRaw.putVariable(var2.name, var2.value, var2.description);\n }\n // setup var3 - delete if exists, then create\n try {\n await VariablesRaw.getVariable(var3.name);\n await VariablesRaw.deleteVariable(var3.name);\n } catch (error) {\n // ignore\n } finally {\n await VariablesRaw.putVariable(var3.name, var3.value, var3.description);\n }\n // setup var4 - delete if exists\n try {\n await VariablesRaw.getVariable(var4.name);\n await VariablesRaw.deleteVariable(var4.name);\n } catch (error) {\n // ignore\n }\n }\n });\n // in recording mode, remove test data after recording\n afterAll(async () => {\n if (process.env.FRODO_POLLY_MODE === 'record') {\n try {\n await VariablesRaw.getVariable(var1.name);\n await VariablesRaw.deleteVariable(var1.name);\n } catch (error) {\n // ignore\n }\n try {\n await VariablesRaw.getVariable(var2.name);\n await VariablesRaw.deleteVariable(var2.name);\n } catch (error) {\n // ignore\n }\n try {\n await VariablesRaw.getVariable(var3.name);\n await VariablesRaw.deleteVariable(var3.name);\n } catch (error) {\n // ignore\n }\n try {\n await VariablesRaw.getVariable(var4.name);\n await VariablesRaw.deleteVariable(var4.name);\n } catch (error) {\n // ignore\n }\n }\n });\n\n describe('getVariables()', () => {\n test('0: Method is implemented', async () => {\n expect(VariablesRaw.getVariables).toBeDefined();\n });\n\n test('1: Get all variables - success', async () => {\n const response = await VariablesRaw.getVariables();\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('getVariable()', () => {\n test('0: Method is implemented', async () => {\n expect(VariablesRaw.getVariable).toBeDefined();\n });\n\n test(`1: Get existing variable: ${var1.name}`, async () => {\n const response = await VariablesRaw.getVariable(var1.name);\n expect(response).toMatchSnapshot();\n });\n\n test('2: Get non-existing variable: esv-does-not-exist', async () => {\n expect.assertions(1);\n try {\n await VariablesRaw.getVariable('esv-does-not-exist');\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n });\n\n describe('putVariable()', () => {\n test('0: Method is implemented', async () => {\n expect(VariablesRaw.putVariable).toBeDefined();\n });\n\n test(`2: Create new variable: ${var4.name} - success`, async () => {\n const response = await VariablesRaw.putVariable(\n var4.name,\n var4.value,\n var4.description\n );\n expect(response).toMatchSnapshot();\n });\n });\n\n describe('setVariableDescription()', () => {\n test('0: Method is implemented', async () => {\n expect(VariablesRaw.setVariableDescription).toBeDefined();\n });\n\n test(`1: Set existing variable's description: ${var2.name} - success`, async () => {\n const response = await VariablesRaw.setVariableDescription(\n var2.name,\n 'Updated Frodo Test Variable Two Description'\n );\n expect(response).toMatchSnapshot();\n });\n\n test(\"2: Set non-existing variable's description: esv-does-not-exist - error\", async () => {\n expect.assertions(1);\n try {\n await VariablesRaw.setVariableDescription(\n 'esv-does-not-exist',\n 'Updated Frodo Test Variable Description'\n );\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n });\n\n describe('deleteVariable()', () => {\n test('0: Method is implemented', async () => {\n expect(VariablesRaw.deleteVariable).toBeDefined();\n });\n\n test(`1: Delete existing variable: ${var3.name} - success`, async () => {\n const response = await VariablesRaw.deleteVariable(var3.name);\n expect(response).toMatchSnapshot();\n });\n\n test('2: Delete non-existing variable: esv-does-not-exist - error', async () => {\n expect.assertions(1);\n try {\n await VariablesRaw.deleteVariable('esv-does-not-exist');\n } catch (error) {\n expect(error.response.data).toMatchSnapshot();\n }\n });\n });\n});\n"],"mappings":"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"}
@@ -7,6 +7,7 @@ exports.deleteDeepByKey = deleteDeepByKey;
7
7
  exports.getCurrentRealmName = getCurrentRealmName;
8
8
  exports.getCurrentRealmPath = getCurrentRealmPath;
9
9
  exports.getRealmName = getRealmName;
10
+ exports.getRealmPath = getRealmPath;
10
11
  exports.getTenantURL = getTenantURL;
11
12
  exports.parseQueryString = parseQueryString;
12
13
  exports.parseUrl = parseUrl;
@@ -14,11 +15,11 @@ var state = _interopRequireWildcard(require("../../shared/State"));
14
15
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
16
17
  /**
17
- * Get current realm path
18
- * @returns {String} a CREST-compliant realm path, e.g. /realms/root/realms/alpha
18
+ * Get realm path
19
+ * @param {string} realm realm
20
+ * @returns {string} a CREST-compliant realm path, e.g. /realms/root/realms/alpha
19
21
  */
20
- function getCurrentRealmPath() {
21
- var realm = state.getRealm();
22
+ function getRealmPath(realm) {
22
23
  if (realm.startsWith('/')) {
23
24
  realm = realm.substring(1);
24
25
  }
@@ -27,6 +28,14 @@ function getCurrentRealmPath() {
27
28
  return realmPath;
28
29
  }
29
30
 
31
+ /**
32
+ * Get current realm path
33
+ * @returns {string} a CREST-compliant realm path, e.g. /realms/root/realms/alpha
34
+ */
35
+ function getCurrentRealmPath() {
36
+ return getRealmPath(state.getRealm());
37
+ }
38
+
30
39
  /**
31
40
  * Get current realm name
32
41
  * @returns {String} name of the current realm. /alpha -> alpha
@@ -1 +1 @@
1
- {"version":3,"file":"ApiUtils.js","names":["getCurrentRealmPath","realm","state","getRealm","startsWith","substring","elements","concat","split","filter","element","realmPath","join","getCurrentRealmName","components","realmName","length","getRealmName","getTenantURL","tenant","parsedUrl","URL","protocol","host","deleteDeepByKey","object","obj","keys","Object","key","indexOf","parseUrl","href","m","match","r","hash","hostname","origin","pathname","port","search","username","password","searchParam","toUpperCase","query","substr","vars","i","pair","decodeURIComponent","parseQueryString"],"sources":["api/utils/ApiUtils.ts"],"sourcesContent":["import * as state from '../../shared/State';\n\n/**\n * Get current realm path\n * @returns {String} a CREST-compliant realm path, e.g. /realms/root/realms/alpha\n */\nexport function getCurrentRealmPath() {\n let realm = state.getRealm();\n if (realm.startsWith('/')) {\n realm = realm.substring(1);\n }\n const elements = ['root'].concat(\n realm.split('/').filter((element) => element !== '')\n );\n const realmPath = `/realms/${elements.join('/realms/')}`;\n return realmPath;\n}\n\n/**\n * Get current realm name\n * @returns {String} name of the current realm. /alpha -> alpha\n */\nexport function getCurrentRealmName() {\n const realm = state.getRealm();\n const components = realm.split('/');\n let realmName = '/';\n if (components.length > 0 && realmName !== realm) {\n realmName = components[components.length - 1];\n }\n return realmName;\n}\n\n/**\n * Get current realm name\n * @param {String} realm realm\n * @returns {String} name of the realm. /alpha -> alpha\n */\nexport function getRealmName(realm) {\n const components = realm.split('/');\n let realmName = '/';\n if (components.length > 0 && realmName !== realm) {\n realmName = components[components.length - 1];\n }\n return realmName;\n}\n\n/**\n * Get tenant base URL\n * @param {String} tenant tenant URL with path and query params\n * @returns {String} tenant base URL without path and query params\n */\nexport function getTenantURL(tenant) {\n const parsedUrl = new URL(tenant);\n return `${parsedUrl.protocol}//${parsedUrl.host}`;\n}\n\n/**\n * Deep delete keys and their values from an input object. If a key in object contains substring, the key an its value is deleted.\n * @param {Object} object input object that needs keys removed\n * @param {String} substring substring to search for in key\n * @returns the modified object without the matching keys and their values\n */\nexport function deleteDeepByKey(object, substring) {\n const obj = object;\n const keys = Object.keys(obj);\n for (const key of keys) {\n if (key.indexOf(substring) > 0) {\n delete obj[key];\n } else if (Object(obj[key]) === obj[key]) {\n obj[key] = deleteDeepByKey(obj[key], substring);\n }\n }\n return obj;\n}\n\n/*\n * Parse a URL into its components and make them easily accessible by name\n *\n * Use in a Scripte Decision Node Script as follows:\n * var referer = parseUrl(requestHeaders.get(\"referer\").get(0));\n * var origin = referer.origin;\n *\n * e.g.: https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/\n * {\n * hash: '#/',\n * host: 'openam-volker-dev.forgeblocks.com',\n * hostname: 'openam-volker-dev.forgeblocks.com',\n * href: 'https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/',\n * origin: 'https://openam-volker-dev.forgeblocks.com',\n * pathname: '/am/XUI/',\n * port: '',\n * protocol: 'https',\n * search: '?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim',\n * username: '',\n * password: '',\n * searchParam: {\n * realm: '/bravo',\n * authIndexType: 'service',\n * authIndexValue: 'InitiateOwnerClaim'\n * }\n * }\n */\nexport function parseUrl(href) {\n const m = href.match(\n /^(([^:/?#]+):?(?:\\/\\/((?:([^/?#:]*):([^/?#:]*)@)?([^/?#:]*)(?::([^/?#:]*))?)))?([^?#]*)(\\?[^#]*)?(#.*)?$/\n ),\n r = {\n hash: m[10] || '', // #/\n host: m[3] || '', // openam-volker-dev.forgeblocks.com\n hostname: m[6] || '', // openam-volker-dev.forgeblocks.com\n href: m[0] || '', // https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/\n origin: m[1] || '', // https://openam-volker-dev.forgeblocks.com\n pathname: m[8] || (m[1] ? '/' : ''), // /am/XUI/\n port: m[7] || '', //\n protocol: m[2] || '', // https\n search: m[9] || '', // ?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim\n username: m[4] || '', //\n password: m[5] || '', //\n searchParam: {}, // { realm: '/bravo',\n // authIndexType: 'service',\n // authIndexValue: 'InitiateOwnerClaim' }\n };\n if (r.protocol.length == 2) {\n r.protocol = 'file:///' + r.protocol.toUpperCase();\n r.origin = r.protocol + '//' + r.host;\n }\n if (r.search.length > 2) {\n const query = r.search.indexOf('?') === 0 ? r.search.substr(1) : r.search;\n const vars = query.split('&');\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=');\n r.searchParam[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n }\n r.href = r.origin + r.pathname + r.search + r.hash;\n return r;\n}\n\nexport function parseQueryString(query: string) {\n const vars = query.split('&');\n const searchParam = {};\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=');\n searchParam[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return searchParam;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ApiUtils.js","names":["getRealmPath","realm","startsWith","substring","elements","concat","split","filter","element","realmPath","join","getCurrentRealmPath","state","getRealm","getCurrentRealmName","components","realmName","length","getRealmName","getTenantURL","tenant","parsedUrl","URL","protocol","host","deleteDeepByKey","object","obj","keys","Object","key","indexOf","parseUrl","href","m","match","r","hash","hostname","origin","pathname","port","search","username","password","searchParam","toUpperCase","query","substr","vars","i","pair","decodeURIComponent","parseQueryString"],"sources":["api/utils/ApiUtils.ts"],"sourcesContent":["import * as state from '../../shared/State';\n\n/**\n * Get realm path\n * @param {string} realm realm\n * @returns {string} a CREST-compliant realm path, e.g. /realms/root/realms/alpha\n */\nexport function getRealmPath(realm: string) {\n if (realm.startsWith('/')) {\n realm = realm.substring(1);\n }\n const elements = ['root'].concat(\n realm.split('/').filter((element) => element !== '')\n );\n const realmPath = `/realms/${elements.join('/realms/')}`;\n return realmPath;\n}\n\n/**\n * Get current realm path\n * @returns {string} a CREST-compliant realm path, e.g. /realms/root/realms/alpha\n */\nexport function getCurrentRealmPath() {\n return getRealmPath(state.getRealm());\n}\n\n/**\n * Get current realm name\n * @returns {String} name of the current realm. /alpha -> alpha\n */\nexport function getCurrentRealmName() {\n const realm = state.getRealm();\n const components = realm.split('/');\n let realmName = '/';\n if (components.length > 0 && realmName !== realm) {\n realmName = components[components.length - 1];\n }\n return realmName;\n}\n\n/**\n * Get current realm name\n * @param {String} realm realm\n * @returns {String} name of the realm. /alpha -> alpha\n */\nexport function getRealmName(realm) {\n const components = realm.split('/');\n let realmName = '/';\n if (components.length > 0 && realmName !== realm) {\n realmName = components[components.length - 1];\n }\n return realmName;\n}\n\n/**\n * Get tenant base URL\n * @param {String} tenant tenant URL with path and query params\n * @returns {String} tenant base URL without path and query params\n */\nexport function getTenantURL(tenant) {\n const parsedUrl = new URL(tenant);\n return `${parsedUrl.protocol}//${parsedUrl.host}`;\n}\n\n/**\n * Deep delete keys and their values from an input object. If a key in object contains substring, the key an its value is deleted.\n * @param {Object} object input object that needs keys removed\n * @param {String} substring substring to search for in key\n * @returns the modified object without the matching keys and their values\n */\nexport function deleteDeepByKey(object, substring) {\n const obj = object;\n const keys = Object.keys(obj);\n for (const key of keys) {\n if (key.indexOf(substring) > 0) {\n delete obj[key];\n } else if (Object(obj[key]) === obj[key]) {\n obj[key] = deleteDeepByKey(obj[key], substring);\n }\n }\n return obj;\n}\n\n/*\n * Parse a URL into its components and make them easily accessible by name\n *\n * Use in a Scripte Decision Node Script as follows:\n * var referer = parseUrl(requestHeaders.get(\"referer\").get(0));\n * var origin = referer.origin;\n *\n * e.g.: https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/\n * {\n * hash: '#/',\n * host: 'openam-volker-dev.forgeblocks.com',\n * hostname: 'openam-volker-dev.forgeblocks.com',\n * href: 'https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/',\n * origin: 'https://openam-volker-dev.forgeblocks.com',\n * pathname: '/am/XUI/',\n * port: '',\n * protocol: 'https',\n * search: '?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim',\n * username: '',\n * password: '',\n * searchParam: {\n * realm: '/bravo',\n * authIndexType: 'service',\n * authIndexValue: 'InitiateOwnerClaim'\n * }\n * }\n */\nexport function parseUrl(href) {\n const m = href.match(\n /^(([^:/?#]+):?(?:\\/\\/((?:([^/?#:]*):([^/?#:]*)@)?([^/?#:]*)(?::([^/?#:]*))?)))?([^?#]*)(\\?[^#]*)?(#.*)?$/\n ),\n r = {\n hash: m[10] || '', // #/\n host: m[3] || '', // openam-volker-dev.forgeblocks.com\n hostname: m[6] || '', // openam-volker-dev.forgeblocks.com\n href: m[0] || '', // https://openam-volker-dev.forgeblocks.com/am/XUI/?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim#/\n origin: m[1] || '', // https://openam-volker-dev.forgeblocks.com\n pathname: m[8] || (m[1] ? '/' : ''), // /am/XUI/\n port: m[7] || '', //\n protocol: m[2] || '', // https\n search: m[9] || '', // ?realm=/bravo&authIndexType=service&authIndexValue=InitiateOwnerClaim\n username: m[4] || '', //\n password: m[5] || '', //\n searchParam: {}, // { realm: '/bravo',\n // authIndexType: 'service',\n // authIndexValue: 'InitiateOwnerClaim' }\n };\n if (r.protocol.length == 2) {\n r.protocol = 'file:///' + r.protocol.toUpperCase();\n r.origin = r.protocol + '//' + r.host;\n }\n if (r.search.length > 2) {\n const query = r.search.indexOf('?') === 0 ? r.search.substr(1) : r.search;\n const vars = query.split('&');\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=');\n r.searchParam[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n }\n r.href = r.origin + r.pathname + r.search + r.hash;\n return r;\n}\n\nexport function parseQueryString(query: string) {\n const vars = query.split('&');\n const searchParam = {};\n for (let i = 0; i < vars.length; i++) {\n const pair = vars[i].split('=');\n searchParam[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]);\n }\n return searchParam;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ApiUtils.test.js","names":["test","skip","expect","toBe","REALM_PATH","state","setRealm","testString","getCurrentRealmPath","URL_WITH_TENANT","parsed","getTenantURL","trap","toThrow"],"sources":["api/utils/ApiUtils.test.ts"],"sourcesContent":["import { getCurrentRealmPath, getTenantURL } from './ApiUtils';\nimport * as state from '../../shared/State';\n\ntest.skip('replaceAll should be deleted because it works like native String.replaceAll', () => {\n // Arrange\n // Act\n // Assert\n expect(true).toBe(false);\n});\n\ntest('getCurrentRealmPath should prepend realmPath to specified realm', () => {\n // Arrange\n const REALM_PATH = 'alpha';\n state.setRealm(REALM_PATH);\n // Act\n const testString = getCurrentRealmPath();\n // Assert\n expect(testString).toBe('/realms/root/realms/alpha');\n});\n\ntest('getCurrentRealmPath should prepend realmPath to specified realm with leading slash', () => {\n // Arrange\n const REALM_PATH = '/alpha';\n state.setRealm(REALM_PATH);\n // Act\n const testString = getCurrentRealmPath();\n // Assert\n expect(testString).toBe('/realms/root/realms/alpha');\n});\n\ntest('getCurrentRealmPath \"/\" should resolve to root', () => {\n // Arrange\n const REALM_PATH = '/';\n state.setRealm(REALM_PATH);\n // Act\n const testString = getCurrentRealmPath();\n // Assert\n expect(testString).toBe('/realms/root');\n});\n\ntest('getCurrentRealmPath should handle multiple leading slashes', () => {\n // Arrange\n const REALM_PATH = '//alpha';\n state.setRealm(REALM_PATH);\n // Act\n const testString = getCurrentRealmPath();\n // Assert\n expect(testString).toBe('/realms/root/realms/alpha');\n});\n\ntest('getCurrentRealmPath should handle nested realms', () => {\n // Arrange\n const REALM_PATH = '/parent/child';\n state.setRealm(REALM_PATH);\n // Act\n const testString = getCurrentRealmPath();\n // Assert\n expect(testString).toBe('/realms/root/realms/parent/realms/child');\n});\n\ntest('getTenantURL should parse the https protocol and the hostname', () => {\n // Arrange\n const URL_WITH_TENANT =\n 'https://example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n\n // Act\n const parsed = getTenantURL(URL_WITH_TENANT);\n\n // Assert\n expect(parsed).toBe('https://example.frodo.com');\n});\n\ntest('getTenantURL should not validate protocol', () => {\n // Arrange\n const URL_WITH_TENANT =\n 'ftp://example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n // Act\n const parsed = getTenantURL(URL_WITH_TENANT);\n // Assert\n expect(parsed).toBe('ftp://example.frodo.com');\n});\n\ntest('getTenantURL Invalid URL should throw', () => {\n // Arrange\n const URL_WITH_TENANT =\n '//:example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n // Act\n const trap = () => {\n getTenantURL(URL_WITH_TENANT);\n };\n // Assert\n expect(trap).toThrow('Invalid URL');\n});\n"],"mappings":";;AAAA;AACA;AAA4C;AAAA;AAE5CA,IAAI,CAACC,IAAI,CAAC,6EAA6E,EAAE,MAAM;EAC7F;EACA;EACA;EACAC,MAAM,CAAC,IAAI,CAAC,CAACC,IAAI,CAAC,KAAK,CAAC;AAC1B,CAAC,CAAC;AAEFH,IAAI,CAAC,iEAAiE,EAAE,MAAM;EAC5E;EACA,IAAMI,UAAU,GAAG,OAAO;EAC1BC,KAAK,CAACC,QAAQ,CAACF,UAAU,CAAC;EAC1B;EACA,IAAMG,UAAU,GAAG,IAAAC,6BAAmB,GAAE;EACxC;EACAN,MAAM,CAACK,UAAU,CAAC,CAACJ,IAAI,CAAC,2BAA2B,CAAC;AACtD,CAAC,CAAC;AAEFH,IAAI,CAAC,oFAAoF,EAAE,MAAM;EAC/F;EACA,IAAMI,UAAU,GAAG,QAAQ;EAC3BC,KAAK,CAACC,QAAQ,CAACF,UAAU,CAAC;EAC1B;EACA,IAAMG,UAAU,GAAG,IAAAC,6BAAmB,GAAE;EACxC;EACAN,MAAM,CAACK,UAAU,CAAC,CAACJ,IAAI,CAAC,2BAA2B,CAAC;AACtD,CAAC,CAAC;AAEFH,IAAI,CAAC,gDAAgD,EAAE,MAAM;EAC3D;EACA,IAAMI,UAAU,GAAG,GAAG;EACtBC,KAAK,CAACC,QAAQ,CAACF,UAAU,CAAC;EAC1B;EACA,IAAMG,UAAU,GAAG,IAAAC,6BAAmB,GAAE;EACxC;EACAN,MAAM,CAACK,UAAU,CAAC,CAACJ,IAAI,CAAC,cAAc,CAAC;AACzC,CAAC,CAAC;AAEFH,IAAI,CAAC,4DAA4D,EAAE,MAAM;EACvE;EACA,IAAMI,UAAU,GAAG,SAAS;EAC5BC,KAAK,CAACC,QAAQ,CAACF,UAAU,CAAC;EAC1B;EACA,IAAMG,UAAU,GAAG,IAAAC,6BAAmB,GAAE;EACxC;EACAN,MAAM,CAACK,UAAU,CAAC,CAACJ,IAAI,CAAC,2BAA2B,CAAC;AACtD,CAAC,CAAC;AAEFH,IAAI,CAAC,iDAAiD,EAAE,MAAM;EAC5D;EACA,IAAMI,UAAU,GAAG,eAAe;EAClCC,KAAK,CAACC,QAAQ,CAACF,UAAU,CAAC;EAC1B;EACA,IAAMG,UAAU,GAAG,IAAAC,6BAAmB,GAAE;EACxC;EACAN,MAAM,CAACK,UAAU,CAAC,CAACJ,IAAI,CAAC,yCAAyC,CAAC;AACpE,CAAC,CAAC;AAEFH,IAAI,CAAC,+DAA+D,EAAE,MAAM;EAC1E;EACA,IAAMS,eAAe,GACnB,kEAAkE;;EAEpE;EACA,IAAMC,MAAM,GAAG,IAAAC,sBAAY,EAACF,eAAe,CAAC;;EAE5C;EACAP,MAAM,CAACQ,MAAM,CAAC,CAACP,IAAI,CAAC,2BAA2B,CAAC;AAClD,CAAC,CAAC;AAEFH,IAAI,CAAC,2CAA2C,EAAE,MAAM;EACtD;EACA,IAAMS,eAAe,GACnB,gEAAgE;EAClE;EACA,IAAMC,MAAM,GAAG,IAAAC,sBAAY,EAACF,eAAe,CAAC;EAC5C;EACAP,MAAM,CAACQ,MAAM,CAAC,CAACP,IAAI,CAAC,yBAAyB,CAAC;AAChD,CAAC,CAAC;AAEFH,IAAI,CAAC,uCAAuC,EAAE,MAAM;EAClD;EACA,IAAMS,eAAe,GACnB,6DAA6D;EAC/D;EACA,IAAMG,IAAI,GAAG,MAAM;IACjB,IAAAD,sBAAY,EAACF,eAAe,CAAC;EAC/B,CAAC;EACD;EACAP,MAAM,CAACU,IAAI,CAAC,CAACC,OAAO,CAAC,aAAa,CAAC;AACrC,CAAC,CAAC"}
1
+ {"version":3,"file":"ApiUtils.test.js","names":["describe","only","test","realm","testString","getRealmPath","expect","toBe","state","setRealm","getCurrentRealmPath","URL_WITH_TENANT","parsed","getTenantURL","trap","toThrow"],"sources":["api/utils/ApiUtils.test.ts"],"sourcesContent":["import { getRealmPath, getCurrentRealmPath, getTenantURL } from './ApiUtils';\nimport * as state from '../../shared/State';\n\ndescribe.only('ApiUtils', () => {\n describe.only('getRealmPath()', () => {\n test(\"Should prepend realm path to specified realm 'alpha'\", () => {\n const realm = 'alpha';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should prepend realmPath to specified realm with leading slash', () => {\n const realm = '/alpha';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test(\"'/' should resolve to root\", () => {\n const realm = '/';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root');\n });\n\n test('Should handle multiple leading slashes', () => {\n const realm = '//alpha';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should handle nested realms', () => {\n const realm = '/parent/child';\n const testString = getRealmPath(realm);\n expect(testString).toBe('/realms/root/realms/parent/realms/child');\n });\n });\n\n describe.only('getCurrentRealmPath()', () => {\n test(\"Should prepend realm path to specified realm 'alpha'\", () => {\n const realm = 'alpha';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should prepend realmPath to specified realm with leading slash', () => {\n const realm = '/alpha';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test(\"'/' should resolve to root\", () => {\n const realm = '/';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root');\n });\n\n test('Should handle multiple leading slashes', () => {\n const realm = '//alpha';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/alpha');\n });\n\n test('Should handle nested realms', () => {\n const realm = '/parent/child';\n state.setRealm(realm);\n const testString = getCurrentRealmPath();\n expect(testString).toBe('/realms/root/realms/parent/realms/child');\n });\n });\n\n describe.only('getTenantURL()', () => {\n test('Should parse the https protocol and the hostname', () => {\n const URL_WITH_TENANT =\n 'https://example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n\n const parsed = getTenantURL(URL_WITH_TENANT);\n\n expect(parsed).toBe('https://example.frodo.com');\n });\n\n test('Should not validate protocol', () => {\n const URL_WITH_TENANT =\n 'ftp://example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n const parsed = getTenantURL(URL_WITH_TENANT);\n expect(parsed).toBe('ftp://example.frodo.com');\n });\n\n test('Invalid URL should throw', () => {\n const URL_WITH_TENANT =\n '//:example.frodo.com/am/ui-admin/#realms/%2Falpha/dashboard';\n const trap = () => {\n getTenantURL(URL_WITH_TENANT);\n };\n expect(trap).toThrow('Invalid URL');\n });\n });\n});\n"],"mappings":"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"}