@rockcarver/frodo-lib 0.17.2-0 → 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 (122) hide show
  1. package/CHANGELOG.md +5 -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 +0 -7
  17. package/cjs/ops/AuthenticateOps.js.map +1 -1
  18. package/cjs/ops/SecretsOps.js +3 -3
  19. package/cjs/ops/SecretsOps.js.map +1 -1
  20. package/cjs/ops/VariablesOps.js +3 -3
  21. package/cjs/ops/VariablesOps.js.map +1 -1
  22. package/cjs/shared/State.js +1 -1
  23. package/cjs/shared/State.js.map +1 -1
  24. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_mytestrun_com.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent1.json} +0 -2
  25. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/{ig_chico.json → FrodoOpsTestGatewayAgent2.json} +0 -2
  26. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ig_chico.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent3.json} +0 -2
  27. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/{ig_mytestrun_com.json → FrodoOpsTestGatewayAgent4.json} +0 -2
  28. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/api_client.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent5.json} +0 -2
  29. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/{api_client.json → FrodoOpsTestGatewayAgent6.json} +0 -2
  30. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent7.json +20 -0
  31. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent8.json +20 -0
  32. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent9.json +30 -0
  33. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent1.json +30 -0
  34. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent2.json +20 -0
  35. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent3.json +20 -0
  36. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/{javaAgent.json → FrodoOpsTestJavaAgent1.json} +0 -2
  37. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/{tomcatagent.json → FrodoOpsTestJavaAgent2.json} +0 -2
  38. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/tomcatagent.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent3.json} +0 -2
  39. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/javaAgent.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent4.json} +0 -2
  40. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent5.json +621 -0
  41. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent6.json +628 -0
  42. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent7.json +628 -0
  43. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent8.json +628 -0
  44. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent9.json +628 -0
  45. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent1.json +621 -0
  46. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent2.json +628 -0
  47. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent3.json +628 -0
  48. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/apacheagent.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent1.json} +0 -2
  49. package/{esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/webserver.json → cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent2.json} +0 -2
  50. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/{webserver.json → FrodoOpsTestWebAgent3.json} +0 -2
  51. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/{apacheagent.json → FrodoOpsTestWebAgent4.json} +0 -2
  52. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent5.json +454 -0
  53. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent6.json +453 -0
  54. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent7.json +453 -0
  55. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent8.json +453 -0
  56. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent9.json +453 -0
  57. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent1.json +454 -0
  58. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent2.json +453 -0
  59. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent3.json +453 -0
  60. package/esm/api/AgentApi.mjs +1 -1
  61. package/esm/api/AgentApi.test.mjs +323 -246
  62. package/esm/api/AuthenticateApi.mjs +16 -12
  63. package/esm/api/AuthenticateApi.test.mjs +77 -35
  64. package/esm/api/NodeApi.test.mjs +248 -914
  65. package/esm/api/SecretsApi.test.mjs +252 -245
  66. package/esm/api/TreeApi.test.mjs +190 -105
  67. package/esm/api/VariablesApi.test.mjs +108 -12
  68. package/esm/api/utils/ApiUtils.mjs +12 -4
  69. package/esm/api/utils/ApiUtils.test.mjs +80 -79
  70. package/esm/ops/AgentOps.test.mjs +780 -1210
  71. package/esm/ops/AuthenticateOps.mjs +0 -7
  72. package/esm/ops/SecretsOps.mjs +3 -3
  73. package/esm/ops/VariablesOps.mjs +3 -3
  74. package/esm/shared/State.mjs +1 -1
  75. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent1.json +30 -0
  76. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent2.json +20 -0
  77. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent3.json +20 -0
  78. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent4.json +30 -0
  79. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent5.json +20 -0
  80. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent6.json +20 -0
  81. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent7.json +20 -0
  82. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent8.json +20 -0
  83. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoOpsTestGatewayAgent9.json +30 -0
  84. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent1.json +30 -0
  85. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent2.json +20 -0
  86. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/FrodoTestGatewayAgent3.json +20 -0
  87. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent1.json +621 -0
  88. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent2.json +628 -0
  89. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent3.json +628 -0
  90. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent4.json +621 -0
  91. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent5.json +621 -0
  92. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent6.json +628 -0
  93. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent7.json +628 -0
  94. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent8.json +628 -0
  95. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoOpsTestJavaAgent9.json +628 -0
  96. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent1.json +621 -0
  97. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent2.json +628 -0
  98. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/J2EEAgent/FrodoTestJavaAgent3.json +628 -0
  99. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent1.json +454 -0
  100. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent2.json +453 -0
  101. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent3.json +453 -0
  102. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent4.json +454 -0
  103. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent5.json +454 -0
  104. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent6.json +453 -0
  105. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent7.json +453 -0
  106. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent8.json +453 -0
  107. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoOpsTestWebAgent9.json +453 -0
  108. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent1.json +454 -0
  109. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent2.json +453 -0
  110. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/WebAgent/FrodoTestWebAgent3.json +453 -0
  111. package/package.json +1 -1
  112. package/types/api/AgentApi.d.ts.map +1 -1
  113. package/types/api/AuthenticateApi.d.ts +11 -2
  114. package/types/api/AuthenticateApi.d.ts.map +1 -1
  115. package/types/api/utils/ApiUtils.d.ts +7 -1
  116. package/types/api/utils/ApiUtils.d.ts.map +1 -1
  117. package/types/ops/AuthenticateOps.d.ts.map +1 -1
  118. package/types/ops/SecretsOps.d.ts.map +1 -1
  119. package/types/ops/VariablesOps.d.ts.map +1 -1
  120. package/types/shared/State.d.ts.map +1 -1
  121. package/cjs/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +0 -22
  122. package/esm/test/mocks/AgentApi/getAgentByTypeAndId/IdentityGatewayAgent/ajays_client.json +0 -22
