@rockcarver/frodo-cli 0.11.1-0 → 0.11.1-1

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 (90) hide show
  1. package/CHANGELOG.md +5 -1
  2. package/package.json +12 -10
  3. package/src/app.js +3 -3
  4. package/.eslintrc +0 -29
  5. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -30
  6. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  7. package/.github/README.md +0 -213
  8. package/.github/workflows/pipeline.yml +0 -495
  9. package/.prettierrc +0 -6
  10. package/CODE_OF_CONDUCT.md +0 -128
  11. package/docs/BINARIES.md +0 -22
  12. package/docs/CONTRIBUTE.md +0 -96
  13. package/docs/PIPELINE.md +0 -169
  14. package/docs/images/macos_warn1.png +0 -0
  15. package/docs/images/macos_warn2.png +0 -0
  16. package/docs/images/macos_warn3.png +0 -0
  17. package/docs/images/npm_versioning_guidelines.png +0 -0
  18. package/docs/images/release_pipeline.png +0 -0
  19. package/gulpfile.js +0 -49
  20. package/jsconfig.json +0 -6
  21. package/resources/sampleEntitiesFile.json +0 -8
  22. package/resources/sampleEnvFile.env +0 -2
  23. package/src/cli/journey/journey-delete.e2e.test_.js +0 -380
  24. package/src/cli/journey/journey-list.e2e.test_.js +0 -142
  25. package/src/cli/theme/theme-delete.e2e.test_.js +0 -178
  26. package/src/cli/theme/theme-list.e2e.test_.js +0 -119
  27. package/test/client_cli/en/conn-add.test.js +0 -37
  28. package/test/client_cli/en/conn-delete.test.js +0 -37
  29. package/test/client_cli/en/conn-list.test.js +0 -37
  30. package/test/client_cli/en/conn.test.js +0 -65
  31. package/test/client_cli/en/email-template-import.test.js +0 -156
  32. package/test/client_cli/en/email-template.test.js +0 -79
  33. package/test/client_cli/en/email-templates-export.test.js +0 -208
  34. package/test/client_cli/en/email-templates-list.test.js +0 -139
  35. package/test/client_cli/en/idm-count.test.js +0 -131
  36. package/test/client_cli/en/idm-export.test.js +0 -149
  37. package/test/client_cli/en/idm-import.test_.js +0 -101
  38. package/test/client_cli/en/idm-list.test.js +0 -109
  39. package/test/client_cli/en/idm.test.js +0 -82
  40. package/test/client_cli/en/info.test.js +0 -136
  41. package/test/client_cli/en/journey-describe.test.js +0 -194
  42. package/test/client_cli/en/journey-export.test.js +0 -231
  43. package/test/client_cli/en/journey-import.test.js +0 -212
  44. package/test/client_cli/en/journey-list.test.js +0 -173
  45. package/test/client_cli/en/journey-prune.test.js +0 -159
  46. package/test/client_cli/en/journey.test.js +0 -111
  47. package/test/client_cli/en/logs-list.test.js +0 -81
  48. package/test/client_cli/en/logs-tail.test.js +0 -130
  49. package/test/client_cli/en/logs.test.js +0 -65
  50. package/test/client_cli/en/root.test.js +0 -93
  51. package/test/client_cli/en/script-export.test.js +0 -230
  52. package/test/client_cli/en/script-import.test.js +0 -176
  53. package/test/client_cli/en/script-list.test.js +0 -159
  54. package/test/client_cli/en/script.test.js +0 -79
  55. package/test/client_cli/utils/utils.js +0 -63
  56. package/test/e2e/journey/baseline/ForgottenUsername.journey.json +0 -216
  57. package/test/e2e/journey/baseline/Login.journey.json +0 -205
  58. package/test/e2e/journey/baseline/PasswordGrant.journey.json +0 -139
  59. package/test/e2e/journey/baseline/ProgressiveProfile.journey.json +0 -198
  60. package/test/e2e/journey/baseline/Registration.journey.json +0 -249
  61. package/test/e2e/journey/baseline/ResetPassword.journey.json +0 -268
  62. package/test/e2e/journey/baseline/UpdatePassword.journey.json +0 -323
  63. package/test/e2e/journey/baseline/allAlphaJourneys.journeys.json +0 -1520
  64. package/test/e2e/journey/delete/ForgottenUsername.journey.json +0 -216
  65. package/test/e2e/journey/delete/Login.journey.json +0 -205
  66. package/test/e2e/journey/delete/PasswordGrant.journey.json +0 -139
  67. package/test/e2e/journey/delete/ProgressiveProfile.journey.json +0 -198
  68. package/test/e2e/journey/delete/Registration.journey.json +0 -249
  69. package/test/e2e/journey/delete/ResetPassword.journey.json +0 -268
  70. package/test/e2e/journey/delete/UpdatePassword.journey.json +0 -323
  71. package/test/e2e/journey/delete/deleteMe.journey.json +0 -230
  72. package/test/e2e/journey/list/Disabled.journey.json +0 -43
  73. package/test/e2e/journey/list/ForgottenUsername.journey.json +0 -216
  74. package/test/e2e/journey/list/Login.journey.json +0 -205
  75. package/test/e2e/journey/list/PasswordGrant.journey.json +0 -139
  76. package/test/e2e/journey/list/ProgressiveProfile.journey.json +0 -198
  77. package/test/e2e/journey/list/Registration.journey.json +0 -249
  78. package/test/e2e/journey/list/ResetPassword.journey.json +0 -268
  79. package/test/e2e/journey/list/UpdatePassword.journey.json +0 -323
  80. package/test/e2e/theme/baseline/Contrast.theme.json +0 -95
  81. package/test/e2e/theme/baseline/Highlander.theme.json +0 -95
  82. package/test/e2e/theme/baseline/Robroy.theme.json +0 -95
  83. package/test/e2e/theme/baseline/Starter-Theme.theme.json +0 -94
  84. package/test/e2e/theme/baseline/Zardoz.theme.json +0 -95
  85. package/test/e2e/theme/import/Contrast.theme.json +0 -95
  86. package/test/e2e/theme/import/Highlander.theme.json +0 -95
  87. package/test/e2e/theme/import/Robroy.theme.json +0 -95
  88. package/test/e2e/theme/import/Starter-Theme.theme.json +0 -94
  89. package/test/e2e/theme/import/Zardoz.default.theme.json +0 -95
  90. package/test/fs_tmp/.gitkeep +0 -2
