@rockcarver/frodo-cli 0.10.4 → 0.11.1-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 (247) hide show
  1. package/CHANGELOG.md +13 -1
  2. package/README.md +3 -3
  3. package/package.json +17 -15
  4. package/src/app.js +7 -6
  5. package/src/cli/_template/cmd-delete.js +9 -8
  6. package/src/cli/_template/cmd-describe.js +9 -8
  7. package/src/cli/_template/cmd-export.js +9 -8
  8. package/src/cli/_template/cmd-import.js +9 -8
  9. package/src/cli/_template/cmd-list.js +9 -8
  10. package/src/cli/_template/cmd-sub1-delete.js +9 -8
  11. package/src/cli/_template/cmd-sub1-describe.js +9 -8
  12. package/src/cli/_template/cmd-sub1-export.js +9 -8
  13. package/src/cli/_template/cmd-sub1-import.js +9 -8
  14. package/src/cli/_template/cmd-sub1-list.js +9 -8
  15. package/src/cli/_template/cmd-sub2-delete.js +9 -8
  16. package/src/cli/_template/cmd-sub2-describe.js +9 -8
  17. package/src/cli/_template/cmd-sub2-export.js +9 -8
  18. package/src/cli/_template/cmd-sub2-import.js +9 -8
  19. package/src/cli/_template/cmd-sub2-list.js +9 -8
  20. package/src/cli/admin/admin-add-autoid-static-user-mapping.js +12 -12
  21. package/src/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +15 -18
  22. package/src/cli/admin/admin-get-access-token.js +12 -12
  23. package/src/cli/admin/admin-grant-oauth2-client-admin-privileges.js +13 -13
  24. package/src/cli/admin/admin-hide-generic-extension-attributes.js +13 -13
  25. package/src/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +13 -13
  26. package/src/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +14 -13
  27. package/src/cli/admin/admin-list-static-user-mappings.js +12 -12
  28. package/src/cli/admin/admin-remove-static-user-mapping.js +12 -12
  29. package/src/cli/admin/admin-repair-org-model.js +13 -13
  30. package/src/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +13 -13
  31. package/src/cli/admin/admin-show-generic-extension-attributes.js +13 -13
  32. package/src/cli/app/app-delete.js +9 -8
  33. package/src/cli/app/app-describe.js +9 -8
  34. package/src/cli/app/app-export.js +15 -15
  35. package/src/cli/app/app-import.js +11 -11
  36. package/src/cli/app/app-list.js +11 -12
  37. package/src/cli/conn/conn-add.js +11 -11
  38. package/src/cli/conn/conn-delete.js +3 -1
  39. package/src/cli/conn/conn-describe.js +3 -1
  40. package/src/cli/conn/conn-list.js +3 -4
  41. package/src/cli/email/email-template-export.js +16 -16
  42. package/src/cli/email/email-template-import.js +16 -16
  43. package/src/cli/email/email-template-list.js +11 -11
  44. package/src/cli/esv/esv-apply.js +12 -12
  45. package/src/cli/esv/esv-secret-create.js +11 -11
  46. package/src/cli/esv/esv-secret-delete.js +13 -13
  47. package/src/cli/esv/esv-secret-describe.js +11 -11
  48. package/src/cli/esv/esv-secret-export.js +9 -8
  49. package/src/cli/esv/esv-secret-import.js +9 -8
  50. package/src/cli/esv/esv-secret-list.js +11 -11
  51. package/src/cli/esv/esv-secret-set.js +11 -11
  52. package/src/cli/esv/esv-secret-version-activate.js +12 -12
  53. package/src/cli/esv/esv-secret-version-create.js +11 -11
  54. package/src/cli/esv/esv-secret-version-deactivate.js +12 -12
  55. package/src/cli/esv/esv-secret-version-delete.js +13 -13
  56. package/src/cli/esv/esv-secret-version-list.js +11 -11
  57. package/src/cli/esv/esv-variable-create.js +11 -11
  58. package/src/cli/esv/esv-variable-delete.js +13 -16
  59. package/src/cli/esv/esv-variable-describe.js +11 -11
  60. package/src/cli/esv/esv-variable-export.js +9 -8
  61. package/src/cli/esv/esv-variable-import.js +9 -8
  62. package/src/cli/esv/esv-variable-list.js +11 -11
  63. package/src/cli/esv/esv-variable-set.js +13 -16
  64. package/src/cli/idm/idm-count.js +11 -11
  65. package/src/cli/idm/idm-export.js +16 -16
  66. package/src/cli/idm/idm-list.js +11 -11
  67. package/src/cli/idp/idp-export.js +15 -19
  68. package/src/cli/idp/idp-import.js +18 -18
  69. package/src/cli/idp/idp-list.js +12 -12
  70. package/src/cli/info/info.js +23 -19
  71. package/src/cli/journey/journey-delete.js +14 -14
  72. package/src/cli/journey/journey-describe.js +26 -35
  73. package/src/cli/journey/journey-export.js +18 -21
  74. package/src/cli/journey/journey-import.js +17 -17
  75. package/src/cli/journey/journey-list.js +12 -12
  76. package/src/cli/journey/journey-prune.js +12 -12
  77. package/src/cli/logging/logs-list.js +33 -28
  78. package/src/cli/logging/logs-tail.js +26 -22
  79. package/src/cli/realm/realm-add-custom-domain.js +13 -13
  80. package/src/cli/realm/realm-describe.js +14 -14
  81. package/src/cli/realm/realm-list.js +11 -11
  82. package/src/cli/realm/realm-remove-custom-domain.js +16 -13
  83. package/src/cli/saml/saml-cot-export.js +16 -16
  84. package/src/cli/saml/saml-cot-import.js +18 -18
  85. package/src/cli/saml/saml-cot-list.js +12 -12
  86. package/src/cli/saml/saml-describe.js +12 -12
  87. package/src/cli/saml/saml-export.js +16 -19
  88. package/src/cli/saml/saml-import.js +19 -18
  89. package/src/cli/saml/saml-list.js +12 -12
  90. package/src/cli/saml/saml-metadata-export.js +15 -19
  91. package/src/cli/script/script-delete.js +9 -8
  92. package/src/cli/script/script-describe.js +9 -8
  93. package/src/cli/script/script-export.js +18 -20
  94. package/src/cli/script/script-import.js +13 -12
  95. package/src/cli/script/script-list.js +12 -12
  96. package/src/cli/theme/theme-delete.js +17 -21
  97. package/src/cli/theme/theme-export.js +19 -18
  98. package/src/cli/theme/theme-import.js +21 -20
  99. package/src/cli/theme/theme-list.js +12 -12
  100. package/.eslintrc +0 -29
  101. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -30
  102. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  103. package/.github/README.md +0 -273
  104. package/.github/workflows/pipeline.yml +0 -487
  105. package/.prettierrc +0 -6
  106. package/CODE_OF_CONDUCT.md +0 -128
  107. package/docs/BINARIES.md +0 -22
  108. package/docs/CONTRIBUTE.md +0 -96
  109. package/docs/PIPELINE.md +0 -169
  110. package/docs/images/macos_warn1.png +0 -0
  111. package/docs/images/macos_warn2.png +0 -0
  112. package/docs/images/macos_warn3.png +0 -0
  113. package/docs/images/npm_versioning_guidelines.png +0 -0
  114. package/docs/images/release_pipeline.png +0 -0
  115. package/gulpfile.js +0 -49
  116. package/jsconfig.json +0 -6
  117. package/resources/sampleEntitiesFile.json +0 -8
  118. package/resources/sampleEnvFile.env +0 -2
  119. package/src/api/AuthenticateApi.js +0 -33
  120. package/src/api/BaseApi.js +0 -242
  121. package/src/api/CirclesOfTrustApi.js +0 -87
  122. package/src/api/EmailTemplateApi.js +0 -37
  123. package/src/api/IdmConfigApi.js +0 -88
  124. package/src/api/LogApi.js +0 -45
  125. package/src/api/ManagedObjectApi.js +0 -62
  126. package/src/api/OAuth2ClientApi.js +0 -69
  127. package/src/api/OAuth2OIDCApi.js +0 -73
  128. package/src/api/OAuth2ProviderApi.js +0 -32
  129. package/src/api/RealmApi.js +0 -99
  130. package/src/api/Saml2Api.js +0 -176
  131. package/src/api/ScriptApi.js +0 -84
  132. package/src/api/SecretsApi.js +0 -151
  133. package/src/api/ServerInfoApi.js +0 -41
  134. package/src/api/SocialIdentityProvidersApi.js +0 -114
  135. package/src/api/StartupApi.js +0 -45
  136. package/src/api/ThemeApi.js +0 -181
  137. package/src/api/TreeApi.js +0 -207
  138. package/src/api/VariablesApi.js +0 -104
  139. package/src/api/utils/ApiUtils.js +0 -77
  140. package/src/api/utils/Base64.js +0 -62
  141. package/src/cli/journey/journey-delete.e2e.test.js +0 -380
  142. package/src/cli/journey/journey-list.e2e.test.js +0 -141
  143. package/src/cli/theme/theme-delete.e2e.test.js +0 -178
  144. package/src/cli/theme/theme-list.e2e.test.js +0 -119
  145. package/src/ops/AdminOps.js +0 -901
  146. package/src/ops/AuthenticateOps.js +0 -342
  147. package/src/ops/CirclesOfTrustOps.js +0 -350
  148. package/src/ops/ConnectionProfileOps.js +0 -254
  149. package/src/ops/EmailTemplateOps.js +0 -326
  150. package/src/ops/IdmOps.js +0 -227
  151. package/src/ops/IdpOps.js +0 -342
  152. package/src/ops/JourneyOps.js +0 -2026
  153. package/src/ops/LogOps.js +0 -357
  154. package/src/ops/ManagedObjectOps.js +0 -34
  155. package/src/ops/OAuth2ClientOps.js +0 -151
  156. package/src/ops/OrganizationOps.js +0 -85
  157. package/src/ops/RealmOps.js +0 -139
  158. package/src/ops/SamlOps.js +0 -541
  159. package/src/ops/ScriptOps.js +0 -211
  160. package/src/ops/SecretsOps.js +0 -288
  161. package/src/ops/StartupOps.js +0 -114
  162. package/src/ops/ThemeOps.js +0 -379
  163. package/src/ops/VariablesOps.js +0 -185
  164. package/src/ops/templates/OAuth2ClientTemplate.json +0 -270
  165. package/src/ops/templates/OrgModelUserAttributesTemplate.json +0 -149
  166. package/src/ops/templates/cloud/GenericExtensionAttributesTemplate.json +0 -392
  167. package/src/ops/templates/cloud/managed.json +0 -4119
  168. package/src/ops/utils/Console.js +0 -434
  169. package/src/ops/utils/DataProtection.js +0 -92
  170. package/src/ops/utils/ExportImportUtils.js +0 -146
  171. package/src/ops/utils/OpsUtils.js +0 -76
  172. package/src/ops/utils/Wordwrap.js +0 -11
  173. package/src/storage/SessionStorage.js +0 -45
  174. package/test/client_cli/en/connections.test.js +0 -62
  175. package/test/client_cli/en/connections_add.test.js +0 -34
  176. package/test/client_cli/en/connections_delete.test.js +0 -34
  177. package/test/client_cli/en/connections_list.test.js +0 -34
  178. package/test/client_cli/en/email_templates.test.js +0 -77
  179. package/test/client_cli/en/email_templates_export.test.js +0 -196
  180. package/test/client_cli/en/email_templates_import.test.js +0 -145
  181. package/test/client_cli/en/email_templates_list.test.js +0 -130
  182. package/test/client_cli/en/idm.test.js +0 -111
  183. package/test/client_cli/en/idm_count.test.js +0 -121
  184. package/test/client_cli/en/idm_export.test.js +0 -136
  185. package/test/client_cli/en/idm_exportAll.test.js +0 -156
  186. package/test/client_cli/en/idm_exportAllRaw.test.js +0 -120
  187. package/test/client_cli/en/idm_import.test_.js +0 -103
  188. package/test/client_cli/en/idm_importAll.test_.js +0 -103
  189. package/test/client_cli/en/idm_list.test.js +0 -103
  190. package/test/client_cli/en/info.test.js +0 -125
  191. package/test/client_cli/en/journey.test.js +0 -127
  192. package/test/client_cli/en/journey_describe.test.js +0 -196
  193. package/test/client_cli/en/journey_export.test.js +0 -213
  194. package/test/client_cli/en/journey_import.test.js +0 -195
  195. package/test/client_cli/en/journey_importAll.test.js +0 -180
  196. package/test/client_cli/en/journey_list.test.js +0 -162
  197. package/test/client_cli/en/journey_prune.test.js +0 -148
  198. package/test/client_cli/en/logs.test.js +0 -79
  199. package/test/client_cli/en/logs_list.test.js +0 -83
  200. package/test/client_cli/en/logs_tail.test.js +0 -118
  201. package/test/client_cli/en/root.test.js +0 -91
  202. package/test/client_cli/en/script.test.js +0 -77
  203. package/test/client_cli/en/script_export.test.js +0 -213
  204. package/test/client_cli/en/script_import.test.js +0 -163
  205. package/test/client_cli/en/script_list.test.js +0 -148
  206. package/test/client_cli/utils/utils.js +0 -32
  207. package/test/e2e/journey/baseline/ForgottenUsername.journey.json +0 -216
  208. package/test/e2e/journey/baseline/Login.journey.json +0 -205
  209. package/test/e2e/journey/baseline/PasswordGrant.journey.json +0 -139
  210. package/test/e2e/journey/baseline/ProgressiveProfile.journey.json +0 -198
  211. package/test/e2e/journey/baseline/Registration.journey.json +0 -249
  212. package/test/e2e/journey/baseline/ResetPassword.journey.json +0 -268
  213. package/test/e2e/journey/baseline/UpdatePassword.journey.json +0 -323
  214. package/test/e2e/journey/baseline/allAlphaJourneys.journeys.json +0 -1520
  215. package/test/e2e/journey/delete/ForgottenUsername.journey.json +0 -216
  216. package/test/e2e/journey/delete/Login.journey.json +0 -205
  217. package/test/e2e/journey/delete/PasswordGrant.journey.json +0 -139
  218. package/test/e2e/journey/delete/ProgressiveProfile.journey.json +0 -198
  219. package/test/e2e/journey/delete/Registration.journey.json +0 -249
  220. package/test/e2e/journey/delete/ResetPassword.journey.json +0 -268
  221. package/test/e2e/journey/delete/UpdatePassword.journey.json +0 -323
  222. package/test/e2e/journey/delete/deleteMe.journey.json +0 -230
  223. package/test/e2e/journey/list/Disabled.journey.json +0 -43
  224. package/test/e2e/journey/list/ForgottenUsername.journey.json +0 -216
  225. package/test/e2e/journey/list/Login.journey.json +0 -205
  226. package/test/e2e/journey/list/PasswordGrant.journey.json +0 -139
  227. package/test/e2e/journey/list/ProgressiveProfile.journey.json +0 -198
  228. package/test/e2e/journey/list/Registration.journey.json +0 -249
  229. package/test/e2e/journey/list/ResetPassword.journey.json +0 -268
  230. package/test/e2e/journey/list/UpdatePassword.journey.json +0 -323
  231. package/test/e2e/setup.js +0 -98
  232. package/test/e2e/theme/baseline/Contrast.theme.json +0 -95
  233. package/test/e2e/theme/baseline/Highlander.theme.json +0 -95
  234. package/test/e2e/theme/baseline/Robroy.theme.json +0 -95
  235. package/test/e2e/theme/baseline/Starter-Theme.theme.json +0 -94
  236. package/test/e2e/theme/baseline/Zardoz.theme.json +0 -95
  237. package/test/e2e/theme/import/Contrast.theme.json +0 -95
  238. package/test/e2e/theme/import/Highlander.theme.json +0 -95
  239. package/test/e2e/theme/import/Robroy.theme.json +0 -95
  240. package/test/e2e/theme/import/Starter-Theme.theme.json +0 -94
  241. package/test/e2e/theme/import/Zardoz.default.theme.json +0 -95
  242. package/test/fs_tmp/.gitkeep +0 -2
  243. package/test/global/setup.js +0 -65
  244. package/test/lib_api/unit_tests/ApiUtils.test.js +0 -186
  245. package/test/lib_api/unit_tests/Base64URL.test.js +0 -22
  246. package/test/lib_api/unit_tests/DataProtection.test.js +0 -25
  247. package/test/lib_api/unit_tests/ExportImportUtils.test.js +0 -121
