@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.
- package/CHANGELOG.md +13 -1
- package/README.md +3 -3
- package/package.json +17 -15
- package/src/app.js +7 -6
- package/src/cli/_template/cmd-delete.js +9 -8
- package/src/cli/_template/cmd-describe.js +9 -8
- package/src/cli/_template/cmd-export.js +9 -8
- package/src/cli/_template/cmd-import.js +9 -8
- package/src/cli/_template/cmd-list.js +9 -8
- package/src/cli/_template/cmd-sub1-delete.js +9 -8
- package/src/cli/_template/cmd-sub1-describe.js +9 -8
- package/src/cli/_template/cmd-sub1-export.js +9 -8
- package/src/cli/_template/cmd-sub1-import.js +9 -8
- package/src/cli/_template/cmd-sub1-list.js +9 -8
- package/src/cli/_template/cmd-sub2-delete.js +9 -8
- package/src/cli/_template/cmd-sub2-describe.js +9 -8
- package/src/cli/_template/cmd-sub2-export.js +9 -8
- package/src/cli/_template/cmd-sub2-import.js +9 -8
- package/src/cli/_template/cmd-sub2-list.js +9 -8
- package/src/cli/admin/admin-add-autoid-static-user-mapping.js +12 -12
- package/src/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +15 -18
- package/src/cli/admin/admin-get-access-token.js +12 -12
- package/src/cli/admin/admin-grant-oauth2-client-admin-privileges.js +13 -13
- package/src/cli/admin/admin-hide-generic-extension-attributes.js +13 -13
- package/src/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +13 -13
- package/src/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +14 -13
- package/src/cli/admin/admin-list-static-user-mappings.js +12 -12
- package/src/cli/admin/admin-remove-static-user-mapping.js +12 -12
- package/src/cli/admin/admin-repair-org-model.js +13 -13
- package/src/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +13 -13
- package/src/cli/admin/admin-show-generic-extension-attributes.js +13 -13
- package/src/cli/app/app-delete.js +9 -8
- package/src/cli/app/app-describe.js +9 -8
- package/src/cli/app/app-export.js +15 -15
- package/src/cli/app/app-import.js +11 -11
- package/src/cli/app/app-list.js +11 -12
- package/src/cli/conn/conn-add.js +11 -11
- package/src/cli/conn/conn-delete.js +3 -1
- package/src/cli/conn/conn-describe.js +3 -1
- package/src/cli/conn/conn-list.js +3 -4
- package/src/cli/email/email-template-export.js +16 -16
- package/src/cli/email/email-template-import.js +16 -16
- package/src/cli/email/email-template-list.js +11 -11
- package/src/cli/esv/esv-apply.js +12 -12
- package/src/cli/esv/esv-secret-create.js +11 -11
- package/src/cli/esv/esv-secret-delete.js +13 -13
- package/src/cli/esv/esv-secret-describe.js +11 -11
- package/src/cli/esv/esv-secret-export.js +9 -8
- package/src/cli/esv/esv-secret-import.js +9 -8
- package/src/cli/esv/esv-secret-list.js +11 -11
- package/src/cli/esv/esv-secret-set.js +11 -11
- package/src/cli/esv/esv-secret-version-activate.js +12 -12
- package/src/cli/esv/esv-secret-version-create.js +11 -11
- package/src/cli/esv/esv-secret-version-deactivate.js +12 -12
- package/src/cli/esv/esv-secret-version-delete.js +13 -13
- package/src/cli/esv/esv-secret-version-list.js +11 -11
- package/src/cli/esv/esv-variable-create.js +11 -11
- package/src/cli/esv/esv-variable-delete.js +13 -16
- package/src/cli/esv/esv-variable-describe.js +11 -11
- package/src/cli/esv/esv-variable-export.js +9 -8
- package/src/cli/esv/esv-variable-import.js +9 -8
- package/src/cli/esv/esv-variable-list.js +11 -11
- package/src/cli/esv/esv-variable-set.js +13 -16
- package/src/cli/idm/idm-count.js +11 -11
- package/src/cli/idm/idm-export.js +16 -16
- package/src/cli/idm/idm-list.js +11 -11
- package/src/cli/idp/idp-export.js +15 -19
- package/src/cli/idp/idp-import.js +18 -18
- package/src/cli/idp/idp-list.js +12 -12
- package/src/cli/info/info.js +23 -19
- package/src/cli/journey/journey-delete.js +14 -14
- package/src/cli/journey/journey-describe.js +26 -35
- package/src/cli/journey/journey-export.js +18 -21
- package/src/cli/journey/journey-import.js +17 -17
- package/src/cli/journey/journey-list.js +12 -12
- package/src/cli/journey/journey-prune.js +12 -12
- package/src/cli/logging/logs-list.js +33 -28
- package/src/cli/logging/logs-tail.js +26 -22
- package/src/cli/realm/realm-add-custom-domain.js +13 -13
- package/src/cli/realm/realm-describe.js +14 -14
- package/src/cli/realm/realm-list.js +11 -11
- package/src/cli/realm/realm-remove-custom-domain.js +16 -13
- package/src/cli/saml/saml-cot-export.js +16 -16
- package/src/cli/saml/saml-cot-import.js +18 -18
- package/src/cli/saml/saml-cot-list.js +12 -12
- package/src/cli/saml/saml-describe.js +12 -12
- package/src/cli/saml/saml-export.js +16 -19
- package/src/cli/saml/saml-import.js +19 -18
- package/src/cli/saml/saml-list.js +12 -12
- package/src/cli/saml/saml-metadata-export.js +15 -19
- package/src/cli/script/script-delete.js +9 -8
- package/src/cli/script/script-describe.js +9 -8
- package/src/cli/script/script-export.js +18 -20
- package/src/cli/script/script-import.js +13 -12
- package/src/cli/script/script-list.js +12 -12
- package/src/cli/theme/theme-delete.js +17 -21
- package/src/cli/theme/theme-export.js +19 -18
- package/src/cli/theme/theme-import.js +21 -20
- package/src/cli/theme/theme-list.js +12 -12
- package/.eslintrc +0 -29
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -30
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/README.md +0 -273
- package/.github/workflows/pipeline.yml +0 -487
- package/.prettierrc +0 -6
- package/CODE_OF_CONDUCT.md +0 -128
- package/docs/BINARIES.md +0 -22
- package/docs/CONTRIBUTE.md +0 -96
- package/docs/PIPELINE.md +0 -169
- package/docs/images/macos_warn1.png +0 -0
- package/docs/images/macos_warn2.png +0 -0
- package/docs/images/macos_warn3.png +0 -0
- package/docs/images/npm_versioning_guidelines.png +0 -0
- package/docs/images/release_pipeline.png +0 -0
- package/gulpfile.js +0 -49
- package/jsconfig.json +0 -6
- package/resources/sampleEntitiesFile.json +0 -8
- package/resources/sampleEnvFile.env +0 -2
- package/src/api/AuthenticateApi.js +0 -33
- package/src/api/BaseApi.js +0 -242
- package/src/api/CirclesOfTrustApi.js +0 -87
- package/src/api/EmailTemplateApi.js +0 -37
- package/src/api/IdmConfigApi.js +0 -88
- package/src/api/LogApi.js +0 -45
- package/src/api/ManagedObjectApi.js +0 -62
- package/src/api/OAuth2ClientApi.js +0 -69
- package/src/api/OAuth2OIDCApi.js +0 -73
- package/src/api/OAuth2ProviderApi.js +0 -32
- package/src/api/RealmApi.js +0 -99
- package/src/api/Saml2Api.js +0 -176
- package/src/api/ScriptApi.js +0 -84
- package/src/api/SecretsApi.js +0 -151
- package/src/api/ServerInfoApi.js +0 -41
- package/src/api/SocialIdentityProvidersApi.js +0 -114
- package/src/api/StartupApi.js +0 -45
- package/src/api/ThemeApi.js +0 -181
- package/src/api/TreeApi.js +0 -207
- package/src/api/VariablesApi.js +0 -104
- package/src/api/utils/ApiUtils.js +0 -77
- package/src/api/utils/Base64.js +0 -62
- package/src/cli/journey/journey-delete.e2e.test.js +0 -380
- package/src/cli/journey/journey-list.e2e.test.js +0 -141
- package/src/cli/theme/theme-delete.e2e.test.js +0 -178
- package/src/cli/theme/theme-list.e2e.test.js +0 -119
- package/src/ops/AdminOps.js +0 -901
- package/src/ops/AuthenticateOps.js +0 -342
- package/src/ops/CirclesOfTrustOps.js +0 -350
- package/src/ops/ConnectionProfileOps.js +0 -254
- package/src/ops/EmailTemplateOps.js +0 -326
- package/src/ops/IdmOps.js +0 -227
- package/src/ops/IdpOps.js +0 -342
- package/src/ops/JourneyOps.js +0 -2026
- package/src/ops/LogOps.js +0 -357
- package/src/ops/ManagedObjectOps.js +0 -34
- package/src/ops/OAuth2ClientOps.js +0 -151
- package/src/ops/OrganizationOps.js +0 -85
- package/src/ops/RealmOps.js +0 -139
- package/src/ops/SamlOps.js +0 -541
- package/src/ops/ScriptOps.js +0 -211
- package/src/ops/SecretsOps.js +0 -288
- package/src/ops/StartupOps.js +0 -114
- package/src/ops/ThemeOps.js +0 -379
- package/src/ops/VariablesOps.js +0 -185
- package/src/ops/templates/OAuth2ClientTemplate.json +0 -270
- package/src/ops/templates/OrgModelUserAttributesTemplate.json +0 -149
- package/src/ops/templates/cloud/GenericExtensionAttributesTemplate.json +0 -392
- package/src/ops/templates/cloud/managed.json +0 -4119
- package/src/ops/utils/Console.js +0 -434
- package/src/ops/utils/DataProtection.js +0 -92
- package/src/ops/utils/ExportImportUtils.js +0 -146
- package/src/ops/utils/OpsUtils.js +0 -76
- package/src/ops/utils/Wordwrap.js +0 -11
- package/src/storage/SessionStorage.js +0 -45
- package/test/client_cli/en/connections.test.js +0 -62
- package/test/client_cli/en/connections_add.test.js +0 -34
- package/test/client_cli/en/connections_delete.test.js +0 -34
- package/test/client_cli/en/connections_list.test.js +0 -34
- package/test/client_cli/en/email_templates.test.js +0 -77
- package/test/client_cli/en/email_templates_export.test.js +0 -196
- package/test/client_cli/en/email_templates_import.test.js +0 -145
- package/test/client_cli/en/email_templates_list.test.js +0 -130
- package/test/client_cli/en/idm.test.js +0 -111
- package/test/client_cli/en/idm_count.test.js +0 -121
- package/test/client_cli/en/idm_export.test.js +0 -136
- package/test/client_cli/en/idm_exportAll.test.js +0 -156
- package/test/client_cli/en/idm_exportAllRaw.test.js +0 -120
- package/test/client_cli/en/idm_import.test_.js +0 -103
- package/test/client_cli/en/idm_importAll.test_.js +0 -103
- package/test/client_cli/en/idm_list.test.js +0 -103
- package/test/client_cli/en/info.test.js +0 -125
- package/test/client_cli/en/journey.test.js +0 -127
- package/test/client_cli/en/journey_describe.test.js +0 -196
- package/test/client_cli/en/journey_export.test.js +0 -213
- package/test/client_cli/en/journey_import.test.js +0 -195
- package/test/client_cli/en/journey_importAll.test.js +0 -180
- package/test/client_cli/en/journey_list.test.js +0 -162
- package/test/client_cli/en/journey_prune.test.js +0 -148
- package/test/client_cli/en/logs.test.js +0 -79
- package/test/client_cli/en/logs_list.test.js +0 -83
- package/test/client_cli/en/logs_tail.test.js +0 -118
- package/test/client_cli/en/root.test.js +0 -91
- package/test/client_cli/en/script.test.js +0 -77
- package/test/client_cli/en/script_export.test.js +0 -213
- package/test/client_cli/en/script_import.test.js +0 -163
- package/test/client_cli/en/script_list.test.js +0 -148
- package/test/client_cli/utils/utils.js +0 -32
- package/test/e2e/journey/baseline/ForgottenUsername.journey.json +0 -216
- package/test/e2e/journey/baseline/Login.journey.json +0 -205
- package/test/e2e/journey/baseline/PasswordGrant.journey.json +0 -139
- package/test/e2e/journey/baseline/ProgressiveProfile.journey.json +0 -198
- package/test/e2e/journey/baseline/Registration.journey.json +0 -249
- package/test/e2e/journey/baseline/ResetPassword.journey.json +0 -268
- package/test/e2e/journey/baseline/UpdatePassword.journey.json +0 -323
- package/test/e2e/journey/baseline/allAlphaJourneys.journeys.json +0 -1520
- package/test/e2e/journey/delete/ForgottenUsername.journey.json +0 -216
- package/test/e2e/journey/delete/Login.journey.json +0 -205
- package/test/e2e/journey/delete/PasswordGrant.journey.json +0 -139
- package/test/e2e/journey/delete/ProgressiveProfile.journey.json +0 -198
- package/test/e2e/journey/delete/Registration.journey.json +0 -249
- package/test/e2e/journey/delete/ResetPassword.journey.json +0 -268
- package/test/e2e/journey/delete/UpdatePassword.journey.json +0 -323
- package/test/e2e/journey/delete/deleteMe.journey.json +0 -230
- package/test/e2e/journey/list/Disabled.journey.json +0 -43
- package/test/e2e/journey/list/ForgottenUsername.journey.json +0 -216
- package/test/e2e/journey/list/Login.journey.json +0 -205
- package/test/e2e/journey/list/PasswordGrant.journey.json +0 -139
- package/test/e2e/journey/list/ProgressiveProfile.journey.json +0 -198
- package/test/e2e/journey/list/Registration.journey.json +0 -249
- package/test/e2e/journey/list/ResetPassword.journey.json +0 -268
- package/test/e2e/journey/list/UpdatePassword.journey.json +0 -323
- package/test/e2e/setup.js +0 -98
- package/test/e2e/theme/baseline/Contrast.theme.json +0 -95
- package/test/e2e/theme/baseline/Highlander.theme.json +0 -95
- package/test/e2e/theme/baseline/Robroy.theme.json +0 -95
- package/test/e2e/theme/baseline/Starter-Theme.theme.json +0 -94
- package/test/e2e/theme/baseline/Zardoz.theme.json +0 -95
- package/test/e2e/theme/import/Contrast.theme.json +0 -95
- package/test/e2e/theme/import/Highlander.theme.json +0 -95
- package/test/e2e/theme/import/Robroy.theme.json +0 -95
- package/test/e2e/theme/import/Starter-Theme.theme.json +0 -94
- package/test/e2e/theme/import/Zardoz.default.theme.json +0 -95
- package/test/fs_tmp/.gitkeep +0 -2
- package/test/global/setup.js +0 -65
- package/test/lib_api/unit_tests/ApiUtils.test.js +0 -186
- package/test/lib_api/unit_tests/Base64URL.test.js +0 -22
- package/test/lib_api/unit_tests/DataProtection.test.js +0 -25
- 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
|
-
});
|