@@ -1,39 +1,81 @@
1
- import axios from 'axios';
2
- import MockAdapter from 'axios-mock-adapter';
1
+ /**
2
+ * To record and update snapshots, you must perform 3 steps in order:
3
+ *
4
+ * 1. Record API responses & update ESM snapshots
5
+ *
6
+ * To record and update ESM snapshots, you must call the test:record_noauth
7
+ * script and override all the connection state variables supplied to the
8
+ * getTokens() function by the test to connect to the env to record from:
9
+ *
10
+ * FRODO_DEBUG=1 \
11
+ * FRODO_HOST=https://openam-volker-dev.forgeblocks.com/am \
12
+ * FRODO_REALM=alpha \
13
+ * FRODO_USERNAME=vscheuber@gmail.com \
14
+ * FRODO_PASSWORD='S3cr3!S@uc3' \
15
+ * FRODO_AUTHENTICATION_SERVICE=PasswordGrant \
16
+ * npm run test:record_noauth AuthenticateApi
17
+ *
18
+ * 2. Update CJS snapshots
19
+ *
20
+ * After recording, the ESM snapshots will already be updated as that happens
21
+ * in one go, but you musty manually update the CJS snapshots by running:
22
+ *
23
+ * FRODO_DEBUG=1 npm run test:update AuthenticateApi
24
+ *
25
+ * 3. Test your changes
26
+ *
27
+ * If 1 and 2 didn't produce any errors, you are ready to run the tests in
28
+ * replay mode and make sure they all succeed as well:
29
+ *
30
+ * npm run test AuthenticateApi
31
+ *
32
+ * Note: FRODO_DEBUG=1 is optional and enables debug logging for some output
33
+ * in case things don't function as expected
34
+ */
3
35
  import { AuthenticateRaw, state } from '../index';
