@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,380 +0,0 @@
1
- // import { jest } from '@jest/globals';
2
- import { spawn, spawnSync } from 'child_process';
3
-
4
- const ansiEscapeCodes =
5
- // eslint-disable-next-line no-control-regex
6
- /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;
7
-
8
- /**
9
- * Run once before running the suites in this file
10
- */
11
- beforeAll(async () => {});
12
-
13
- /**
14
- * Run before every test in every suite in this file
15
- */
16
- beforeEach(async () => {
17
- // delete all journeys
18
- const deleteJourneysCmd = spawnSync('frodo', [
19
- 'journey',
20
- 'delete',
21
- '--all',
22
- 'frodo-dev',
23
- ]);
24
- if (deleteJourneysCmd.status > 0) {
25
- console.error(deleteJourneysCmd.stderr.toString());
26
- console.log(deleteJourneysCmd.stdout.toString());
27
- }
28
-
29
- // import test journeys
30
- const importTestJourneysCmd = spawnSync(
31
- 'frodo',
32
- ['journey', 'import', '--all-separate', 'frodo-dev'],
33
- {
34
- cwd: `test/e2e/journey/delete`,
35
- }
36
- );
37
- if (importTestJourneysCmd.status > 0) {
38
- console.error(importTestJourneysCmd.stderr.toString());
39
- console.log(importTestJourneysCmd.stdout.toString());
40
- }
41
- });
42
-
43
- describe('frodo journey delete', () => {
44
- it('"frodo journey delete -i deleteMe": should delete the deleteMe journey and all its nodes', (done) => {
45
- const deleteJourneyCmd = spawn('frodo', [
46
- 'journey',
47
- 'delete',
48
- '-i',
49
- 'deleteMe',
50
- 'frodo-dev',
51
- ]);
52
- const expected = ['✔ Deleted deleteMe and 7/7 nodes.', ''].join('\n');
53
- const chunks = [];
54
- deleteJourneyCmd.stderr.on('data', (chunk) => {
55
- chunks.push(chunk);
56
- });
57
- deleteJourneyCmd.stderr.on('end', () => {
58
- const output = Buffer.concat(chunks)
59
- .toString()
60
- .replace(ansiEscapeCodes, '');
61
- try {
62
- expect(output).toContain(expected);
63
- done();
64
- } catch (error) {
65
- done(error);
66
- }
67
- });
68
- });
69
-
70
- it('"frodo journey delete -i deleteMe --verbose": should delete the deleteMe journey and all its nodes with verbose output', (done) => {
71
- const deleteJourneyCmd = spawn('frodo', [
72
- 'journey',
73
- 'delete',
74
- '-i',
75
- 'deleteMe',
76
- '--verbose',
77
- 'frodo-dev',
78
- ]);
79
- const expected = [
80
- 'Deleted deleteMe (tree)\n',
81
- 'Read 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\n',
82
- 'Deleted 68e23c54-0c9e-4991-9b25-daf306d6ec65 (ZeroPageLoginNode) from deleteMe\n',
83
- 'Deleted 9cd184fc-9453-4666-b667-2875d9301b5e (DataStoreDecisionNode) from deleteMe\n',
84
- 'Read 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\n',
85
- 'Deleted 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\n',
86
- 'Deleted fab1f53e-cda4-458a-b458-b07f75c75d5f (ValidatedUsernameNode) from deleteMe\n',
87
- 'Deleted 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\n',
88
- 'Deleted 9d146833-e8d1-4802-8c35-0d7772290807 (DisplayUserNameNode) from deleteMe\n',
89
- 'Deleted c22373f9-252b-4d0b-b80e-e4b392a17d98 (ValidatedPasswordNode) from deleteMe\n',
90
- '✔ Deleted deleteMe and 7/7 nodes.\n',
91
- ];
92
- const chunks = [];
93
- deleteJourneyCmd.stderr.on('data', (chunk) => {
94
- chunks.push(chunk);
95
- });
96
- deleteJourneyCmd.stderr.on('end', () => {
97
- const output = Buffer.concat(chunks)
98
- .toString()
99
- .replace(ansiEscapeCodes, '');
100
- try {
101
- for (const str of expected) {
102
- expect(output).toContain(str);
103
- }
104
- done();
105
- } catch (error) {
106
- done(error);
107
- }
108
- });
109
- });
110
-
111
- it('"frodo journey delete -i deleteMe --no-deep": should delete the deleteMe journey and none of its nodes', (done) => {
112
- const deleteJourneyCmd = spawn('frodo', [
113
- 'journey',
114
- 'delete',
115
- '-i',
116
- 'deleteMe',
117
- '--no-deep',
118
- 'frodo-dev',
119
- ]);
120
- const expected = ['✔ Deleted deleteMe and 0/0 nodes.', ''].join('\n');
121
- const chunks = [];
122
- deleteJourneyCmd.stderr.on('data', (chunk) => {
123
- chunks.push(chunk);
124
- });
125
- deleteJourneyCmd.stderr.on('end', () => {
126
- const output = Buffer.concat(chunks)
127
- .toString()
128
- .replace(ansiEscapeCodes, '');
129
- try {
130
- expect(output).toContain(expected);
131
- done();
132
- } catch (error) {
133
- done(error);
134
- }
135
- });
136
- });
137
-
138
- it('"frodo journey delete -i deleteMe --no-deep --verbose": should delete the deleteMe journey and none of its nodes with verbose output', (done) => {
139
- const deleteJourneyCmd = spawn('frodo', [
140
- 'journey',
141
- 'delete',
142
- '-i',
143
- 'deleteMe',
144
- '--no-deep',
145
- '--verbose',
146
- 'frodo-dev',
147
- ]);
148
- const expected = [
149
- 'Deleted deleteMe (tree)\n',
150
- '✔ Deleted deleteMe and 0/0 nodes.\n',
151
- ];
152
- const chunks = [];
153
- deleteJourneyCmd.stderr.on('data', (chunk) => {
154
- chunks.push(chunk);
155
- });
156
- deleteJourneyCmd.stderr.on('end', () => {
157
- const output = Buffer.concat(chunks)
158
- .toString()
159
- .replace(ansiEscapeCodes, '');
160
- try {
161
- for (const str of expected) {
162
- expect(output).toContain(str);
163
- }
164
- done();
165
- } catch (error) {
166
- done(error);
167
- }
168
- });
169
- });
170
- });
171
-
172
- describe('frodo journey delete --all', () => {
173
- it(
174
- '"frodo journey delete -a": should delete all journeys and all their nodes',
175
- (done) => {
176
- const deleteJourneyCmd = spawn('frodo', [
177
- 'journey',
178
- 'delete',
179
- '-a',
180
- 'frodo-dev',
181
- ]);
182
- const expected = [
183
- '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 51/51 nodes.',
184
- '',
185
- ].join('\n');
186
- const chunks = [];
187
- deleteJourneyCmd.stderr.on('data', (chunk) => {
188
- chunks.push(chunk);
189
- });
190
- deleteJourneyCmd.stderr.on('end', () => {
191
- const output = Buffer.concat(chunks)
192
- .toString()
193
- .replace(ansiEscapeCodes, '');
194
- try {
195
- expect(output).toContain(expected);
196
- done();
197
- } catch (error) {
198
- done(error);
199
- }
200
- });
201
- },
202
- // increase timeout for long-running test
203
- 10 * 1000
204
- );
205
-
206
- it(
207
- '"frodo journey delete -a --verbose": should delete all journeys and all their nodes with verbose output',
208
- (done) => {
209
- const deleteJourneyCmd = spawn('frodo', [
210
- 'journey',
211
- 'delete',
212
- '-a',
213
- '--verbose',
214
- 'frodo-dev',
215
- ]);
216
- const expected = [
217
- '[----------------------------------------] 0% | 0/8 | Deleting journeys...\n',
218
- 'Deleted ResetPassword (tree)\n',
219
- 'Read cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b (PageNode) from ResetPassword\n',
220
- 'Deleted 06c97be5-7fdd-4739-aea1-ecc7fe082865 (EmailSuspendNode) from ResetPassword\n',
221
- 'Deleted 989f0bf8-a328-4217-b82b-5275d79ca8bd (PatchObjectNode) from ResetPassword\n',
222
- 'Deleted 21b8ddf3-0203-4ae1-ab05-51cf3a3a707a (IdentifyExistingUserNode) from ResetPassword\n',
223
- 'Read e4c752f9-c625-48c9-9644-a58802fa9e9c (PageNode) from ResetPassword\n',
224
- 'Deleted cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b (PageNode) from ResetPassword\n',
225
- 'Deleted 276afa7c-a680-4cf4-a5f6-d6c78191f5c9 (AttributeCollectorNode) from ResetPassword\n',
226
- 'Deleted e4c752f9-c625-48c9-9644-a58802fa9e9c (PageNode) from ResetPassword\n',
227
- 'Deleted 009c19c8-9572-47bb-adb2-1f092c559a43 (ValidatedPasswordNode) from ResetPassword\n',
228
- 'Deleted Registration (tree)\n',
229
- 'Read 0c091c49-f3af-48fb-ac6f-07fba0499dd6 (PageNode) from Registration\n',
230
- 'Deleted d3ce2036-1523-4ce8-b1a2-895a2a036667 (AttributeCollectorNode) from Registration\n',
231
- 'Deleted 0c091c49-f3af-48fb-ac6f-07fba0499dd6 (PageNode) from Registration\n',
232
- 'Deleted 3d8709a1-f09f-4d1f-8094-2850e472c1db (ValidatedPasswordNode) from Registration\n',
233
- 'Deleted 120c69d3-90b4-4ad4-b7af-380e8b119340 (KbaCreateNode) from Registration\n',
234
- 'Deleted b4a0e915-c15d-4b83-9c9d-18347d645976 (AcceptTermsAndConditionsNode) from Registration\n',
235
- 'Deleted ad5dcbb3-7335-49b7-b3e7-7d850bb88237 (CreateObjectNode) from Registration\n',
236
- 'Deleted 7fcaf48e-a754-4959-858b-05b2933b825f (ValidatedUsernameNode) from Registration\n',
237
- 'Deleted 97a15eb2-a015-4b6d-81a0-be78c3aa1a3b (IncrementLoginCountNode) from Registration\n',
238
- 'Deleted PasswordGrant (tree)\n',
239
- 'Read 6b9a715d-ea23-4eae-9a59-69797c147157 (PageNode) from PasswordGrant\n',
240
- 'Deleted 59952413-9bc2-47e5-a9b2-b04c1d729e24 (UsernameCollectorNode) from PasswordGrant\n',
241
- 'Deleted 6b9a715d-ea23-4eae-9a59-69797c147157 (PageNode) from PasswordGrant\n',
242
- 'Deleted 8c217417-11dd-4a0f-a9e4-59c2390085be (PasswordCollectorNode) from PasswordGrant\n',
243
- 'Deleted e2988546-a459-4c9a-b0e2-fa65ae136b34 (DataStoreDecisionNode) from PasswordGrant\n',
244
- 'Deleted ProgressiveProfile (tree)\n',
245
- 'Read a5aecad8-854a-4ed5-b719-ff6c90e858c0 (PageNode) from ProgressiveProfile\n',
246
- 'Deleted 423a959a-a1b9-498a-b0f7-596b6b6e775a (PatchObjectNode) from ProgressiveProfile\n',
247
- 'Deleted a1f45b44-5bf7-4c57-aa3f-75c619c7db8e (QueryFilterDecisionNode) from ProgressiveProfile\n',
248
- 'Deleted 8afdaec3-275e-4301-bb53-34f03e6a4b29 (LoginCountDecisionNode) from ProgressiveProfile\n',
249
- 'Deleted a5aecad8-854a-4ed5-b719-ff6c90e858c0 (PageNode) from ProgressiveProfile\n',
250
- 'Deleted 0a042e10-b22e-4e02-86c4-65e26e775f7a (AttributeCollectorNode) from ProgressiveProfile\n',
251
- 'Deleted ForgottenUsername (tree)\n',
252
- 'Read 5e2a7c95-94af-4b23-8724-deb13853726a (PageNode) from ForgottenUsername\n',
253
- 'Deleted 5e2a7c95-94af-4b23-8724-deb13853726a (PageNode) from ForgottenUsername\n',
254
- 'Deleted 9f1e8d94-4922-481b-9e14-212b66548900 (AttributeCollectorNode) from ForgottenUsername\n',
255
- 'Deleted bf9ea8d5-9802-4f26-9664-a21840faac23 (IdentifyExistingUserNode) from ForgottenUsername\n',
256
- 'Deleted d9a79f01-2ce3-4be2-a28a-975f35c3c8ca (EmailSuspendNode) from ForgottenUsername\n',
257
- 'Deleted b93ce36e-1976-4610-b24f-8d6760b5463b (InnerTreeEvaluatorNode) from ForgottenUsername\n',
258
- 'Deleted deleteMe (tree)\n',
259
- 'Read 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\n',
260
- 'Deleted 9cd184fc-9453-4666-b667-2875d9301b5e (DataStoreDecisionNode) from deleteMe\n',
261
- 'Read 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\n',
262
- 'Deleted 68e23c54-0c9e-4991-9b25-daf306d6ec65 (ZeroPageLoginNode) from deleteMe\n',
263
- 'Deleted 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\n',
264
- 'Deleted fab1f53e-cda4-458a-b458-b07f75c75d5f (ValidatedUsernameNode) from deleteMe\n',
265
- 'Deleted c22373f9-252b-4d0b-b80e-e4b392a17d98 (ValidatedPasswordNode) from deleteMe\n',
266
- 'Deleted 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\n',
267
- 'Deleted 9d146833-e8d1-4802-8c35-0d7772290807 (DisplayUserNameNode) from deleteMe\n',
268
- 'Deleted UpdatePassword (tree)\n',
269
- 'Read 20237b34-26cb-4a0b-958f-abb422290d42 (PageNode) from UpdatePassword\n',
270
- 'Read d018fcd1-4e22-4160-8c41-63bee51c9cb3 (PageNode) from UpdatePassword\n',
271
- 'Deleted 0f0904e6-1da3-4cdb-9abf-0d2545016fab (AttributePresentDecisionNode) from UpdatePassword\n',
272
- 'Deleted 20237b34-26cb-4a0b-958f-abb422290d42 (PageNode) from UpdatePassword\n',
273
- 'Deleted 7d1deabe-cd98-49c8-943f-ca12305775f3 (DataStoreDecisionNode) from UpdatePassword\n',
274
- 'Deleted fe2962fc-4db3-4066-8624-553649afc438 (ValidatedPasswordNode) from UpdatePassword\n',
275
- 'Deleted 3990ce1f-cce6-435b-ae1c-f138e89411c1 (PatchObjectNode) from UpdatePassword\n',
276
- 'Deleted a3d97b53-e38a-4b24-aed0-a021050eb744 (EmailSuspendNode) from UpdatePassword\n',
277
- 'Deleted d018fcd1-4e22-4160-8c41-63bee51c9cb3 (PageNode) from UpdatePassword\n',
278
- 'Deleted 21a99653-a7a7-47ee-b650-f493a84bba09 (ValidatedPasswordNode) from UpdatePassword\n',
279
- 'Deleted d1b79744-493a-44fe-bc26-7d324a8caa4e (SessionDataNode) from UpdatePassword\n',
280
- 'Deleted Login (tree)\n',
281
- 'Read a12bc72f-ad97-4f1e-a789-a1fa3dd566c8 (PageNode) from Login\n',
282
- 'Deleted 33b24514-3e50-4180-8f08-ab6f4e51b07e (InnerTreeEvaluatorNode) from Login\n',
283
- 'Deleted 2998c1c9-f4c8-4a00-b2c6-3426783ee49d (DataStoreDecisionNode) from Login\n',
284
- 'Deleted 7354982f-57b6-4b04-9ddc-f1dd1e1e07d0 (ValidatedUsernameNode) from Login\n',
285
- 'Deleted bba3e0d8-8525-4e82-bf48-ac17f7988917 (IncrementLoginCountNode) from Login\n',
286
- 'Deleted 0c80c39b-4813-4e67-b4fb-5a0bba85f994 (ValidatedPasswordNode) from Login\n',
287
- 'Deleted a12bc72f-ad97-4f1e-a789-a1fa3dd566c8 (PageNode) from Login\n',
288
- '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 51/51 nodes.\n',
289
- ];
290
- const chunks = [];
291
- deleteJourneyCmd.stderr.on('data', (chunk) => {
292
- chunks.push(chunk);
293
- });
294
- deleteJourneyCmd.stderr.on('end', () => {
295
- const output = Buffer.concat(chunks)
296
- .toString()
297
- .replace(ansiEscapeCodes, '');
298
- try {
299
- for (const str of expected) {
300
- expect(output).toContain(str);
301
- }
302
- done();
303
- } catch (error) {
304
- done(error);
305
- }
306
- });
307
- },
308
- // increase timeout for long-running test
309
- 10 * 1000
310
- );
311
-
312
- it('"frodo journey delete -a --no-deep": should delete all journeys but none of their nodes', (done) => {
313
- const deleteJourneyCmd = spawn('frodo', [
314
- 'journey',
315
- 'delete',
316
- '-a',
317
- '--no-deep',
318
- 'frodo-dev',
319
- ]);
320
- const expected = [
321
- '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 0/0 nodes.',
322
- '',
323
- ].join('\n');
324
- const chunks = [];
325
- deleteJourneyCmd.stderr.on('data', (chunk) => {
326
- chunks.push(chunk);
327
- });
328
- deleteJourneyCmd.stderr.on('end', () => {
329
- const output = Buffer.concat(chunks)
330
- .toString()
331
- .replace(ansiEscapeCodes, '');
332
- try {
333
- expect(output).toContain(expected);
334
- done();
335
- } catch (error) {
336
- done(error);
337
- }
338
- });
339
- });
340
-
341
- it('"frodo journey delete -a --no-deep --verbose": should delete all journeys but none of their nodes with verbose output', (done) => {
342
- const deleteJourneyCmd = spawn('frodo', [
343
- 'journey',
344
- 'delete',
345
- '-a',
346
- '--no-deep',
347
- '--verbose',
348
- 'frodo-dev',
349
- ]);
350
- const expected = [
351
- '[----------------------------------------] 0% | 0/8 | Deleting journeys...\n',
352
- 'Deleted ResetPassword (tree)\n',
353
- 'Deleted Registration (tree)\n',
354
- 'Deleted PasswordGrant (tree)\n',
355
- 'Deleted ProgressiveProfile (tree)\n',
356
- 'Deleted ForgottenUsername (tree)\n',
357
- 'Deleted deleteMe (tree)\n',
358
- 'Deleted UpdatePassword (tree)\n',
359
- 'Deleted Login (tree)\n',
360
- '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 0/0 nodes.\n',
361
- ];
362
- const chunks = [];
363
- deleteJourneyCmd.stderr.on('data', (chunk) => {
364
- chunks.push(chunk);
365
- });
366
- deleteJourneyCmd.stderr.on('end', () => {
367
- const output = Buffer.concat(chunks)
368
- .toString()
369
- .replace(ansiEscapeCodes, '');
370
- try {
371
- for (const str of expected) {
372
- expect(output).toContain(str);
373
- }
374
- done();
375
- } catch (error) {
376
- done(error);
377
- }
378
- });
379
- });
380
- });
@@ -1,142 +0,0 @@
1
- // import { jest } from '@jest/globals';
2
- import { spawn, spawnSync } from 'child_process';
3
-
4
- const ansiEscapeCodes =
5
- // eslint-disable-next-line no-control-regex
6
- /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;
7
-
8
- /**
9
- * delete all journeys and import baseline and additional test journeys
10
- */
11
- beforeAll(async () => {
12
- // delete all journeys
13
- const deleteJourneysCmd = spawnSync('frodo', [
14
- 'journey',
15
- 'delete',
16
- '--all',
17
- 'frodo-dev',
18
- ]);
19
- if (deleteJourneysCmd.status > 0) {
20
- console.error(deleteJourneysCmd.stderr.toString());
21
- console.log(deleteJourneysCmd.stdout.toString());
22
- }
23
-
24
- // import baseline journeys
25
- const importBaselineJourneysCmd = spawnSync(
26
- 'frodo',
27
- ['journey', 'import', '--all-separate', 'frodo-dev'],
28
- {
29
- cwd: `test/e2e/journey/baseline`,
30
- }
31
- );
32
- if (importBaselineJourneysCmd.status > 0) {
33
- console.error(importBaselineJourneysCmd.stderr.toString());
34
- console.log(importBaselineJourneysCmd.stdout.toString());
35
- }
36
-
37
- // import additional test journeys
38
- const importTestJourneysCmd = spawnSync(
39
- 'frodo',
40
- ['journey', 'import', '--all-separate', 'frodo-dev'],
41
- {
42
- cwd: `test/e2e/journey/list`,
43
- }
44
- );
45
- if (importTestJourneysCmd.status > 0) {
46
- console.error(importTestJourneysCmd.stderr.toString());
47
- console.log(importTestJourneysCmd.stdout.toString());
48
- }
49
- });
50
-
51
- describe('frodo journey list', () => {
52
- it('"frodo journey list": should list the names of the default journeys', (done) => {
53
- const journeyList = spawn('frodo', ['journey', 'list', 'frodo-dev']);
54
- const expected = [
55
- 'Disabled',
56
- 'ForgottenUsername',
57
- 'Login',
58
- 'PasswordGrant',
59
- 'ProgressiveProfile',
60
- 'Registration',
61
- 'ResetPassword',
62
- 'UpdatePassword',
63
- '',
64
- ].join('\n');
65
-
66
- const chunks = [];
67
- journeyList.stdout.on('data', (chunk) => {
68
- chunks.push(chunk);
69
- });
70
-
71
- journeyList.stdout.on('end', () => {
72
- const output = Buffer.concat(chunks).toString();
73
- try {
74
- expect(output).toBe(expected);
75
- done();
76
- } catch (error) {
77
- done(error);
78
- }
79
- });
80
- });
81
-
82
- const expectedLong = [
83
- 'Listing journeys in realm "alpha"...',
84
- 'Name │Status │Tags ',
85
- 'Disabled │disabled│Prototype ',
86
- 'ForgottenUsername │enabled │Username Reset ',
87
- 'Login │enabled │Authentication ',
88
- 'PasswordGrant │enabled │ ',
89
- 'ProgressiveProfile│enabled │Progressive Profile',
90
- 'Registration │enabled │Registration ',
91
- 'ResetPassword │enabled │Password Reset ',
92
- 'UpdatePassword │enabled │Password Reset ',
93
- '',
94
- ].join('\n');
95
-
96
- it('"frodo journey list -l": should list the names, status, and tags of the default journeys', (done) => {
97
- const journeyList = spawn('frodo', ['journey', 'list', '-l', 'frodo-dev']);
98
-
99
- const chunks = [];
100
- journeyList.stdout.on('data', (chunk) => {
101
- chunks.push(chunk);
102
- });
103
-
104
- journeyList.stdout.on('end', () => {
105
- const output = Buffer.concat(chunks)
106
- .toString()
107
- .replace(ansiEscapeCodes, '');
108
- try {
109
- expect(output).toBe(expectedLong);
110
- done();
111
- } catch (error) {
112
- done(error);
113
- }
114
- });
115
- });
116
-
117
- it('"frodo journey list --long": should list the names, status, and tags of the default journeys', (done) => {
118
- const journeyList = spawn('frodo', [
119
- 'journey',
120
- 'list',
121
- '--long',
122
- 'frodo-dev',
123
- ]);
124
-
125
- const chunks = [];
126
- journeyList.stdout.on('data', (chunk) => {
127
- chunks.push(chunk);
128
- });
129
-
130
- journeyList.stdout.on('end', () => {
131
- const output = Buffer.concat(chunks)
132
- .toString()
133
- .replace(ansiEscapeCodes, '');
134
- try {
135
- expect(output).toBe(expectedLong);
136
- done();
137
- } catch (error) {
138
- done(error);
139
- }
140
- });
141
- });
142
- });
@@ -1,178 +0,0 @@
1
- // import { jest } from '@jest/globals';
2
- import { spawn, spawnSync } from 'child_process';
3
-
4
- const ansiEscapeCodes =
5
- // eslint-disable-next-line no-control-regex
6
- /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;
7
-
8
- /**
9
- * Run once before running the suites in this file
10
- */
11
- beforeAll(async () => {});
12
-
13
- /**
14
- * Run before every test in every suite in this file
15
- */
16
- beforeEach(async () => {
17
- // delete all themes
18
- const deleteThemesCmd = spawnSync('frodo', [
19
- 'theme',
20
- 'delete',
21
- '--all',
22
- 'frodo-dev',
23
- ]);
24
- if (deleteThemesCmd.status > 0) {
25
- console.error(deleteThemesCmd.stderr.toString());
26
- console.log(deleteThemesCmd.stdout.toString());
27
- }
28
-
29
- // import test themes
30
- const importTestThemesCmd = spawnSync(
31
- 'frodo',
32
- ['theme', 'import', '--all-separate', 'frodo-dev'],
33
- {
34
- cwd: `test/e2e/theme/baseline`,
35
- }
36
- );
37
- if (importTestThemesCmd.status > 0) {
38
- console.error(importTestThemesCmd.stderr.toString());
39
- console.log(importTestThemesCmd.stdout.toString());
40
- }
41
- });
42
-
43
- describe('frodo theme delete', () => {
44
- it('"frodo theme delete -n Zardoz": should delete the Zardoz theme', (done) => {
45
- const deleteThemeCmd = spawn('frodo', [
46
- 'theme',
47
- 'delete',
48
- '-n',
49
- 'Zardoz',
50
- 'frodo-dev',
51
- ]);
52
- const expected = ['✔ Deleted Zardoz.', ''].join('\n');
53
- const chunks = [];
54
- deleteThemeCmd.stderr.on('data', (chunk) => {
55
- chunks.push(chunk);
56
- });
57
- deleteThemeCmd.stderr.on('end', () => {
58
- const output = Buffer.concat(chunks)
59
- .toString()
60
- .replace(ansiEscapeCodes, '');
61
- try {
62
- expect(output).toContain(expected);
63
- done();
64
- } catch (error) {
65
- done(error);
66
- }
67
- });
68
- });
69
-
70
- it('"frodo theme delete -n DoesNotExist": should report an error that the theme does not exist', (done) => {
71
- const deleteThemeCmd = spawn('frodo', [
72
- 'theme',
73
- 'delete',
74
- '-n',
75
- 'DoesNotExist',
76
- 'frodo-dev',
77
- ]);
78
- const expected = ['✖ Error: DoesNotExist not found', ''].join('\n');
79
- const chunks = [];
80
- deleteThemeCmd.stderr.on('data', (chunk) => {
81
- chunks.push(chunk);
82
- });
83
- deleteThemeCmd.stderr.on('end', () => {
84
- const output = Buffer.concat(chunks)
85
- .toString()
86
- .replace(ansiEscapeCodes, '');
87
- try {
88
- expect(output).toContain(expected);
89
- done();
90
- } catch (error) {
91
- done(error);
92
- }
93
- });
94
- });
95
-
96
- it('"frodo theme delete -i 4ded6d91-ceea-400a-ae3f-42209f1b0e06": should delete the 4ded6d91-ceea-400a-ae3f-42209f1b0e06 (Zardoz) theme', (done) => {
97
- const deleteThemeCmd = spawn('frodo', [
98
- 'theme',
99
- 'delete',
100
- '-i',
101
- '4ded6d91-ceea-400a-ae3f-42209f1b0e06',
102
- 'frodo-dev',
103
- ]);
104
- const expected = [
105
- '✔ Deleted 4ded6d91-ceea-400a-ae3f-42209f1b0e06.',
106
- '',
107
- ].join('\n');
108
- const chunks = [];
109
- deleteThemeCmd.stderr.on('data', (chunk) => {
110
- chunks.push(chunk);
111
- });
112
- deleteThemeCmd.stderr.on('end', () => {
113
- const output = Buffer.concat(chunks)
114
- .toString()
115
- .replace(ansiEscapeCodes, '');
116
- try {
117
- expect(output).toContain(expected);
118
- done();
119
- } catch (error) {
120
- done(error);
121
- }
122
- });
123
- });
124
-
125
- it('"frodo theme delete -i 4ded6d91-ceea-400a-ae3f-42209f1b0e07": should report an error that the theme does not exist', (done) => {
126
- const deleteThemeCmd = spawn('frodo', [
127
- 'theme',
128
- 'delete',
129
- '-i',
130
- '4ded6d91-ceea-400a-ae3f-42209f1b0e07',
131
- 'frodo-dev',
132
- ]);
133
- const expected = [
134
- '✖ Error: 4ded6d91-ceea-400a-ae3f-42209f1b0e07 not found',
135
- '',
136
- ].join('\n');
137
- const chunks = [];
138
- deleteThemeCmd.stderr.on('data', (chunk) => {
139
- chunks.push(chunk);
140
- });
141
- deleteThemeCmd.stderr.on('end', () => {
142
- const output = Buffer.concat(chunks)
143
- .toString()
144
- .replace(ansiEscapeCodes, '');
145
- try {
146
- expect(output).toContain(expected);
147
- done();
148
- } catch (error) {
149
- done(error);
150
- }
151
- });
152
- });
153
-
154
- it('"frodo theme delete -a": should delete all themes', (done) => {
155
- const deleteThemeCmd = spawn('frodo', [
156
- 'theme',
157
- 'delete',
158
- '-a',
159
- 'frodo-dev',
160
- ]);
161
- const expected = ['✔ Deleted all realm themes.', ''].join('\n');
162
- const chunks = [];
163
- deleteThemeCmd.stderr.on('data', (chunk) => {
164
- chunks.push(chunk);
165
- });
166
- deleteThemeCmd.stderr.on('end', () => {
167
- const output = Buffer.concat(chunks)
168
- .toString()
169
- .replace(ansiEscapeCodes, '');
170
- try {
171
- expect(output).toContain(expected);
172
- done();
173
- } catch (error) {
174
- done(error);
175
- }
176
- });
177
- });
178
- });