@@ -1,145 +0,0 @@
1
- import cp from 'child_process';
2
- import { promisify } from 'util';
3
- import { crudeMultilineTakeUntil, collapseWhitespace } from '../utils/utils';
4
-
5
- const exec = promisify(cp.exec);
6
- const CMD = 'frodo email_templates import --help';
7
- const { stdout } = await exec(CMD);
8
-
9
- test("CLI help interface for 'email_templates import' Usage should be expected english", async () => {
10
- // Arrange
11
- const expected = `
12
- Usage: frodo email_templates import [options] <host> [user] [password]
13
- `.trim();
14
- // Act
15
- const testLine = stdout
16
- .split(/\n/)
17
- .find(line => line.trim().startsWith('Usage:'))
18
- .trim();
19
- // Assert
20
- expect(testLine).toBe(expected);
21
- });
22
-
23
- test("CLI help interface 'email_templates import' description at line 2 should be expected english", async () => {
24
- // Arrange
25
- const expected = `
26
- Import email template.
27
- `.trim();
28
- // Act
29
- const testLine = stdout
30
- .split(/\n/)
31
- .map(line => line.trim())
32
- .at(2)
33
- // Assert
34
- expect(testLine).toBe(expected);
35
- });
36
-
37
-
38
- test("CLI help interface 'import argument host' description should be expected english multiline", async () => {
39
- // Arrange
40
- const expected = collapseWhitespace(`
41
- host Access Management base URL, e.g.:
42
- https://cdk.iam.example.com/am. To use a connection
43
- profile, just specify a unique substring.
44
- `);
45
- // Act
46
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
47
- stdout,
48
- ' host ',
49
- ' user '
50
- ));
51
-
52
- // Assert
53
- expect(testLine).toBe(expected);
54
- });
55
-
56
- test("CLI help interface 'import argument user' description should be expected english multiline", async () => {
57
- // Arrange
58
- const expected = collapseWhitespace(`
59
- user Username to login with. Must be an admin user with appropriate
60
- rights to manage authentication journeys/trees.
61
- `);
62
- // Act
63
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
64
- stdout,
65
- ' user ',
66
- ' password '
67
- ));
68
-
69
- // Assert
70
- expect(testLine).toBe(expected);
71
- });
72
-
73
- test("CLI help interface 'import argument password' description should be expected english", async () => {
74
- // Arrange
75
- const expectedDescription = `
76
- password Password.
77
- `.trim();
78
- // Act
79
- const testLine = stdout
80
- .split(/\n/)
81
- .find(line => line.trim().startsWith('password'))
82
- .trim();
83
- // Assert
84
- expect(testLine).toBe(expectedDescription);
85
- });
86
-
87
- test("CLI help interface 'import option -m, --type <type>' description should be expected english multiline", async () => {
88
- // Arrange
89
- const expected = collapseWhitespace(`
90
- -m, --type <type> Override auto-detected deployment type. Valid values for
91
- type:
92
- classic: A classic Access Management-only deployment
93
- with custom layout and configuration.
94
- cloud: A ForgeRock Identity Cloud environment.
95
- forgeops: A ForgeOps CDK or CDM deployment.
96
- The detected or provided deployment type controls certain
97
- behavior like obtaining an Identity Management admin
98
- token or not and whether to export/import referenced
99
- email templates or how to walk through the tenant admin
100
- login flow of Identity Cloud and handle MFA (choices:
101
- "classic", "cloud", "forgeops")
102
- `);
103
- // Act
104
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
105
- stdout,
106
- ' -m, --type <type> ',
107
- ' -k, --insecure '
108
- ));
109
-
110
- // Assert
111
- expect(testLine).toBe(expected);
112
- });
113
-
114
-
115
- test("CLI help interface 'import option -k, --insecure' description should be expected english multiline", async () => {
116
- // Arrange
117
- const expected = collapseWhitespace(`
118
- -k, --insecure Allow insecure connections when using SSL/TLS (default:
119
- Don't allow insecure connections)
120
- `);
121
- // Act
122
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
123
- stdout,
124
- ' -k, --insecure ',
125
- ' -f, --file <file> ',
126
- ));
127
-
128
- // Assert
129
- expect(testLine).toBe(expected);
130
- });
131
-
132
- test("CLI help interface 'import option -f, --file <file>' description should be expected english", async () => {
133
- // Arrange
134
- const expected = collapseWhitespace(`
135
- -f, --file <file> File name.
136
- `);
137
- // Act
138
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
139
- stdout,
140
- ' -f, --file <file> ',
141
- ' -h, --help '
142
- ));
143
- // Assert
144
- expect(testLine).toBe(expected);
145
- });
@@ -1,130 +0,0 @@
1
- import cp from 'child_process';
2
- import { promisify } from 'util';
3
- import { crudeMultilineTakeUntil, collapseWhitespace } from '../utils/utils';
4
-
5
- const exec = promisify(cp.exec);
6
- const CMD = 'frodo email_templates list --help';
7
- const { stdout } = await exec(CMD);
8
-
9
- test("CLI help interface for 'email_templates list' Usage should be expected english", async () => {
10
- // Arrange
11
- const expected = `
12
- Usage: frodo email_templates list [options] <host> [user] [password]
13
- `.trim();
14
- // Act
15
- const testLine = stdout
16
- .split(/\n/)
17
- .find(line => line.trim().startsWith('Usage:'))
18
- .trim();
19
- // Assert
20
- expect(testLine).toBe(expected);
21
- });
22
-
23
- test("CLI help interface 'email_templates list' description at line 2 should be expected english", async () => {
24
- // Arrange
25
- const expected = `
26
- List all the email templates in the system.
27
- `.trim();
28
- // Act
29
- const testLine = stdout
30
- .split(/\n/)
31
- .map(line => line.trim())
32
- .at(2)
33
- // Assert
34
- expect(testLine).toBe(expected);
35
- });
36
-
37
-
38
- test("CLI help interface 'list argument host' description should be expected english multiline", async () => {
39
- // Arrange
40
- const expected = collapseWhitespace(`
41
- host Access Management base URL, e.g.:
42
- https://cdk.iam.example.com/am. To use a connection
43
- profile, just specify a unique substring.
44
- `);
45
- // Act
46
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
47
- stdout,
48
- ' host ',
49
- ' user '
50
- ));
51
-
52
- // Assert
53
- expect(testLine).toBe(expected);
54
- });
55
-
56
- test("CLI help interface 'list argument user' description should be expected english multiline", async () => {
57
- // Arrange
58
- const expected = collapseWhitespace(`
59
- user Username to login with. Must be an admin user with appropriate
60
- rights to manage authentication journeys/trees.
61
- `);
62
- // Act
63
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
64
- stdout,
65
- ' user ',
66
- ' password '
67
- ));
68
-
69
- // Assert
70
- expect(testLine).toBe(expected);
71
- });
72
-
73
- test("CLI help interface 'list argument password' description should be expected english", async () => {
74
- // Arrange
75
- const expectedDescription = `
76
- password Password.
77
- `.trim();
78
- // Act
79
- const testLine = stdout
80
- .split(/\n/)
81
- .find(line => line.trim().startsWith('password'))
82
- .trim();
83
- // Assert
84
- expect(testLine).toBe(expectedDescription);
85
- });
86
-
87
- test("CLI help interface 'list option -m, --type <type>' description should be expected english multiline", async () => {
88
- // Arrange
89
- const expected = collapseWhitespace(`
90
- -m, --type <type> Override auto-detected deployment type. Valid values for
91
- type:
92
- classic: A classic Access Management-only deployment
93
- with custom layout and configuration.
94
- cloud: A ForgeRock Identity Cloud environment.
95
- forgeops: A ForgeOps CDK or CDM deployment.
96
- The detected or provided deployment type controls certain
97
- behavior like obtaining an Identity Management admin
98
- token or not and whether to export/import referenced
99
- email templates or how to walk through the tenant admin
100
- login flow of Identity Cloud and handle MFA (choices:
101
- "classic", "cloud", "forgeops")
102
- `);
103
- // Act
104
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
105
- stdout,
106
- ' -m, --type <type> ',
107
- ' -k, --insecure '
108
- ));
109
-
110
- // Assert
111
- expect(testLine).toBe(expected);
112
- });
113
-
114
-
115
- test("CLI help interface 'list option -k, --insecure' description should be expected english multiline", async () => {
116
- // Arrange
117
- const expected = collapseWhitespace(`
118
- -k, --insecure Allow insecure connections when using SSL/TLS (default: Don't
119
- allow insecure connections)
120
- `);
121
- // Act
122
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
123
- stdout,
124
- ' -k, --insecure ',
125
- ' -h, --help ',
126
- ));
127
-
128
- // Assert
129
- expect(testLine).toBe(expected);
130
- });
@@ -1,111 +0,0 @@
1
- import cp from 'child_process';
2
- import { promisify } from 'util';
3
- import { crudeMultilineTakeUntil, collapseWhitespace } from '../utils/utils';
4
-
5
- const exec = promisify(cp.exec);
6
- const CMD = 'frodo idm --help';
7
- const { stdout } = await exec(CMD);
8
-
9
- test("CLI help interface for 'idm' Usage should be expected english", async () => {
10
- // Arrange
11
- const expected = `
12
- Usage: frodo idm [options] [command]
13
- `.trim();
14
- // Act
15
- const testLine = stdout
16
- .split(/\n/)
17
- .find(line => line.trim().startsWith('Usage:'))
18
- .trim();
19
- // Assert
20
- expect(testLine).toBe(expected);
21
- });
22
-
23
-
24
- test("CLI help interface 'idm' description at line 2 should be expected english", async () => {
25
- // Arrange
26
- const expected = `
27
- Manage IDM configuration.
28
- `.trim();
29
- // Act
30
- const testLine = stdout
31
- .split(/\n/)
32
- .map(line => line.trim())
33
- .at(2)
34
- // Assert
35
- expect(testLine).toBe(expected);
36
- });
37
-
38
- test("CLI help interface 'idm commands list' description should be expected english", async () => {
39
- // Arrange
40
- const expected = `
41
- list [options] <host> [user] [password] List all IDM configuration objects.
42
- `.trim();
43
- // Act
44
- const testLine = stdout
45
- .split(/\n/)
46
- .find(line => line.trim().startsWith('list'))
47
- .trim();
48
- // Assert
49
- expect(testLine).toBe(expected);
50
- });
51
-
52
- test("CLI help interface 'idm commands export' description should be expected english", async () => {
53
- // Arrange
54
- const expected = `
55
- export [options] <host> [user] [password] Export an IDM configuration object.
56
- `.trim();
57
- // Act
58
- const testLine = stdout
59
- .split(/\n/)
60
- .find(line => line.trim().startsWith('export'))
61
- .trim();
62
- // Assert
63
- expect(testLine).toBe(expected);
64
- });
65
-
66
- test("CLI help interface 'idm commands exportAllRaw' description should be expected english", async () => {
67
- // Arrange
68
- const expected = collapseWhitespace(`
69
- exportAllRaw [options] <host> [user] [password] Export all IDM configuration objects into
70
- separate JSON files in a directory
71
- specified by <directory>
72
- `).trim();
73
- // Act
74
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
75
- stdout,
76
- ' exportAllRaw [options] <host> [user] [password] ',
77
- ' exportAll [options] <host> [user] [password] '
78
- ));
79
- // Assert
80
- expect(testLine).toBe(expected);
81
- });
82
-
83
- test("CLI help interface 'idm commands exportAll' description should be expected english", async () => {
84
- // Arrange
85
- const expected = `
86
- exportAll [options] <host> [user] [password] Export all IDM configuration objects.
87
- `.trim();
88
- // Act
89
- const testLine = stdout
90
- .split(/\n/)
91
- .find(line => line.trim().startsWith('exportAll [options] <host> [user] [password] '))
92
- .trim();
93
- // Assert
94
- expect(testLine).toBe(expected);
95
- });
96
-
97
- test("CLI help interface 'idm commands count' description should be expected english multiline", async () => {
98
- // Arrange
99
- const expected = collapseWhitespace(`
100
- count [options] <host> [user] [password] Count number of managed objects of a given
101
- type.
102
- `).trim();
103
- // Act
104
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
105
- stdout,
106
- ' count [options] <host> [user] [password] ',
107
- ' help [command] '
108
- ));
109
- // Assert
110
- expect(testLine).toBe(expected);
111
- });
@@ -1,121 +0,0 @@
1
- import cp from 'child_process';
2
- import { promisify } from 'util';
3
- import { crudeMultilineTakeUntil, collapseWhitespace } from '../utils/utils';
4
-
5
- const exec = promisify(cp.exec);
6
- const CMD = 'frodo idm count --help';
7
- const { stdout } = await exec(CMD);
8
-
9
- test("CLI help interface for 'idm count' Usage should be expected english", async () => {
10
- // Arrange
11
- const expected = `
12
- Usage: frodo idm count [options] <host> [user] [password]
13
- `.trim();
14
- // Act
15
- const testLine = stdout
16
- .split(/\n/)
17
- .find(line => line.trim().startsWith('Usage:'))
18
- .trim();
19
- // Assert
20
- expect(testLine).toBe(expected);
21
- });
22
-
23
- test("CLI help interface 'idm export' description at line 2 should be expected english", async () => {
24
- // Arrange
25
- const expected = `
26
- Count number of managed objects of a given type.
27
- `.trim();
28
- // Act
29
- const testLine = stdout
30
- .split(/\n/)
31
- .map(line => line.trim())
32
- .at(2)
33
- // Assert
34
- expect(testLine).toBe(expected);
35
- });
36
-
37
-
38
- test("CLI help interface 'count argument host' description should be expected english multiline", async () => {
39
- // Arrange
40
- const expected = collapseWhitespace(`
41
- host Access Management base URL, e.g.:
42
- https://cdk.iam.example.com/am. To use a connection
43
- profile, just specify a unique substring.
44
- `);
45
- // Act
46
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
47
- stdout,
48
- ' host ',
49
- ' user '
50
- ));
51
-
52
- // Assert
53
- expect(testLine).toBe(expected);
54
- });
55
-
56
-
57
- test("CLI help interface 'count argument user' description should be expected english multiline", async () => {
58
- // Arrange
59
- const expected = collapseWhitespace(`
60
- user Username to login with. Must be an admin user with appropriate
61
- rights to manage authentication journeys/trees.
62
- `);
63
- // Act
64
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
65
- stdout,
66
- ' user ',
67
- ' password '
68
- ));
69
-
70
- // Assert
71
- expect(testLine).toBe(expected);
72
- });
73
-
74
- test("CLI help interface 'count argument password' description should be expected english", async () => {
75
- // Arrange
76
- const expectedDescription = `
77
- password Password.
78
- `.trim();
79
- // Act
80
- const testLine = stdout
81
- .split(/\n/)
82
- .find(line => line.trim().startsWith('password'))
83
- .trim();
84
- // Assert
85
- expect(testLine).toBe(expectedDescription);
86
- });
87
-
88
- test("CLI help interface 'count option -N, --name <name>' description should be expected english multiline", async () => {
89
- // Arrange
90
- const expected = collapseWhitespace(`
91
- -N, --name <name> Managed object name to be operated on. Examples are user,
92
- role, alpha_user, alpha_role etc.
93
- `);
94
- // Act
95
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
96
- stdout,
97
- ' -N, --name <name> ',
98
- ' -k, --insecure '
99
- ));
100
-
101
- // Assert
102
- expect(testLine).toBe(expected);
103
- });
104
-
105
-
106
- test("CLI help interface 'export option -k, --insecure' description should be expected english multiline", async () => {
107
- // Arrange
108
- const expected = collapseWhitespace(`
109
- -k, --insecure Allow insecure connections when using SSL/TLS (default:
110
- Don't allow insecure connections)
111
- `);
112
- // Act
113
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
114
- stdout,
115
- ' -k, --insecure ',
116
- ' -h, --help ',
117
- ));
118
-
119
- // Assert
120
- expect(testLine).toBe(expected);
121
- });
@@ -1,136 +0,0 @@
1
- import cp from 'child_process';
2
- import { promisify } from 'util';
3
- import { crudeMultilineTakeUntil, collapseWhitespace } from '../utils/utils';
4
-
5
- const exec = promisify(cp.exec);
6
- const CMD = 'frodo idm export --help';
7
- const { stdout } = await exec(CMD);
8
-
9
- test("CLI help interface for 'idm export' Usage should be expected english", async () => {
10
- // Arrange
11
- const expected = `
12
- Usage: frodo idm export [options] <host> [user] [password]
13
- `.trim();
14
- // Act
15
- const testLine = stdout
16
- .split(/\n/)
17
- .find(line => line.trim().startsWith('Usage:'))
18
- .trim();
19
- // Assert
20
- expect(testLine).toBe(expected);
21
- });
22
-
23
- test("CLI help interface 'idm export' description at line 2 should be expected english", async () => {
24
- // Arrange
25
- const expected = `
26
- Export an IDM configuration object.
27
- `.trim();
28
- // Act
29
- const testLine = stdout
30
- .split(/\n/)
31
- .map(line => line.trim())
32
- .at(2)
33
- // Assert
34
- expect(testLine).toBe(expected);
35
- });
36
-
37
-
38
- test("CLI help interface 'count argument host' description should be expected english multiline", async () => {
39
- // Arrange
40
- const expected = collapseWhitespace(`
41
- host Access Management base URL, e.g.:
42
- https://cdk.iam.example.com/am. To use a connection
43
- profile, just specify a unique substring.
44
- `);
45
- // Act
46
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
47
- stdout,
48
- ' host ',
49
- ' user '
50
- ));
51
-
52
- // Assert
53
- expect(testLine).toBe(expected);
54
- });
55
-
56
-
57
- test("CLI help interface 'count argument user' description should be expected english multiline", async () => {
58
- // Arrange
59
- const expected = collapseWhitespace(`
60
- user Username to login with. Must be an admin user with appropriate
61
- rights to manage authentication journeys/trees.
62
- `);
63
- // Act
64
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
65
- stdout,
66
- ' user ',
67
- ' password '
68
- ));
69
-
70
- // Assert
71
- expect(testLine).toBe(expected);
72
- });
73
-
74
- test("CLI help interface 'count argument password' description should be expected english", async () => {
75
- // Arrange
76
- const expectedDescription = `
77
- password Password.
78
- `.trim();
79
- // Act
80
- const testLine = stdout
81
- .split(/\n/)
82
- .find(line => line.trim().startsWith('password'))
83
- .trim();
84
- // Assert
85
- expect(testLine).toBe(expectedDescription);
86
- });
87
-
88
- test("CLI help interface 'count option -N, --name <name>' description should be expected english multiline", async () => {
89
- // Arrange
90
- const expected = collapseWhitespace(`
91
- -N, --name <name> Config entity name to be exported or imported/updated.
92
- Examples are managed, sync, provisioner-xxxx, etc.
93
- `);
94
- // Act
95
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
96
- stdout,
97
- ' -N, --name <name> ',
98
- ' -f, --file <file> '
99
- ));
100
-
101
- // Assert
102
- expect(testLine).toBe(expected);
103
- });
104
-
105
- test("CLI help interface 'count option -f, --file <file>' description should be expected english", async () => {
106
- // Arrange
107
- const expected = collapseWhitespace(`
108
- -f, --file <file> File name.
109
- `);
110
- // Act
111
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
112
- stdout,
113
- ' -f, --file <file> ',
114
- ' -k, --insecure '
115
- ));
116
-
117
- // Assert
118
- expect(testLine).toBe(expected);
119
- });
120
-
121
- test("CLI help interface 'export option -k, --insecure' description should be expected english multiline", async () => {
122
- // Arrange
123
- const expected = collapseWhitespace(`
124
- -k, --insecure Allow insecure connections when using SSL/TLS (default:
125
- Don't allow insecure connections)
126
- `);
127
- // Act
128
- const testLine = collapseWhitespace(crudeMultilineTakeUntil(
129
- stdout,
130
- ' -k, --insecure ',
131
- ' -h, --help ',
132
- ));
133
-
134
- // Assert
135
- expect(testLine).toBe(expected);
136
- });