@@ -1,231 +0,0 @@
1
- import cp from 'child_process';
2
- import { promisify } from 'util';
3
- import {
4
- crudeMultilineTakeUntil,
5
- collapseWhitespace,
6
- node14Compatibility,
7
- } from '../utils/utils.js';
8
-
9
- node14Compatibility();
10
-
11
- const exec = promisify(cp.exec);
12
- const CMD = 'frodo journey export --help';
13
- const { stdout } = await exec(CMD);
14
-
15
- test("CLI help interface for 'journey export' Usage should be expected english", async () => {
16
- // Arrange
17
- const expected = `
18
- Usage: frodo journey export [options] <host> [realm] [user] [password]
19
- `.trim();
20
- // Act
21
- const testLine = stdout
22
- .split(/\n/)
23
- .find((line) => line.trim().startsWith('Usage:'))
24
- .trim();
25
- // Assert
26
- expect(testLine).toBe(expected);
27
- });
28
-
29
- test("CLI help interface 'journey export' description at line 2 should be expected english", async () => {
30
- // Arrange
31
- const expected = `
32
- Export journeys/trees.
33
- `.trim();
34
- // Act
35
- const testLine = stdout
36
- .split(/\n/)
37
- .map((line) => line.trim())
38
- .at(2);
39
- // Assert
40
- expect(testLine).toBe(expected);
41
- });
42
-
43
- test("CLI help interface 'export argument host' description should be expected english multiline", async () => {
44
- // Arrange
45
- const expected = collapseWhitespace(`
46
- host Access Management base URL, e.g.:
47
- https://cdk.iam.example.com/am. To use a connection
48
- profile, just specify a unique substring.
49
- `);
50
- // Act
51
- const testLine = collapseWhitespace(
52
- crudeMultilineTakeUntil(
53
- stdout,
54
- ' host ',
55
- ' realm '
56
- )
57
- );
58
-
59
- // Assert
60
- expect(testLine).toBe(expected);
61
- });
62
-
63
- test("CLI help interface 'export argument realm' description should be expected english multiline", async () => {
64
- // Arrange
65
- const expected = collapseWhitespace(`
66
- realm Realm. Specify realm as '/' for the root realm or 'realm' or '/parent/child' otherwise. (default: "alpha" for Identity Cloud tenants, "/" otherwise.)
67
- `);
68
- // Act
69
- const testLine = collapseWhitespace(
70
- crudeMultilineTakeUntil(
71
- stdout,
72
- ' realm ',
73
- ' user '
74
- )
75
- );
76
-
77
- // Assert
78
- expect(testLine).toBe(expected);
79
- });
80
-
81
- test("CLI help interface 'export argument user' description should be expected english multiline", async () => {
82
- // Arrange
83
- const expected = collapseWhitespace(`
84
- user Username to login with. Must be an admin user with appropriate
85
- rights to manage authentication journeys/trees.
86
- `);
87
- // Act
88
- const testLine = collapseWhitespace(
89
- crudeMultilineTakeUntil(
90
- stdout,
91
- ' user ',
92
- ' password '
93
- )
94
- );
95
-
96
- // Assert
97
- expect(testLine).toBe(expected);
98
- });
99
-
100
- test("CLI help interface 'export argument password' description should be expected english", async () => {
101
- // Arrange
102
- const expectedDescription = `
103
- password Password.
104
- `.trim();
105
- // Act
106
- const testLine = stdout
107
- .split(/\n/)
108
- .find((line) => line.trim().startsWith('password'))
109
- .trim();
110
- // Assert
111
- expect(testLine).toBe(expectedDescription);
112
- });
113
-
114
- test("CLI help interface 'export option -m, --type <type>' description should be expected english multiline", async () => {
115
- // Arrange
116
- const expected = collapseWhitespace(`
117
- -m, --type <type> Override auto-detected deployment type. Valid values for
118
- type:
119
- classic: A classic Access Management-only deployment
120
- with custom layout and configuration.
121
- cloud: A ForgeRock Identity Cloud environment.
122
- forgeops: A ForgeOps CDK or CDM deployment.
123
- The detected or provided deployment type controls certain
124
- behavior like obtaining an Identity Management admin
125
- token or not and whether to export/import referenced
126
- email templates or how to walk through the tenant admin
127
- login flow of Identity Cloud and handle MFA (choices:
128
- "classic", "cloud", "forgeops")
129
- `);
130
- // Act
131
- const testLine = collapseWhitespace(
132
- crudeMultilineTakeUntil(
133
- stdout,
134
- ' -m, --type <type> ',
135
- ' -k, --insecure '
136
- )
137
- );
138
-
139
- // Assert
140
- expect(testLine).toBe(expected);
141
- });
142
-
143
- test("CLI help interface 'export option -k, --insecure' description should be expected english multiline", async () => {
144
- // Arrange
145
- const expected = collapseWhitespace(`
146
- -k, --insecure Allow insecure connections when using SSL/TLS. Has no effect when using a network proxy for https
147
- (HTTPS_PROXY=http://<host>:<port>), in that case the proxy must provide this capability. (default:
148
- Don't allow insecure connections)
149
- `);
150
- // Act
151
- const testLine = collapseWhitespace(
152
- crudeMultilineTakeUntil(
153
- stdout,
154
- ' -k, --insecure ',
155
- ' -i, --journey-id <journey> '
156
- )
157
- );
158
-
159
- // Assert
160
- expect(testLine).toBe(expected);
161
- });
162
-
163
- test("CLI help interface 'export option -t, --tree <tree>' description should be expected english multiline", async () => {
164
- // Arrange
165
- const expected = collapseWhitespace(`
166
- -i, --journey-id <journey> Name of a journey/tree. If specified, -a and -A are ignored.
167
- `);
168
- // Act
169
- const testLine = collapseWhitespace(
170
- crudeMultilineTakeUntil(
171
- stdout,
172
- ' -i, --journey-id <journey> ',
173
- ' -f, --file <file> '
174
- )
175
- );
176
-
177
- // Assert
178
- expect(testLine).toBe(expected);
179
- });
180
-
181
- test("CLI help interface 'export option -f, --file <file>' description should be expected english", async () => {
182
- // Arrange
183
- const expected = collapseWhitespace(`
184
- -f, --file <file> Name of the file to write the exported journey(s) to. Ignored with -A.
185
- `);
186
- // Act
187
- const testLine = collapseWhitespace(
188
- crudeMultilineTakeUntil(
189
- stdout,
190
- ' -f, --file <file> ',
191
- ' -a, --all '
192
- )
193
- );
194
- // Assert
195
- expect(testLine).toBe(expected);
196
- });
197
-
198
- test("CLI help interface 'export option -a, --all' description should be expected english", async () => {
199
- // Arrange
200
- const expected = collapseWhitespace(`
201
- -a, --all Export all the journeys/trees in a realm. Ignored with -i.
202
- `);
203
- // Act
204
- const testLine = collapseWhitespace(
205
- crudeMultilineTakeUntil(
206
- stdout,
207
- ' -a, --all ',
208
- ' -A, --all-separate '
209
- )
210
- );
211
- // Assert
212
- expect(testLine).toBe(expected);
213
- });
214
-
215
- test("CLI help interface 'export option -A, --allSeparate' description should be expected english", async () => {
216
- // Arrange
217
- const expected = collapseWhitespace(`
218
- -A, --all-separate Export all the journeys/trees in a realm as separate files <journey/tree name>.json. Ignored with -i or
219
- -a.
220
- `);
221
- // Act
222
- const testLine = collapseWhitespace(
223
- crudeMultilineTakeUntil(
224
- stdout,
225
- ' -A, --all-separate ',
226
- ' --use-string-arrays '
227
- )
228
- );
229
- // Assert
230
- expect(testLine).toBe(expected);
231
- });
@@ -1,212 +0,0 @@
1
- import cp from 'child_process';
2
- import { promisify } from 'util';
3
- import {
4
- crudeMultilineTakeUntil,
5
- collapseWhitespace,
6
- node14Compatibility,
7
- } from '../utils/utils.js';
8
-
9
- node14Compatibility();
10
-
11
- const exec = promisify(cp.exec);
12
- const CMD = 'frodo journey import --help';
13
- const { stdout } = await exec(CMD);
14
-
15
- test("CLI help interface for 'journey import' Usage should be expected english", async () => {
16
- // Arrange
17
- const expected = `
18
- Usage: frodo journey import [options] <host> [realm] [user] [password]
19
- `.trim();
20
- // Act
21
- const testLine = stdout
22
- .split(/\n/)
23
- .find((line) => line.trim().startsWith('Usage:'))
24
- .trim();
25
- // Assert
26
- expect(testLine).toBe(expected);
27
- });
28
-
29
- test("CLI help interface 'journey import' description at line 2 should be expected english", async () => {
30
- // Arrange
31
- const expected = `
32
- Import journey/tree.
33
- `.trim();
34
- // Act
35
- const testLine = stdout
36
- .split(/\n/)
37
- .map((line) => line.trim())
38
- .at(2);
39
- // Assert
40
- expect(testLine).toBe(expected);
41
- });
42
-
43
- test("CLI help interface 'import argument host' description should be expected english multiline", async () => {
44
- // Arrange
45
- const expected = collapseWhitespace(`
46
- host Access Management base URL, e.g.:
47
- https://cdk.iam.example.com/am. To use a connection
48
- profile, just specify a unique substring.
49
- `);
50
- // Act
51
- const testLine = collapseWhitespace(
52
- crudeMultilineTakeUntil(
53
- stdout,
54
- ' host ',
55
- ' realm '
56
- )
57
- );
58
-
59
- // Assert
60
- expect(testLine).toBe(expected);
61
- });
62
-
63
- test("CLI help interface 'import argument realm' description should be expected english multiline", async () => {
64
- // Arrange
65
- const expected = collapseWhitespace(`
66
- realm Realm. Specify realm as '/' for the root realm or 'realm' or '/parent/child' otherwise. (default: "alpha" for Identity Cloud tenants, "/" otherwise.)
67
- `);
68
- // Act
69
- const testLine = collapseWhitespace(
70
- crudeMultilineTakeUntil(
71
- stdout,
72
- ' realm ',
73
- ' user '
74
- )
75
- );
76
-
77
- // Assert
78
- expect(testLine).toBe(expected);
79
- });
80
-
81
- test("CLI help interface 'import argument user' description should be expected english multiline", async () => {
82
- // Arrange
83
- const expected = collapseWhitespace(`
84
- user Username to login with. Must be an admin user with appropriate
85
- rights to manage authentication journeys/trees.
86
- `);
87
- // Act
88
- const testLine = collapseWhitespace(
89
- crudeMultilineTakeUntil(
90
- stdout,
91
- ' user ',
92
- ' password '
93
- )
94
- );
95
-
96
- // Assert
97
- expect(testLine).toBe(expected);
98
- });
99
-
100
- test("CLI help interface 'import argument password' description should be expected english", async () => {
101
- // Arrange
102
- const expectedDescription = `
103
- password Password.
104
- `.trim();
105
- // Act
106
- const testLine = stdout
107
- .split(/\n/)
108
- .find((line) => line.trim().startsWith('password'))
109
- .trim();
110
- // Assert
111
- expect(testLine).toBe(expectedDescription);
112
- });
113
-
114
- test("CLI help interface 'import option -m, --type <type>' description should be expected english multiline", async () => {
115
- // Arrange
116
- const expected = collapseWhitespace(`
117
- -m, --type <type> Override auto-detected deployment type. Valid values for
118
- type:
119
- classic: A classic Access Management-only deployment
120
- with custom layout and configuration.
121
- cloud: A ForgeRock Identity Cloud environment.
122
- forgeops: A ForgeOps CDK or CDM deployment.
123
- The detected or provided deployment type controls certain
124
- behavior like obtaining an Identity Management admin
125
- token or not and whether to export/import referenced
126
- email templates or how to walk through the tenant admin
127
- login flow of Identity Cloud and handle MFA (choices:
128
- "classic", "cloud", "forgeops")
129
- `);
130
- // Act
131
- const testLine = collapseWhitespace(
132
- crudeMultilineTakeUntil(
133
- stdout,
134
- ' -m, --type <type> ',
135
- ' -k, --insecure '
136
- )
137
- );
138
-
139
- // Assert
140
- expect(testLine).toBe(expected);
141
- });
142
-
143
- test("CLI help interface 'import option -k, --insecure' description should be expected english multiline", async () => {
144
- // Arrange
145
- const expected = collapseWhitespace(`
146
- -k, --insecure Allow insecure connections when using SSL/TLS. Has no effect when using a network proxy for https
147
- (HTTPS_PROXY=http://<host>:<port>), in that case the proxy must provide this capability. (default:
148
- Don't allow insecure connections)
149
- `);
150
- // Act
151
- const testLine = collapseWhitespace(
152
- crudeMultilineTakeUntil(
153
- stdout,
154
- ' -k, --insecure ',
155
- ' -i, --journey-id <journey> '
156
- )
157
- );
158
-
159
- // Assert
160
- expect(testLine).toBe(expected);
161
- });
162
-
163
- test("CLI help interface 'describe option -t, --tree <tree>' description should be expected english", async () => {
164
- // Arrange
165
- const expectedDescription = `
166
- -i, --journey-id <journey> Name of a journey/tree. If specified, -a and -A are ignored.
167
- `.trim();
168
- // Act
169
- const testLine = collapseWhitespace(
170
- crudeMultilineTakeUntil(
171
- stdout,
172
- ' -i, --journey-id <journey> ',
173
- ' -f, --file <file> '
174
- )
175
- );
176
- // Assert
177
- expect(testLine).toBe(expectedDescription);
178
- });
179
-
180
- test("CLI help interface 'import option -f, --file <file>' description should be expected english", async () => {
181
- // Arrange
182
- const expected = collapseWhitespace(`
183
- -f, --file <file> Name of the file to import the journey(s) from. Ignored with -A.
184
- `);
185
- // Act
186
- const testLine = collapseWhitespace(
187
- crudeMultilineTakeUntil(
188
- stdout,
189
- ' -f, --file <file> ',
190
- ' -a, --all '
191
- )
192
- );
193
- // Assert
194
- expect(testLine).toBe(expected);
195
- });
196
-
197
- test("CLI help interface 'import option --re-uuid' description should be expected english multiline", async () => {
198
- // Arrange
199
- const expected = collapseWhitespace(`
200
- --re-uuid Generate new UUIDs for all nodes during import. (default: off)
201
- `);
202
- // Act
203
- const testLine = collapseWhitespace(
204
- crudeMultilineTakeUntil(
205
- stdout,
206
- ' --re-uuid ',
207
- ' --no-deps '
208
- )
209
- );
210
- // Assert
211
- expect(testLine).toBe(expected);
212
- });
@@ -1,173 +0,0 @@
1
- import cp from 'child_process';
2
- import { promisify } from 'util';
3
- import {
4
- crudeMultilineTakeUntil,
5
- collapseWhitespace,
6
- node14Compatibility,
7
- } from '../utils/utils.js';
8
-
9
- node14Compatibility();
10
-
11
- const exec = promisify(cp.exec);
12
- const CMD = 'frodo journey list --help';
13
- const { stdout } = await exec(CMD);
14
-
15
- test("CLI help interface for 'journey list' Usage should be expected english", async () => {
16
- // Arrange
17
- const expected = `
18
- Usage: frodo journey list [options] <host> [realm] [user] [password]
19
- `.trim();
20
- // Act
21
- const testLine = stdout
22
- .split(/\n/)
23
- .find((line) => line.trim().startsWith('Usage:'))
24
- .trim();
25
- // Assert
26
- expect(testLine).toBe(expected);
27
- });
28
-
29
- test("CLI help interface 'journey list' description at line 2 should be expected english", async () => {
30
- // Arrange
31
- const expected = `
32
- List journeys/trees.
33
- `.trim();
34
- // Act
35
- const testLine = stdout
36
- .split(/\n/)
37
- .map((line) => line.trim())
38
- .at(2);
39
- // Assert
40
- expect(testLine).toBe(expected);
41
- });
42
-
43
- test("CLI help interface 'list argument host' description should be expected english multiline", async () => {
44
- // Arrange
45
- const expected = collapseWhitespace(`
46
- host Access Management base URL, e.g.:
47
- https://cdk.iam.example.com/am. To use a connection
48
- profile, just specify a unique substring.
49
- `);
50
- // Act
51
- const testLine = collapseWhitespace(
52
- crudeMultilineTakeUntil(
53
- stdout,
54
- ' host ',
55
- ' realm '
56
- )
57
- );
58
-
59
- // Assert
60
- expect(testLine).toBe(expected);
61
- });
62
-
63
- test("CLI help interface 'list argument realm' description should be expected english multiline", async () => {
64
- // Arrange
65
- const expected = collapseWhitespace(`
66
- realm Realm. Specify realm as '/' for the root realm or 'realm' or '/parent/child' otherwise. (default: "alpha" for Identity Cloud tenants, "/" otherwise.)
67
- `);
68
- // Act
69
- const testLine = collapseWhitespace(
70
- crudeMultilineTakeUntil(
71
- stdout,
72
- ' realm ',
73
- ' user '
74
- )
75
- );
76
-
77
- // Assert
78
- expect(testLine).toBe(expected);
79
- });
80
-
81
- test("CLI help interface 'list argument user' description should be expected english multiline", async () => {
82
- // Arrange
83
- const expected = collapseWhitespace(`
84
- user Username to login with. Must be an admin user with appropriate
85
- rights to manage authentication journeys/trees.
86
- `);
87
- // Act
88
- const testLine = collapseWhitespace(
89
- crudeMultilineTakeUntil(
90
- stdout,
91
- ' user ',
92
- ' password '
93
- )
94
- );
95
-
96
- // Assert
97
- expect(testLine).toBe(expected);
98
- });
99
-
100
- test("CLI help interface 'list argument password' description should be expected english", async () => {
101
- // Arrange
102
- const expectedDescription = `
103
- password Password.
104
- `.trim();
105
- // Act
106
- const testLine = stdout
107
- .split(/\n/)
108
- .find((line) => line.trim().startsWith('password'))
109
- .trim();
110
- // Assert
111
- expect(testLine).toBe(expectedDescription);
112
- });
113
-
114
- test("CLI help interface 'list option -m, --type <type>' description should be expected english multiline", async () => {
115
- // Arrange
116
- const expected = collapseWhitespace(`
117
- -m, --type <type> Override auto-detected deployment type. Valid values for
118
- type:
119
- classic: A classic Access Management-only deployment
120
- with custom layout and configuration.
121
- cloud: A ForgeRock Identity Cloud environment.
122
- forgeops: A ForgeOps CDK or CDM deployment.
123
- The detected or provided deployment type controls certain
124
- behavior like obtaining an Identity Management admin
125
- token or not and whether to export/import referenced
126
- email templates or how to walk through the tenant admin
127
- login flow of Identity Cloud and handle MFA (choices:
128
- "classic", "cloud", "forgeops")
129
- `);
130
- // Act
131
- const testLine = collapseWhitespace(
132
- crudeMultilineTakeUntil(
133
- stdout,
134
- ' -m, --type <type> ',
135
- ' -k, --insecure '
136
- )
137
- );
138
-
139
- // Assert
140
- expect(testLine).toBe(expected);
141
- });
142
-
143
- test("CLI help interface 'list option -k, --insecure' description should be expected english multiline", async () => {
144
- // Arrange
145
- const expected = collapseWhitespace(`
146
- -k, --insecure Allow insecure connections when using SSL/TLS. Has no effect when using a network proxy for https (HTTPS_PROXY=http://<host>:<port>), in that case the proxy must provide this capability. (default: Don't allow insecure connections) -l, --long Long with all fields. (default: false)
147
- `);
148
- // Act
149
- const testLine = collapseWhitespace(
150
- crudeMultilineTakeUntil(
151
- stdout,
152
- ' -k, --insecure ',
153
- ' -a, --analyze '
154
- )
155
- );
156
-
157
- // Assert
158
- expect(testLine).toBe(expected);
159
- });
160
-
161
- test("CLI help interface 'list option --analyze' description should be expected english", async () => {
162
- // Arrange
163
- const expectedDescription = `
164
- -a, --analyze Analyze journeys for custom nodes.
165
- `.trim();
166
- // Act
167
- const testLine = stdout
168
- .split(/\n/)
169
- .find((line) => line.trim().startsWith('-a, --analyze'))
170
- .trim();
171
- // Assert
172
- expect(testLine).toBe(expectedDescription);
173
- });