4
- import * as global from '../storage/StaticStorage';
5
- import { getTreeStepResponse, mockStep } from '../test/mocks/ForgeRockApiMockEngine';
6
- const mock = new MockAdapter(axios);
7
- state.setHost('https://openam-frodo-dev.forgeblocks.com/am');
8
- state.setUsername('volker.scheuber@forgerock.com');
9
- state.setPassword('Sup3rS3cr3t!');
10
- state.setRealm('alpha');
11
- state.setCookieName('cookieName');
12
- state.setCookieValue('cookieValue');
13
- state.setDeploymentType(global.CLOUD_DEPLOYMENT_TYPE_KEY);
14
- describe.only('AuthenticateApi - step()', () => {
15
- test('step() 0: Method is implemented', async () => {
16
- expect(AuthenticateRaw.step).toBeDefined();
17
- });
18
- test('step() 1: Initial step - get callbacks', async () => {
19
- mockStep(mock);
20
- const config = {
21
- headers: {
22
- 'X-OpenAM-Username': state.getUsername(),
23
- 'X-OpenAM-Password': state.getPassword()
24
- }
25
- };
26
- const response = await AuthenticateRaw.step({}, config);
27
- expect(response.authId).toBeTruthy();
28
- expect(response.callbacks).toBeTruthy();
29
- });
30
- test('step() 2: Final step - get session', async () => {
31
- const body = getTreeStepResponse(undefined, undefined);
32
- mockStep(mock);
33
- const response = await AuthenticateRaw.step(body);
34
- expect(response.authId).toBeFalsy();
35
- expect(response.callbacks).toBeFalsy();
36
- expect(response.tokenId).toBeTruthy();
36
+ import { autoSetupPolly, defaultMatchRequestsBy } from '../utils/AutoSetupPolly';
37
+
38
+ // need to modify the default matching rules to allow the mocking to work for an authentication flow.
39
+ const matchConfig = defaultMatchRequestsBy();
40
+ matchConfig.body = false; // oauth flows are tricky because of the PKCE challenge, which is different for each request
41
+ matchConfig.order = true; // since we instruct Polly not to match the body, we need to enable ordering of the requests
42
+
43
+ autoSetupPolly(matchConfig);
44
+ describe('AuthenticateApi', () => {
45
+ describe('step()', () => {
46
+ test('0: Method is implemented', async () => {
47
+ expect(AuthenticateRaw.step).toBeDefined();
48
+ });
49
+ test("1: Single step login journey 'PasswordGrant'", async () => {
50
+ state.setHost(process.env.FRODO_HOST || 'https://openam-frodo-dev.forgeblocks.com/am');
51
+ state.setRealm(process.env.FRODO_REALM || 'alpha');
52
+ state.setUsername(process.env.FRODO_USERNAME || 'mockUser');
53
+ state.setPassword(process.env.FRODO_PASSWORD || 'mockPassword');
54
+ state.setAuthenticationService(process.env.FRODO_AUTHENTICATION_SERVICE || 'PasswordGrant');
55
+ const config = {
56
+ headers: {
57
+ 'X-OpenAM-Username': state.getUsername(),
58
+ 'X-OpenAM-Password': state.getPassword()
59
+ }
60
+ };
61
+ const response1 = await AuthenticateRaw.step({}, config, state.getRealm());
62
+ expect(response1).toMatchSnapshot();
63
+ });
64
+ test("2: Two step login journey 'PasswordGrant'", async () => {
65
+ state.setHost(process.env.FRODO_HOST || 'https://openam-frodo-dev.forgeblocks.com/am');
66
+ state.setRealm(process.env.FRODO_REALM || 'alpha');
67
+ state.setUsername(process.env.FRODO_USERNAME || 'mockUser');
68
+ state.setPassword(process.env.FRODO_PASSWORD || 'mockPassword');
69
+ state.setAuthenticationService(process.env.FRODO_AUTHENTICATION_SERVICE || 'PasswordGrant');
70
+ const response1 = await AuthenticateRaw.step({}, {}, state.getRealm());
71
+ expect(response1).toMatchSnapshot();
72
+ const body = AuthenticateRaw.fillCallbacks(response1, {
73
+ IDToken1: state.getUsername(),
74
+ IDToken2: state.getPassword()
75
+ });
76
+ const response2 = await AuthenticateRaw.step(body, {}, state.getRealm());
77
+ expect(response2).toMatchSnapshot();
78
+ });
37
79
  });
38
80
  });
39
81
  //# sourceMappingURL=AuthenticateApi.test.js.map