@rockcarver/frodo-cli 0.18.2-10 → 0.18.2-11

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 CHANGED
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.18.2-11] - 2022-11-26
11
+
10
12
  ## [0.18.2-10] - 2022-11-23
11
13
 
12
14
  ## [0.18.2-9] - 2022-11-22
@@ -734,7 +736,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
734
736
  - Fixed problem with adding connection profiles
735
737
  - Miscellaneous bug fixes
736
738
 
737
- [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v0.18.2-10...HEAD
739
+ [Unreleased]: https://github.com/rockcarver/frodo-cli/compare/v0.18.2-11...HEAD
740
+
741
+ [0.18.2-11]: https://github.com/rockcarver/frodo-cli/compare/v0.18.2-10...v0.18.2-11
738
742
 
739
743
  [0.18.2-10]: https://github.com/rockcarver/frodo-cli/compare/v0.18.2-9...v0.18.2-10
740
744
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rockcarver/frodo-cli",
3
- "version": "0.18.2-10",
3
+ "version": "0.18.2-11",
4
4
  "type": "module",
5
5
  "description": "A command line interface to manage ForgeRock Identity Cloud tenants, ForgeOps deployments, and classic deployments.",
6
6
  "keywords": [
@@ -31,9 +31,7 @@
31
31
  "scripts": {
32
32
  "test": "npx tsc && node --experimental-vm-modules node_modules/jest/bin/jest.js",
33
33
  "test:local": "npm run build && node --experimental-vm-modules node_modules/jest/bin/jest.js",
34
- "test:list": "node --experimental-vm-modules node_modules/jest/bin/jest.js --listTests",
35
- "test:e2e": "node --experimental-vm-modules node_modules/jest/bin/jest.js --runInBand e2e",
36
- "test:e2e:list": "node --experimental-vm-modules node_modules/jest/bin/jest.js --listTests e2e",
34
+ "test:debug": "node --no-warnings --experimental-vm-modules --experimental-specifier-resolution=node node_modules/jest/bin/jest.js --verbose=true --silent=false",
37
35
  "lint": "npx eslint --ext .ts --ignore-path .gitignore .",
38
36
  "lint:fix": "npx eslint --fix --ext .ts --ignore-path .gitignore .",
39
37
  "build": "npx tsc && npx gulp",
@@ -90,7 +88,7 @@
90
88
  ]
91
89
  },
92
90
  "dependencies": {
93
- "@rockcarver/frodo-lib": "0.16.2-11",
91
+ "@rockcarver/frodo-lib": "0.16.2-13",
94
92
  "cli-progress": "^3.11.2",
95
93
  "cli-table3": "^0.6.3",
96
94
  "colors": "^1.4.0",
@@ -1 +0,0 @@
1
- {"version":3,"file":"journey-delete.e2e.test_.js","names":["spawn","spawnSync","ansiEscapeCodes","beforeAll","beforeEach","deleteJourneysCmd","status","console","error","stderr","toString","log","stdout","importTestJourneysCmd","cwd","describe","it","done","deleteJourneyCmd","expected","join","chunks","on","chunk","push","output","Buffer","concat","replace","expect","toContain","str"],"sources":["cli/journey/journey-delete.e2e.test_.ts"],"sourcesContent":["/* eslint-disable no-console */\n// import { jest } from '@jest/globals';\nimport { spawn, spawnSync } from 'child_process';\n\nconst ansiEscapeCodes =\n // eslint-disable-next-line no-control-regex\n /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;\n\n/**\n * Run once before running the suites in this file\n */\nbeforeAll(async () => {\n //\n});\n\n/**\n * Run before every test in every suite in this file\n */\nbeforeEach(async () => {\n // delete all journeys\n const deleteJourneysCmd = spawnSync('frodo', [\n 'journey',\n 'delete',\n '--all',\n 'frodo-dev',\n ]);\n if (deleteJourneysCmd.status && deleteJourneysCmd.status > 0) {\n console.error(deleteJourneysCmd.stderr.toString());\n console.log(deleteJourneysCmd.stdout.toString());\n }\n\n // import test journeys\n const importTestJourneysCmd = spawnSync(\n 'frodo',\n ['journey', 'import', '--all-separate', 'frodo-dev'],\n {\n cwd: `test/e2e/journey/delete`,\n }\n );\n if (importTestJourneysCmd.status && importTestJourneysCmd.status > 0) {\n console.error(importTestJourneysCmd.stderr.toString());\n console.log(importTestJourneysCmd.stdout.toString());\n }\n});\n\ndescribe('frodo journey delete', () => {\n it('\"frodo journey delete -i deleteMe\": should delete the deleteMe journey and all its nodes', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-i',\n 'deleteMe',\n 'frodo-dev',\n ]);\n const expected = ['✔ Deleted deleteMe and 7/7 nodes.', ''].join('\\n');\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toContain(expected);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n it('\"frodo journey delete -i deleteMe --verbose\": should delete the deleteMe journey and all its nodes with verbose output', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-i',\n 'deleteMe',\n '--verbose',\n 'frodo-dev',\n ]);\n const expected = [\n 'Deleted deleteMe (tree)\\n',\n 'Read 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\\n',\n 'Deleted 68e23c54-0c9e-4991-9b25-daf306d6ec65 (ZeroPageLoginNode) from deleteMe\\n',\n 'Deleted 9cd184fc-9453-4666-b667-2875d9301b5e (DataStoreDecisionNode) from deleteMe\\n',\n 'Read 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\\n',\n 'Deleted 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\\n',\n 'Deleted fab1f53e-cda4-458a-b458-b07f75c75d5f (ValidatedUsernameNode) from deleteMe\\n',\n 'Deleted 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\\n',\n 'Deleted 9d146833-e8d1-4802-8c35-0d7772290807 (DisplayUserNameNode) from deleteMe\\n',\n 'Deleted c22373f9-252b-4d0b-b80e-e4b392a17d98 (ValidatedPasswordNode) from deleteMe\\n',\n '✔ Deleted deleteMe and 7/7 nodes.\\n',\n ];\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n for (const str of expected) {\n expect(output).toContain(str);\n }\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n it('\"frodo journey delete -i deleteMe --no-deep\": should delete the deleteMe journey and none of its nodes', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-i',\n 'deleteMe',\n '--no-deep',\n 'frodo-dev',\n ]);\n const expected = ['✔ Deleted deleteMe and 0/0 nodes.', ''].join('\\n');\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toContain(expected);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n it('\"frodo journey delete -i deleteMe --no-deep --verbose\": should delete the deleteMe journey and none of its nodes with verbose output', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-i',\n 'deleteMe',\n '--no-deep',\n '--verbose',\n 'frodo-dev',\n ]);\n const expected = [\n 'Deleted deleteMe (tree)\\n',\n '✔ Deleted deleteMe and 0/0 nodes.\\n',\n ];\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n for (const str of expected) {\n expect(output).toContain(str);\n }\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n});\n\ndescribe('frodo journey delete --all', () => {\n it(\n '\"frodo journey delete -a\": should delete all journeys and all their nodes',\n (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-a',\n 'frodo-dev',\n ]);\n const expected = [\n '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 51/51 nodes.',\n '',\n ].join('\\n');\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toContain(expected);\n done();\n } catch (error) {\n done(error);\n }\n });\n },\n // increase timeout for long-running test\n 10 * 1000\n );\n\n it(\n '\"frodo journey delete -a --verbose\": should delete all journeys and all their nodes with verbose output',\n (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-a',\n '--verbose',\n 'frodo-dev',\n ]);\n const expected = [\n '[----------------------------------------] 0% | 0/8 | Deleting journeys...\\n',\n 'Deleted ResetPassword (tree)\\n',\n 'Read cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b (PageNode) from ResetPassword\\n',\n 'Deleted 06c97be5-7fdd-4739-aea1-ecc7fe082865 (EmailSuspendNode) from ResetPassword\\n',\n 'Deleted 989f0bf8-a328-4217-b82b-5275d79ca8bd (PatchObjectNode) from ResetPassword\\n',\n 'Deleted 21b8ddf3-0203-4ae1-ab05-51cf3a3a707a (IdentifyExistingUserNode) from ResetPassword\\n',\n 'Read e4c752f9-c625-48c9-9644-a58802fa9e9c (PageNode) from ResetPassword\\n',\n 'Deleted cc3e1ed2-25f1-47bf-83c6-17084f8b2b2b (PageNode) from ResetPassword\\n',\n 'Deleted 276afa7c-a680-4cf4-a5f6-d6c78191f5c9 (AttributeCollectorNode) from ResetPassword\\n',\n 'Deleted e4c752f9-c625-48c9-9644-a58802fa9e9c (PageNode) from ResetPassword\\n',\n 'Deleted 009c19c8-9572-47bb-adb2-1f092c559a43 (ValidatedPasswordNode) from ResetPassword\\n',\n 'Deleted Registration (tree)\\n',\n 'Read 0c091c49-f3af-48fb-ac6f-07fba0499dd6 (PageNode) from Registration\\n',\n 'Deleted d3ce2036-1523-4ce8-b1a2-895a2a036667 (AttributeCollectorNode) from Registration\\n',\n 'Deleted 0c091c49-f3af-48fb-ac6f-07fba0499dd6 (PageNode) from Registration\\n',\n 'Deleted 3d8709a1-f09f-4d1f-8094-2850e472c1db (ValidatedPasswordNode) from Registration\\n',\n 'Deleted 120c69d3-90b4-4ad4-b7af-380e8b119340 (KbaCreateNode) from Registration\\n',\n 'Deleted b4a0e915-c15d-4b83-9c9d-18347d645976 (AcceptTermsAndConditionsNode) from Registration\\n',\n 'Deleted ad5dcbb3-7335-49b7-b3e7-7d850bb88237 (CreateObjectNode) from Registration\\n',\n 'Deleted 7fcaf48e-a754-4959-858b-05b2933b825f (ValidatedUsernameNode) from Registration\\n',\n 'Deleted 97a15eb2-a015-4b6d-81a0-be78c3aa1a3b (IncrementLoginCountNode) from Registration\\n',\n 'Deleted PasswordGrant (tree)\\n',\n 'Read 6b9a715d-ea23-4eae-9a59-69797c147157 (PageNode) from PasswordGrant\\n',\n 'Deleted 59952413-9bc2-47e5-a9b2-b04c1d729e24 (UsernameCollectorNode) from PasswordGrant\\n',\n 'Deleted 6b9a715d-ea23-4eae-9a59-69797c147157 (PageNode) from PasswordGrant\\n',\n 'Deleted 8c217417-11dd-4a0f-a9e4-59c2390085be (PasswordCollectorNode) from PasswordGrant\\n',\n 'Deleted e2988546-a459-4c9a-b0e2-fa65ae136b34 (DataStoreDecisionNode) from PasswordGrant\\n',\n 'Deleted ProgressiveProfile (tree)\\n',\n 'Read a5aecad8-854a-4ed5-b719-ff6c90e858c0 (PageNode) from ProgressiveProfile\\n',\n 'Deleted 423a959a-a1b9-498a-b0f7-596b6b6e775a (PatchObjectNode) from ProgressiveProfile\\n',\n 'Deleted a1f45b44-5bf7-4c57-aa3f-75c619c7db8e (QueryFilterDecisionNode) from ProgressiveProfile\\n',\n 'Deleted 8afdaec3-275e-4301-bb53-34f03e6a4b29 (LoginCountDecisionNode) from ProgressiveProfile\\n',\n 'Deleted a5aecad8-854a-4ed5-b719-ff6c90e858c0 (PageNode) from ProgressiveProfile\\n',\n 'Deleted 0a042e10-b22e-4e02-86c4-65e26e775f7a (AttributeCollectorNode) from ProgressiveProfile\\n',\n 'Deleted ForgottenUsername (tree)\\n',\n 'Read 5e2a7c95-94af-4b23-8724-deb13853726a (PageNode) from ForgottenUsername\\n',\n 'Deleted 5e2a7c95-94af-4b23-8724-deb13853726a (PageNode) from ForgottenUsername\\n',\n 'Deleted 9f1e8d94-4922-481b-9e14-212b66548900 (AttributeCollectorNode) from ForgottenUsername\\n',\n 'Deleted bf9ea8d5-9802-4f26-9664-a21840faac23 (IdentifyExistingUserNode) from ForgottenUsername\\n',\n 'Deleted d9a79f01-2ce3-4be2-a28a-975f35c3c8ca (EmailSuspendNode) from ForgottenUsername\\n',\n 'Deleted b93ce36e-1976-4610-b24f-8d6760b5463b (InnerTreeEvaluatorNode) from ForgottenUsername\\n',\n 'Deleted deleteMe (tree)\\n',\n 'Read 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\\n',\n 'Deleted 9cd184fc-9453-4666-b667-2875d9301b5e (DataStoreDecisionNode) from deleteMe\\n',\n 'Read 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\\n',\n 'Deleted 68e23c54-0c9e-4991-9b25-daf306d6ec65 (ZeroPageLoginNode) from deleteMe\\n',\n 'Deleted 3c89697f-c114-4d36-907f-6c36f820cde7 (PageNode) from deleteMe\\n',\n 'Deleted fab1f53e-cda4-458a-b458-b07f75c75d5f (ValidatedUsernameNode) from deleteMe\\n',\n 'Deleted c22373f9-252b-4d0b-b80e-e4b392a17d98 (ValidatedPasswordNode) from deleteMe\\n',\n 'Deleted 2d564be0-325e-439a-aeb0-6c884270c756 (PageNode) from deleteMe\\n',\n 'Deleted 9d146833-e8d1-4802-8c35-0d7772290807 (DisplayUserNameNode) from deleteMe\\n',\n 'Deleted UpdatePassword (tree)\\n',\n 'Read 20237b34-26cb-4a0b-958f-abb422290d42 (PageNode) from UpdatePassword\\n',\n 'Read d018fcd1-4e22-4160-8c41-63bee51c9cb3 (PageNode) from UpdatePassword\\n',\n 'Deleted 0f0904e6-1da3-4cdb-9abf-0d2545016fab (AttributePresentDecisionNode) from UpdatePassword\\n',\n 'Deleted 20237b34-26cb-4a0b-958f-abb422290d42 (PageNode) from UpdatePassword\\n',\n 'Deleted 7d1deabe-cd98-49c8-943f-ca12305775f3 (DataStoreDecisionNode) from UpdatePassword\\n',\n 'Deleted fe2962fc-4db3-4066-8624-553649afc438 (ValidatedPasswordNode) from UpdatePassword\\n',\n 'Deleted 3990ce1f-cce6-435b-ae1c-f138e89411c1 (PatchObjectNode) from UpdatePassword\\n',\n 'Deleted a3d97b53-e38a-4b24-aed0-a021050eb744 (EmailSuspendNode) from UpdatePassword\\n',\n 'Deleted d018fcd1-4e22-4160-8c41-63bee51c9cb3 (PageNode) from UpdatePassword\\n',\n 'Deleted 21a99653-a7a7-47ee-b650-f493a84bba09 (ValidatedPasswordNode) from UpdatePassword\\n',\n 'Deleted d1b79744-493a-44fe-bc26-7d324a8caa4e (SessionDataNode) from UpdatePassword\\n',\n 'Deleted Login (tree)\\n',\n 'Read a12bc72f-ad97-4f1e-a789-a1fa3dd566c8 (PageNode) from Login\\n',\n 'Deleted 33b24514-3e50-4180-8f08-ab6f4e51b07e (InnerTreeEvaluatorNode) from Login\\n',\n 'Deleted 2998c1c9-f4c8-4a00-b2c6-3426783ee49d (DataStoreDecisionNode) from Login\\n',\n 'Deleted 7354982f-57b6-4b04-9ddc-f1dd1e1e07d0 (ValidatedUsernameNode) from Login\\n',\n 'Deleted bba3e0d8-8525-4e82-bf48-ac17f7988917 (IncrementLoginCountNode) from Login\\n',\n 'Deleted 0c80c39b-4813-4e67-b4fb-5a0bba85f994 (ValidatedPasswordNode) from Login\\n',\n 'Deleted a12bc72f-ad97-4f1e-a789-a1fa3dd566c8 (PageNode) from Login\\n',\n '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 51/51 nodes.\\n',\n ];\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n for (const str of expected) {\n expect(output).toContain(str);\n }\n done();\n } catch (error) {\n done(error);\n }\n });\n },\n // increase timeout for long-running test\n 10 * 1000\n );\n\n it('\"frodo journey delete -a --no-deep\": should delete all journeys but none of their nodes', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-a',\n '--no-deep',\n 'frodo-dev',\n ]);\n const expected = [\n '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 0/0 nodes.',\n '',\n ].join('\\n');\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toContain(expected);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n it('\"frodo journey delete -a --no-deep --verbose\": should delete all journeys but none of their nodes with verbose output', (done) => {\n const deleteJourneyCmd = spawn('frodo', [\n 'journey',\n 'delete',\n '-a',\n '--no-deep',\n '--verbose',\n 'frodo-dev',\n ]);\n const expected = [\n '[----------------------------------------] 0% | 0/8 | Deleting journeys...\\n',\n 'Deleted ResetPassword (tree)\\n',\n 'Deleted Registration (tree)\\n',\n 'Deleted PasswordGrant (tree)\\n',\n 'Deleted ProgressiveProfile (tree)\\n',\n 'Deleted ForgottenUsername (tree)\\n',\n 'Deleted deleteMe (tree)\\n',\n 'Deleted UpdatePassword (tree)\\n',\n 'Deleted Login (tree)\\n',\n '[========================================] 100% | 8/8 | Deleted 8/8 journeys and 0/0 nodes.\\n',\n ];\n const chunks: Uint8Array[] = [];\n deleteJourneyCmd.stderr.on('data', (chunk) => {\n chunks.push(chunk);\n });\n deleteJourneyCmd.stderr.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n for (const str of expected) {\n expect(output).toContain(str);\n }\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n});\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"journey-list.e2e.test_.js","names":["spawn","spawnSync","ansiEscapeCodes","beforeAll","deleteJourneysCmd","status","console","error","stderr","toString","log","stdout","importBaselineJourneysCmd","cwd","importTestJourneysCmd","describe","it","done","journeyList","expected","join","chunks","on","chunk","push","output","Buffer","concat","expect","toBe","expectedLong","replace"],"sources":["cli/journey/journey-list.e2e.test_.ts"],"sourcesContent":["/* eslint-disable no-console */\n// import { jest } from '@jest/globals';\nimport { spawn, spawnSync } from 'child_process';\n\nconst ansiEscapeCodes =\n // eslint-disable-next-line no-control-regex\n /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;\n\n/**\n * delete all journeys and import baseline and additional test journeys\n */\nbeforeAll(async () => {\n // delete all journeys\n const deleteJourneysCmd = spawnSync('frodo', [\n 'journey',\n 'delete',\n '--all',\n 'frodo-dev',\n ]);\n if (deleteJourneysCmd.status && deleteJourneysCmd.status > 0) {\n console.error(deleteJourneysCmd.stderr.toString());\n console.log(deleteJourneysCmd.stdout.toString());\n }\n\n // import baseline journeys\n const importBaselineJourneysCmd = spawnSync(\n 'frodo',\n ['journey', 'import', '--all-separate', 'frodo-dev'],\n {\n cwd: `test/e2e/journey/baseline`,\n }\n );\n if (\n importBaselineJourneysCmd.status &&\n importBaselineJourneysCmd.status > 0\n ) {\n console.error(importBaselineJourneysCmd.stderr.toString());\n console.log(importBaselineJourneysCmd.stdout.toString());\n }\n\n // import additional test journeys\n const importTestJourneysCmd = spawnSync(\n 'frodo',\n ['journey', 'import', '--all-separate', 'frodo-dev'],\n {\n cwd: `test/e2e/journey/list`,\n }\n );\n if (importTestJourneysCmd.status && importTestJourneysCmd.status > 0) {\n console.error(importTestJourneysCmd.stderr.toString());\n console.log(importTestJourneysCmd.stdout.toString());\n }\n});\n\ndescribe('frodo journey list', () => {\n it('\"frodo journey list\": should list the names of the default journeys', (done) => {\n const journeyList = spawn('frodo', ['journey', 'list', 'frodo-dev']);\n const expected = [\n 'Disabled',\n 'ForgottenUsername',\n 'Login',\n 'PasswordGrant',\n 'ProgressiveProfile',\n 'Registration',\n 'ResetPassword',\n 'UpdatePassword',\n '',\n ].join('\\n');\n\n const chunks: Uint8Array[] = [];\n journeyList.stdout.on('data', (chunk) => {\n chunks.push(chunk);\n });\n\n journeyList.stdout.on('end', () => {\n const output = Buffer.concat(chunks).toString();\n try {\n expect(output).toBe(expected);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n const expectedLong = [\n 'Listing journeys in realm \"alpha\"...',\n 'Name │Status │Tags ',\n 'Disabled │disabled│Prototype ',\n 'ForgottenUsername │enabled │Username Reset ',\n 'Login │enabled │Authentication ',\n 'PasswordGrant │enabled │ ',\n 'ProgressiveProfile│enabled │Progressive Profile',\n 'Registration │enabled │Registration ',\n 'ResetPassword │enabled │Password Reset ',\n 'UpdatePassword │enabled │Password Reset ',\n '',\n ].join('\\n');\n\n it('\"frodo journey list -l\": should list the names, status, and tags of the default journeys', (done) => {\n const journeyList = spawn('frodo', ['journey', 'list', '-l', 'frodo-dev']);\n\n const chunks: Uint8Array[] = [];\n journeyList.stdout.on('data', (chunk) => {\n chunks.push(chunk);\n });\n\n journeyList.stdout.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toBe(expectedLong);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n it('\"frodo journey list --long\": should list the names, status, and tags of the default journeys', (done) => {\n const journeyList = spawn('frodo', [\n 'journey',\n 'list',\n '--long',\n 'frodo-dev',\n ]);\n\n const chunks: Uint8Array[] = [];\n journeyList.stdout.on('data', (chunk) => {\n chunks.push(chunk);\n });\n\n journeyList.stdout.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toBe(expectedLong);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n});\n"],"mappings":"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"}