@sprucelabs/spruce-cli 19.1.5 → 19.1.6

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 (33) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/build/__tests__/behavioral/tests/CreatingATest.test.d.ts +0 -2
  3. package/build/__tests__/behavioral/tests/CreatingATest.test.js +75 -147
  4. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  5. package/build/__tests__/behavioral/tests/RunningTests.test.d.ts +3 -0
  6. package/build/__tests__/behavioral/tests/RunningTests.test.js +99 -43
  7. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  8. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +3 -1
  9. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  10. package/build/__tests__/implementation/TestRunner.test.d.ts +1 -0
  11. package/build/__tests__/implementation/TestRunner.test.js +22 -10
  12. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  13. package/build/features/test/actions/CreateAction.js +13 -29
  14. package/build/features/test/actions/CreateAction.js.map +1 -1
  15. package/build/interfaces/SpyInterface.d.ts +6 -1
  16. package/build/interfaces/SpyInterface.js +1 -1
  17. package/build/interfaces/SpyInterface.js.map +1 -1
  18. package/build/tests/utilities/uiAssert.utility.d.ts +1 -0
  19. package/build/tests/utilities/uiAssert.utility.js +9 -0
  20. package/build/tests/utilities/uiAssert.utility.js.map +1 -1
  21. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  22. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  23. package/node_modules/@typescript-eslint/types/package.json +2 -2
  24. package/node_modules/@typescript-eslint/typescript-estree/package.json +4 -4
  25. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  26. package/package.json +3 -3
  27. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +8 -47
  28. package/src/__tests__/behavioral/tests/RunningTests.test.ts +34 -14
  29. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +2 -2
  30. package/src/__tests__/implementation/TestRunner.test.ts +9 -0
  31. package/src/features/test/actions/CreateAction.ts +13 -32
  32. package/src/interfaces/SpyInterface.ts +15 -3
  33. package/src/tests/utilities/uiAssert.utility.ts +9 -0
@@ -60,7 +60,7 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
60
60
  break;
61
61
  }
62
62
  _context.next = 12;
63
- return this.promptForSubDir(resolvedDestination, type);
63
+ return this.promptForSubDir(resolvedDestination);
64
64
  case 12:
65
65
  resolvedDestination = _context.sent;
66
66
  case 13:
@@ -102,47 +102,31 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
102
102
  }, {
103
103
  key: "promptForSubDir",
104
104
  value: function () {
105
- var _promptForSubDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(resolvedDestination, type) {
106
- var subdirs, match;
105
+ var _promptForSubDir = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(resolvedDestination) {
106
+ var match;
107
107
  return _regenerator["default"].wrap(function _callee2$(_context2) {
108
108
  while (1) switch (_context2.prev = _context2.next) {
109
109
  case 0:
110
- subdirs = _spruceSkillUtils.diskUtil.readDir(resolvedDestination).filter(function (d) {
111
- return _spruceSkillUtils.diskUtil.isDir(_spruceSkillUtils.diskUtil.resolvePath(resolvedDestination, d));
112
- });
113
- if (!(subdirs.length > 0)) {
114
- _context2.next = 6;
115
- break;
116
- }
117
- _context2.next = 4;
110
+ _context2.next = 2;
118
111
  return this.ui.prompt({
119
- type: 'select',
112
+ type: 'directory',
120
113
  label: 'Where should I write this test?',
121
114
  isRequired: true,
122
- options: {
123
- choices: [{
124
- value: '.',
125
- label: "".concat(type)
126
- }].concat((0, _toConsumableArray2["default"])(subdirs.map(function (dir) {
127
- return {
128
- value: "".concat(dir),
129
- label: "".concat(type, "/").concat(dir)
130
- };
131
- })))
115
+ defaultValue: {
116
+ path: _spruceSkillUtils.diskUtil.resolvePath(resolvedDestination)
132
117
  }
133
118
  });
134
- case 4:
119
+ case 2:
135
120
  match = _context2.sent;
136
- resolvedDestination = _spruceSkillUtils.diskUtil.resolvePath(resolvedDestination, match);
137
- case 6:
121
+ resolvedDestination = _spruceSkillUtils.diskUtil.resolvePath(resolvedDestination, match.path);
138
122
  return _context2.abrupt("return", resolvedDestination);
139
- case 7:
123
+ case 5:
140
124
  case "end":
141
125
  return _context2.stop();
142
126
  }
143
127
  }, _callee2, this);
144
128
  }));
145
- function promptForSubDir(_x2, _x3) {
129
+ function promptForSubDir(_x2) {
146
130
  return _promptForSubDir.apply(this, arguments);
147
131
  }
148
132
  return promptForSubDir;
@@ -195,7 +179,7 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
195
179
  }
196
180
  }, _callee3, this);
197
181
  }));
198
- function promptForParentTestClassAndOptionallyInstallDependencies(_x4, _x5, _x6) {
182
+ function promptForParentTestClassAndOptionallyInstallDependencies(_x3, _x4, _x5) {
199
183
  return _promptForParentTestClassAndOptionallyInstallDependencies.apply(this, arguments);
200
184
  }
201
185
  return promptForParentTestClassAndOptionallyInstallDependencies;
@@ -235,7 +219,7 @@ var CreateAction = /*#__PURE__*/function (_AbstractAction) {
235
219
  }
236
220
  }, _callee4, this);
237
221
  }));
238
- function optionallyInstallFeatureBasedOnSelection(_x7) {
222
+ function optionallyInstallFeatureBasedOnSelection(_x6) {
239
223
  return _optionallyInstallFeatureBasedOnSelection.apply(this, arguments);
240
224
  }
241
225
  return optionallyInstallFeatureBasedOnSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"CreateAction.js","names":["_path","_interopRequireDefault","require","_spruceSkillUtils","_createTestOptions","_AbstractAction2","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","CreateAction","_AbstractAction","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","_assertThisInitialized2","createTestActionSchema","_createClass2","value","_execute","_asyncToGenerator2","_regenerator","mark","_callee","options","normalizedOptions","testDestinationDir","namePascal","nameCamel","type","resolvedDestination","testFeature","parentTestClass","candidates","writer","results","wrap","_callee$","_context","prev","next","validateAndNormalizeOptions","diskUtil","resolvePath","cwd","ui","startLoading","parent","stopLoading","buildParentClassCandidates","sent","doesDirExist","promptForSubDir","promptForParentTestClassAndOptionallyInstallDependencies","Writer","generateTest","namesUtil","toPascal","abrupt","files","hints","stop","execute","_x","_promptForSubDir","_callee2","subdirs","match","_callee2$","_context2","readDir","d","isDir","prompt","label","isRequired","choices","_toConsumableArray2","map","dir","_x2","_x3","_promptForParentTestClassAndOptionallyInstallDependencies","_callee3","idx","_callee3$","_context3","candidate","optionallyInstallFeatureBasedOnSelection","buildParentClassFromCandidate","_x4","_x5","_x6","_optionallyInstallFeatureBasedOnSelection","_callee4","isInstalled","_callee4$","_context4","featureCode","features","name","install","code","_x7","_match$import","isDefaultExport","importPath","resolveRelativePath","path","replace","pathUtil","extname","AbstractAction","exports"],"sources":["../../../../src/features/test/actions/CreateAction.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport createTestActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport TestFeature, { ParentClassCandidate } from '../TestFeature'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptions\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = createTestActionSchema\n\tpublic invocationMessage = 'Creating a test... 🛡'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\t\tconst { testDestinationDir, namePascal, nameCamel, type } =\n\t\t\tnormalizedOptions\n\n\t\tlet resolvedDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\ttestDestinationDir,\n\t\t\ttype\n\t\t)\n\n\t\tthis.ui.startLoading('Checking potential parent test classes')\n\n\t\tconst testFeature = this.parent as TestFeature\n\n\t\tthis.ui.stopLoading()\n\n\t\tlet parentTestClass:\n\t\t\t| undefined\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tif (diskUtil.doesDirExist(resolvedDestination)) {\n\t\t\tresolvedDestination = await this.promptForSubDir(\n\t\t\t\tresolvedDestination,\n\t\t\t\ttype\n\t\t\t)\n\t\t}\n\n\t\tif (candidates.length > 0) {\n\t\t\tparentTestClass =\n\t\t\t\tawait this.promptForParentTestClassAndOptionallyInstallDependencies(\n\t\t\t\t\tcandidates,\n\t\t\t\t\tparentTestClass,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t}\n\n\t\tthis.ui.startLoading('Generating test file...')\n\n\t\tconst writer = this.Writer('test')\n\n\t\tconst results = await writer.generateTest(resolvedDestination, {\n\t\t\t...normalizedOptions,\n\t\t\ttype,\n\t\t\tnameCamel,\n\t\t\tparentTestClass,\n\t\t\tnamePascal: namePascal ?? namesUtil.toPascal(nameCamel),\n\t\t})\n\n\t\treturn {\n\t\t\tfiles: results,\n\t\t\thints: [\"run `spruce test` in your skill when you're ready!\"],\n\t\t}\n\t}\n\tprivate async promptForSubDir(resolvedDestination: string, type: string) {\n\t\tconst subdirs = diskUtil\n\t\t\t.readDir(resolvedDestination)\n\t\t\t.filter((d) =>\n\t\t\t\tdiskUtil.isDir(diskUtil.resolvePath(resolvedDestination, d))\n\t\t\t)\n\n\t\tif (subdirs.length > 0) {\n\t\t\tconst match = await this.ui.prompt({\n\t\t\t\ttype: 'select',\n\t\t\t\tlabel: 'Where should I write this test?',\n\t\t\t\tisRequired: true,\n\t\t\t\toptions: {\n\t\t\t\t\tchoices: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvalue: '.',\n\t\t\t\t\t\t\tlabel: `${type}`,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t...subdirs.map((dir) => ({\n\t\t\t\t\t\t\tvalue: `${dir}`,\n\t\t\t\t\t\t\tlabel: `${type}/${dir}`,\n\t\t\t\t\t\t})),\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t})\n\n\t\t\tresolvedDestination = diskUtil.resolvePath(resolvedDestination, match)\n\t\t}\n\t\treturn resolvedDestination\n\t}\n\n\tprivate async promptForParentTestClassAndOptionallyInstallDependencies(\n\t\tcandidates: ParentClassCandidate[],\n\t\tparentTestClass:\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\t\t\t| undefined,\n\t\tresolvedDestination: string\n\t) {\n\t\tconst idx = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'Which abstract test class do you want to extend?',\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{ value: '', label: 'AbstractSpruceTest (default)' },\n\t\t\t\t\t...candidates.map((candidate, idx) => ({\n\t\t\t\t\t\tvalue: `${idx}`,\n\t\t\t\t\t\tlabel: candidate.label,\n\t\t\t\t\t})),\n\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tif (idx !== '' && candidates[+idx]) {\n\t\t\tconst match = candidates[+idx]\n\n\t\t\tif (match) {\n\t\t\t\tawait this.optionallyInstallFeatureBasedOnSelection(match)\n\n\t\t\t\tparentTestClass = this.buildParentClassFromCandidate(\n\t\t\t\t\tmatch,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\treturn parentTestClass\n\t}\n\n\tprivate async optionallyInstallFeatureBasedOnSelection(\n\t\tmatch: ParentClassCandidate\n\t) {\n\t\tif (match.featureCode) {\n\t\t\tconst isInstalled = await this.features.isInstalled(match.featureCode)\n\n\t\t\tif (!isInstalled) {\n\t\t\t\tthis.ui.startLoading(`Installing ${match.name}...`)\n\t\t\t\tawait this.features.install({\n\t\t\t\t\tfeatures: [{ code: match.featureCode as any }],\n\t\t\t\t})\n\t\t\t\tthis.ui.stopLoading()\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate buildParentClassFromCandidate(\n\t\tmatch: ParentClassCandidate,\n\t\tresolvedDestination: string\n\t): {\n\t\tname: string\n\t\tlabel: string\n\t\timportPath: string\n\t\tisDefaultExport: boolean\n\t} {\n\t\treturn {\n\t\t\tname: match.name,\n\t\t\tlabel: match.label,\n\t\t\tisDefaultExport: match.isDefaultExport,\n\t\t\timportPath:\n\t\t\t\tmatch.import ??\n\t\t\t\tdiskUtil.resolveRelativePath(\n\t\t\t\t\tresolvedDestination,\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tmatch.path.replace(pathUtil.extname(match.path), '')\n\t\t\t\t),\n\t\t}\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CreateAction.js","names":["_path","_interopRequireDefault","require","_spruceSkillUtils","_createTestOptions","_AbstractAction2","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","CreateAction","_AbstractAction","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","concat","_assertThisInitialized2","createTestActionSchema","_createClass2","value","_execute","_asyncToGenerator2","_regenerator","mark","_callee","options","normalizedOptions","testDestinationDir","namePascal","nameCamel","type","resolvedDestination","testFeature","parentTestClass","candidates","writer","results","wrap","_callee$","_context","prev","next","validateAndNormalizeOptions","diskUtil","resolvePath","cwd","ui","startLoading","parent","stopLoading","buildParentClassCandidates","sent","doesDirExist","promptForSubDir","promptForParentTestClassAndOptionallyInstallDependencies","Writer","generateTest","namesUtil","toPascal","abrupt","files","hints","stop","execute","_x","_promptForSubDir","_callee2","match","_callee2$","_context2","prompt","label","isRequired","defaultValue","path","_x2","_promptForParentTestClassAndOptionallyInstallDependencies","_callee3","idx","_callee3$","_context3","choices","_toConsumableArray2","map","candidate","optionallyInstallFeatureBasedOnSelection","buildParentClassFromCandidate","_x3","_x4","_x5","_optionallyInstallFeatureBasedOnSelection","_callee4","isInstalled","_callee4$","_context4","featureCode","features","name","install","code","_x6","_match$import","isDefaultExport","importPath","resolveRelativePath","replace","pathUtil","extname","AbstractAction","exports"],"sources":["../../../../src/features/test/actions/CreateAction.ts"],"sourcesContent":["import pathUtil from 'path'\nimport { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { SpruceSchemas } from '#spruce/schemas/schemas.types'\nimport createTestActionSchema from '#spruce/schemas/spruceCli/v2020_07_22/createTestOptions.schema'\nimport AbstractAction from '../../AbstractAction'\nimport { FeatureActionResponse } from '../../features.types'\nimport TestFeature, { ParentClassCandidate } from '../TestFeature'\n\ntype OptionsSchema = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptionsSchema\ntype Options = SpruceSchemas.SpruceCli.v2020_07_22.CreateTestOptions\n\nexport default class CreateAction extends AbstractAction<OptionsSchema> {\n\tpublic optionsSchema = createTestActionSchema\n\tpublic invocationMessage = 'Creating a test... 🛡'\n\n\tpublic async execute(options: Options): Promise<FeatureActionResponse> {\n\t\tconst normalizedOptions = this.validateAndNormalizeOptions(options)\n\t\tconst { testDestinationDir, namePascal, nameCamel, type } =\n\t\t\tnormalizedOptions\n\n\t\tlet resolvedDestination = diskUtil.resolvePath(\n\t\t\tthis.cwd,\n\t\t\ttestDestinationDir,\n\t\t\ttype\n\t\t)\n\n\t\tthis.ui.startLoading('Checking potential parent test classes')\n\n\t\tconst testFeature = this.parent as TestFeature\n\n\t\tthis.ui.stopLoading()\n\n\t\tlet parentTestClass:\n\t\t\t| undefined\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tif (diskUtil.doesDirExist(resolvedDestination)) {\n\t\t\tresolvedDestination = await this.promptForSubDir(resolvedDestination)\n\t\t}\n\n\t\tif (candidates.length > 0) {\n\t\t\tparentTestClass =\n\t\t\t\tawait this.promptForParentTestClassAndOptionallyInstallDependencies(\n\t\t\t\t\tcandidates,\n\t\t\t\t\tparentTestClass,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t}\n\n\t\tthis.ui.startLoading('Generating test file...')\n\n\t\tconst writer = this.Writer('test')\n\n\t\tconst results = await writer.generateTest(resolvedDestination, {\n\t\t\t...normalizedOptions,\n\t\t\ttype,\n\t\t\tnameCamel,\n\t\t\tparentTestClass,\n\t\t\tnamePascal: namePascal ?? namesUtil.toPascal(nameCamel),\n\t\t})\n\n\t\treturn {\n\t\t\tfiles: results,\n\t\t\thints: [\"run `spruce test` in your skill when you're ready!\"],\n\t\t}\n\t}\n\tprivate async promptForSubDir(resolvedDestination: string) {\n\t\tconst match = await this.ui.prompt({\n\t\t\ttype: 'directory',\n\t\t\tlabel: 'Where should I write this test?',\n\t\t\tisRequired: true,\n\t\t\tdefaultValue: {\n\t\t\t\tpath: diskUtil.resolvePath(resolvedDestination),\n\t\t\t},\n\t\t})\n\n\t\tresolvedDestination = diskUtil.resolvePath(resolvedDestination, match.path)\n\n\t\treturn resolvedDestination\n\t}\n\n\tprivate async promptForParentTestClassAndOptionallyInstallDependencies(\n\t\tcandidates: ParentClassCandidate[],\n\t\tparentTestClass:\n\t\t\t| { name: string; importPath: string; isDefaultExport: boolean }\n\t\t\t| undefined,\n\t\tresolvedDestination: string\n\t) {\n\t\tconst idx = await this.ui.prompt({\n\t\t\ttype: 'select',\n\t\t\tisRequired: true,\n\t\t\tlabel: 'Which abstract test class do you want to extend?',\n\t\t\toptions: {\n\t\t\t\tchoices: [\n\t\t\t\t\t{ value: '', label: 'AbstractSpruceTest (default)' },\n\t\t\t\t\t...candidates.map((candidate, idx) => ({\n\t\t\t\t\t\tvalue: `${idx}`,\n\t\t\t\t\t\tlabel: candidate.label,\n\t\t\t\t\t})),\n\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tif (idx !== '' && candidates[+idx]) {\n\t\t\tconst match = candidates[+idx]\n\n\t\t\tif (match) {\n\t\t\t\tawait this.optionallyInstallFeatureBasedOnSelection(match)\n\n\t\t\t\tparentTestClass = this.buildParentClassFromCandidate(\n\t\t\t\t\tmatch,\n\t\t\t\t\tresolvedDestination\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\treturn parentTestClass\n\t}\n\n\tprivate async optionallyInstallFeatureBasedOnSelection(\n\t\tmatch: ParentClassCandidate\n\t) {\n\t\tif (match.featureCode) {\n\t\t\tconst isInstalled = await this.features.isInstalled(match.featureCode)\n\n\t\t\tif (!isInstalled) {\n\t\t\t\tthis.ui.startLoading(`Installing ${match.name}...`)\n\t\t\t\tawait this.features.install({\n\t\t\t\t\tfeatures: [{ code: match.featureCode as any }],\n\t\t\t\t})\n\t\t\t\tthis.ui.stopLoading()\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate buildParentClassFromCandidate(\n\t\tmatch: ParentClassCandidate,\n\t\tresolvedDestination: string\n\t): {\n\t\tname: string\n\t\tlabel: string\n\t\timportPath: string\n\t\tisDefaultExport: boolean\n\t} {\n\t\treturn {\n\t\t\tname: match.name,\n\t\t\tlabel: match.label,\n\t\t\tisDefaultExport: match.isDefaultExport,\n\t\t\timportPath:\n\t\t\t\tmatch.import ??\n\t\t\t\tdiskUtil.resolveRelativePath(\n\t\t\t\t\tresolvedDestination,\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tmatch.path.replace(pathUtil.extname(match.path), '')\n\t\t\t\t),\n\t\t}\n\t}\n}\n"],"mappings":"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"}
@@ -29,7 +29,7 @@ export default class SpyInterface implements GraphicsInterface {
29
29
  command: string;
30
30
  options?: any;
31
31
  };
32
- sendInput(input: string | string[]): Promise<void>;
32
+ sendInput(input: Input): Promise<void>;
33
33
  renderSection(options: {
34
34
  headline: string;
35
35
  lines?: string[] | string[];
@@ -70,3 +70,8 @@ export default class SpyInterface implements GraphicsInterface {
70
70
  moveCursorTo(x: number, y: number): void;
71
71
  clearBelowCursor(): void;
72
72
  }
73
+ declare type FilePromptInput = {
74
+ path: string;
75
+ };
76
+ declare type Input = string | string[] | FilePromptInput;
77
+ export {};
@@ -110,7 +110,7 @@ var SpyInterface = /*#__PURE__*/function () {
110
110
  while (1) switch (_context.prev = _context.next) {
111
111
  case 0:
112
112
  this.trackInvocation('sendInput', input);
113
- this.optionallyRenderLine("Sending input: \"".concat(input.length > 0 ? input : 'ENTER', "\""));
113
+ this.optionallyRenderLine("Sending input: \"".concat(input.path ? input.path : input.length > 0 ? input : 'ENTER', "\""));
114
114
  if (!this.waitForEnterResolver) {
115
115
  _context.next = 8;
116
116
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"SpyInterface.js","names":["_spruceSkillUtils","require","_testUtils","_test","_interopRequireDefault","_duration","_TerminalInterface","SpyInterface","_this","_classCallCheck2","_defineProperty2","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","_len","arguments","length","strs","Array","_key","optionallyRenderLine","join","undefined","_createClass2","key","value","setTitle","_title","env","SHOULD_RENDER_TEST_LOGS","renderWarning","message","effects","_this$term","trackInvocation","renderHint","_this$term2","concat","command","options","invocations","push","isWaitingForInput","promptResolver","confirmResolver","waitForEnterResolver","reset","clearTimeout","promptTimeout","setError","err","error","getLastInvocation","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","input","resolver","_resolver","_resolver2","wrap","_callee$","_context","prev","next","promptDefaultValue","toLowerCase","Error","abrupt","Promise","resolve","setTimeout","stop","sendInput","_x","apply","renderSection","_this$term3","renderObject","obj","_this$term4","renderError","_this$term5","renderCodeSample","code","_this$term6","renderActionSummary","results","_this$term7","renderHero","_this$term8","renderHeadline","dividerEffects","_this$term9","renderDivider","_this$term10","renderLine","_global$activeTest","_global$activeTest2","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","_renderImage","_callee2","path","_callee2$","_context2","renderImage","_x2","_x3","renderLines","messages","_this$term11","_prompt","_callee3","definition","_this2","msg","_callee3$","_context3","namesUtil","toPascal","type","label","choices","forEach","choice","reject","assert","fail","defaultValue","prompt","_x4","startLoading","stopLoading","_waitForEnter","_callee4","_this3","_callee4$","_context4","waitForEnter","_x5","_waitForInput","_callee5","ttl","checkInterval","loops","lastWriteCount","hasWritten","_callee5$","_context5","testUtil","log","waitForInput","confirm","question","_this4","clear","renderProgressBar","title","updateProgressBar","removeProgressBar","_getCursorPosition","_callee6","_callee6$","_context6","cursorPosition","getCursorPosition","setCursorPosition","pos","moveCursorTo","clearBelowCursor","exports"],"sources":["../../src/interfaces/SpyInterface.ts"],"sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test-utils'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport testUtil from '../tests/utilities/test.utility'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\tprivate error?: Error\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tpublic setTitle(_title: string): void {}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic setError(err: Error) {\n\t\tthis.error = err\n\t}\n\n\tpublic getLastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: string | string[]): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${input.length > 0 ? input : 'ENTER'}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' ||\n\t\t\t\t\tinput.length === 0 ||\n\t\t\t\t\t(typeof input === 'string' && input.toLowerCase() === 'y')\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(\n\t\t\t\t\t\t\t`Timed out waiting for input with label: '${definition.label}'\\n\\nConsider passing what you need to Action().execute({ something })`\n\t\t\t\t\t\t)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic async waitForInput() {\n\t\tconst ttl = 1000 * 60 * 5\n\t\tconst checkInterval = 100\n\t\tlet loops = ttl / checkInterval\n\t\tlet lastWriteCount = this.invocations.length\n\n\t\twhile (!this.isWaitingForInput()) {\n\t\t\tif (loops-- === 0) {\n\t\t\t\tassert.fail(`Waiting for input timed out.`)\n\t\t\t}\n\n\t\t\tconst hasWritten = lastWriteCount != this.invocations.length\n\n\t\t\tif (hasWritten) {\n\t\t\t\tloops = ttl / checkInterval\n\t\t\t\tlastWriteCount = this.invocations.length\n\t\t\t\tif (this.shouldRenderTestLogs()) {\n\t\t\t\t\ttestUtil.log('waitForInput timeout reset because of new output.')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.error) {\n\t\t\t\tthrow this.error\n\t\t\t}\n\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, checkInterval))\n\t\t}\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;AACA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AASA,IAAAI,SAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,kBAAA,GAAAF,sBAAA,CAAAH,OAAA;AAAmD,IAE9BM,YAAY;EAgBhC,SAAAA,aAAA,EAAqB;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,mBAAAF,YAAA;IAAA,IAAAG,gBAAA,kCAfsC,EAAE;IAAA,IAAAA,gBAAA,qCACpC;MAAEC,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE;IAAE,CAAC;IAAA,IAAAF,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAAA,IAAAA,gBAAA;IAetC,IAAI,CAACG,SAAS,GAAG,IAAIC,IAAI,EAAE,CAACC,OAAO,EAAE;IAErC,IAAI,CAACC,IAAI,GAAG,IAAI,CAACC,oBAAoB,EAAE,GACpC,IAAIC,6BAAiB,CAACC,OAAO,CAACC,GAAG,EAAE,EAAE,IAAI,EAAE,YAAiB;MAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAbC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MACnDlB,KAAI,CAACmB,oBAAoB,CAACH,IAAI,CAACI,IAAI,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC,CAAC,GACFC,SAAS;EACb;EAAC,IAAAC,aAAA,aAAAvB,YAAA;IAAAwB,GAAA;IAAAC,KAAA,EAED,SAAAC,SAAgBC,MAAc,EAAQ,CAAC;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAExC,SAAAf,qBAAA,EAA+B;MAC9B,OAAOE,OAAO,CAACgB,GAAG,CAACC,uBAAuB,KAAK,MAAM;IACtD;EAAC;IAAAL,GAAA;IAAAC,KAAA,EAED,SAAAK,cACCC,OAAe,EACfC,OAA0C,EACnC;MAAA,IAAAC,UAAA;MACP,IAAI,CAACC,eAAe,CAAC,eAAe,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MAC3D,CAAAC,UAAA,OAAI,CAACxB,IAAI,cAAAwB,UAAA,uBAATA,UAAA,CAAWH,aAAa,CAACC,OAAO,CAAC;IAClC;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAU,WACCJ,OAAe,EACfC,OAA0C,EACnC;MAAA,IAAAI,WAAA;MACP,IAAI,CAACF,eAAe,CAAC,YAAY,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MACxD,IAAI,CAACZ,oBAAoB,UAAAiB,MAAA,CAAUN,OAAO,EAAG;MAC7C,CAAAK,WAAA,OAAI,CAAC3B,IAAI,cAAA2B,WAAA,uBAATA,WAAA,CAAWD,UAAU,CAACJ,OAAO,CAAC;IAC/B;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAS,gBAAwBI,OAAe,EAAEC,OAAa,EAAE;MACvD;MACA,IAAI,CAACC,WAAW,CAACC,IAAI,CAAC;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;IAC5C;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAiB,kBAAA,EAA2B;MAC1B,OAAO,CAAC,EACP,IAAI,CAACC,cAAc,IACnB,IAAI,CAACC,eAAe,IACpB,IAAI,CAACC,oBAAoB,CACzB;IACF;EAAC;IAAArB,GAAA;IAAAC,KAAA,EAED,SAAAqB,MAAA,EAAe;MACd,IAAI,CAACH,cAAc,GAAGrB,SAAS;MAC/B,IAAI,CAACsB,eAAe,GAAGtB,SAAS;MAChC,IAAI,CAACuB,oBAAoB,GAAGvB,SAAS;MACrCyB,YAAY,CAAC,IAAI,CAACC,aAAa,CAAC;IACjC;EAAC;IAAAxB,GAAA;IAAAC,KAAA,EAED,SAAAwB,SAAgBC,GAAU,EAAE;MAC3B,IAAI,CAACC,KAAK,GAAGD,GAAG;IACjB;EAAC;IAAA1B,GAAA;IAAAC,KAAA,EAED,SAAA2B,kBAAA,EAA2B;MAC1B,OAAO,IAAI,CAACZ,WAAW,CAAC,IAAI,CAACA,WAAW,CAACxB,MAAM,GAAG,CAAC,CAAC;IACrD;EAAC;IAAAQ,GAAA;IAAAC,KAAA;MAAA,IAAA4B,UAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAC,QAAuBC,KAAwB;QAAA,IAAAC,QAAA,EAAAC,SAAA,EAAAC,UAAA;QAAA,OAAAN,YAAA,YAAAO,IAAA,UAAAC,SAAAC,QAAA;UAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;YAAA;cAC9C,IAAI,CAAChC,eAAe,CAAC,WAAW,EAAEwB,KAAK,CAAC;cAExC,IAAI,CAACtC,oBAAoB,qBAAAiB,MAAA,CACLqB,KAAK,CAAC1C,MAAM,GAAG,CAAC,GAAG0C,KAAK,GAAG,OAAO,QACrD;cAAA,KAEG,IAAI,CAACb,oBAAoB;gBAAAmB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACtBP,QAAQ,GAAG,IAAI,CAACd,oBAAoB;cAC1C,IAAI,CAACA,oBAAoB,GAAGvB,SAAS;cAErCqC,QAAQ,EAAE;cAAAK,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAA,KACA,IAAI,CAACvB,cAAc;gBAAAqB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACvBP,SAAQ,GAAG,IAAI,CAAChB,cAAc;cACpC,IAAI,CAACA,cAAc,GAAGrB,SAAS;cAE/BqC,SAAQ,CAACD,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,EAAE,GAAGA,KAAK,GAAG,IAAI,CAACS,kBAAkB,CAAC;cAAAH,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAA,KAChE,IAAI,CAACtB,eAAe;gBAAAoB,QAAA,CAAAE,IAAA;gBAAA;cAAA;cACxBP,UAAQ,GAAG,IAAI,CAACf,eAAe;cACrC,IAAI,CAACA,eAAe,GAAGtB,SAAS;cAEhCqC,UAAQ,CACPD,KAAK,KAAK,IAAI,IACbA,KAAK,CAAC1C,MAAM,KAAK,CAAC,IACjB,OAAO0C,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACU,WAAW,EAAE,KAAK,GAAI,CAC3D;cAAAJ,QAAA,CAAAE,IAAA;cAAA;YAAA;cAAA,MAEK,IAAIG,KAAK,CAAC,sCAAsC,CAAC;YAAA;cAAA,OAAAL,QAAA,CAAAM,MAAA,WAGjD,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC/BC,UAAU,CAACD,OAAO,EAAE,EAAE,CAAC;cACxB,CAAC,CAAC;YAAA;YAAA;cAAA,OAAAR,QAAA,CAAAU,IAAA;UAAA;QAAA,GAAAjB,OAAA;MAAA,CACF;MAAA,SAAAkB,UAAAC,EAAA;QAAA,OAAAvB,UAAA,CAAAwB,KAAA,OAAA9D,SAAA;MAAA;MAAA,OAAA4D,SAAA;IAAA;EAAA;IAAAnD,GAAA;IAAAC,KAAA,EAED,SAAAqD,cAAqBvC,OAOpB,EAAQ;MAAA,IAAAwC,WAAA;MACR,IAAI,CAAC7C,eAAe,CAAC,eAAe,EAAEK,OAAO,CAAC;MAC9C,CAAAwC,WAAA,OAAI,CAACtE,IAAI,cAAAsE,WAAA,uBAATA,WAAA,CAAWD,aAAa,CAACvC,OAAO,CAAC;IAClC;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAuD,aAAoBC,GAAQ,EAAQ;MAAA,IAAAC,WAAA;MACnC,IAAI,CAAChD,eAAe,CAAC,cAAc,EAAE+C,GAAG,CAAC;MACzC,CAAAC,WAAA,OAAI,CAACzE,IAAI,cAAAyE,WAAA,uBAATA,WAAA,CAAWF,YAAY,CAACC,GAAG,CAAC;IAC7B;EAAC;IAAAzD,GAAA;IAAAC,KAAA,EAED,SAAA0D,YAAmBjC,GAAU,EAAQ;MAAA,IAAAkC,WAAA;MACpC,IAAI,CAAClD,eAAe,CAAC,aAAa,EAAEgB,GAAG,CAAC;MACxC,CAAAkC,WAAA,OAAI,CAAC3E,IAAI,cAAA2E,WAAA,uBAATA,WAAA,CAAWD,WAAW,CAACjC,GAAG,CAAC;IAC5B;EAAC;IAAA1B,GAAA;IAAAC,KAAA,EAED,SAAA4D,iBAAwBC,IAAY,EAAQ;MAAA,IAAAC,WAAA;MAC3C,IAAI,CAACrD,eAAe,CAAC,kBAAkB,EAAEoD,IAAI,CAAC;MAC9C,CAAAC,WAAA,OAAI,CAAC9E,IAAI,cAAA8E,WAAA,uBAATA,WAAA,CAAWF,gBAAgB,CAACC,IAAI,CAAC;IAClC;EAAC;IAAA9D,GAAA;IAAAC,KAAA,EAED,SAAA+D,oBAA2BC,OAAyB,EAAQ;MAAA,IAAAC,WAAA;MAC3D,IAAI,CAACxD,eAAe,CAAC,sBAAsB,EAAEuD,OAAO,CAAC;MACrD,CAAAC,WAAA,OAAI,CAACjF,IAAI,cAAAiF,WAAA,uBAATA,WAAA,CAAWF,mBAAmB,CAACC,OAAO,CAAC;IACxC;EAAC;IAAAjE,GAAA;IAAAC,KAAA,EAED,SAAAkE,WACC5D,OAAe,EACfC,OAA0C,EACnC;MAAA,IAAA4D,WAAA;MACP,IAAI,CAAC1D,eAAe,CAAC,YAAY,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MACxD,CAAA4D,WAAA,OAAI,CAACnF,IAAI,cAAAmF,WAAA,uBAATA,WAAA,CAAWD,UAAU,CAAC5D,OAAO,EAAEC,OAAO,CAAC;IACxC;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAED,SAAAoE,eACC9D,OAAe,EACfC,OAA6B,EAC7B8D,cAAoC,EAC7B;MAAA,IAAAC,WAAA;MACP,IAAI,CAAC7D,eAAe,CAAC,gBAAgB,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA,OAAO;QAAE8D,cAAc,EAAdA;MAAe,CAAC,CAAC;MAC5E,CAAAC,WAAA,OAAI,CAACtF,IAAI,cAAAsF,WAAA,uBAATA,WAAA,CAAWF,cAAc,CAAC9D,OAAO,EAAEC,OAAO,EAAE8D,cAAc,CAAC;IAC5D;EAAC;IAAAtE,GAAA;IAAAC,KAAA,EAED,SAAAuE,cAAqBhE,OAA0C,EAAQ;MAAA,IAAAiE,YAAA;MACtE,IAAI,CAAC/D,eAAe,CAAC,eAAe,EAAEF,OAAO,CAAC;MAC9C,CAAAiE,YAAA,OAAI,CAACxF,IAAI,cAAAwF,YAAA,uBAATA,YAAA,CAAWD,aAAa,CAAChE,OAAO,CAAC;IAClC;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAED,SAAAyE,WACCnE,OAAe,EACfC,OAA0C,EACnC;MACP,IAAI,CAACE,eAAe,CAAC,YAAY,EAAE;QAAEH,OAAO,EAAPA,OAAO;QAAEC,OAAO,EAAPA;MAAQ,CAAC,CAAC;MACxDD,OAAO,IAAIA,OAAO,CAACf,MAAM,GAAG,CAAC,IAAI,IAAI,CAACI,oBAAoB,CAACW,OAAO,CAAC;IACpE;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAL,qBAA6BW,OAAe,EAAE;MAC7C,IAAI,IAAI,CAACrB,oBAAoB,EAAE,EAAE;QAAA,IAAAyF,kBAAA,EAAAC,mBAAA;QAChC,IAAMC,QAAQ,GAAG,IAAI9F,IAAI,EAAE,CAACC,OAAO,EAAE,GAAG,IAAI,CAACF,SAAS;QACtD,IAAMgG,QAAQ,GAAGC,oBAAY,CAACC,YAAY,CAACH,QAAQ,CAAC;QAEpDI,yBAAO,CAACC,IAAI,IAAArE,MAAA;QAEV;QACA,CAAA8D,kBAAA,GAAAQ,MAAM,CAACC,UAAU,cAAAT,kBAAA,eAAjBA,kBAAA,CAAmBU,IAAI,GAAG,EAAAT,mBAAA,GAAAO,MAAM,CAACC,UAAU,cAAAR,mBAAA,uBAAjBA,mBAAA,CAAmBS,IAAI,IAAG,MAAM,GAAG,EAAE,EAAAxE,MAAA,CAC7DiE,QAAQ,UAAAjE,MAAA,CAAON,OAAO,EACzB;MACF;IACD;EAAC;IAAAP,GAAA;IAAAC,KAAA;MAAA,IAAAqF,YAAA,OAAAxD,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAuD,SACCC,IAAY,EACZzE,OAAyB;QAAA,OAAAgB,YAAA,YAAAO,IAAA,UAAAmD,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAjD,IAAA,GAAAiD,SAAA,CAAAhD,IAAA;YAAA;cAEzB,IAAI,CAAChC,eAAe,CAAC,aAAa,EAAE;gBAAE8E,IAAI,EAAJA,IAAI;gBAAEzE,OAAO,EAAPA;cAAQ,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA2E,SAAA,CAAAxC,IAAA;UAAA;QAAA,GAAAqC,QAAA;MAAA,CACtD;MAAA,SAAAI,YAAAC,GAAA,EAAAC,GAAA;QAAA,OAAAP,YAAA,CAAAjC,KAAA,OAAA9D,SAAA;MAAA;MAAA,OAAAoG,WAAA;IAAA;EAAA;IAAA3F,GAAA;IAAAC,KAAA,EAED,SAAA6F,YACCC,QAAkB,EAClBvF,OAA0C,EACnC;MAAA,IAAAwF,YAAA;MACP,IAAI,CAACtF,eAAe,CAAC,aAAa,EAAE;QAAEqF,QAAQ,EAARA,QAAQ;QAAEvF,OAAO,EAAPA;MAAQ,CAAC,CAAC;MAC1D,CAAAwF,YAAA,OAAI,CAAC/G,IAAI,cAAA+G,YAAA,uBAATA,YAAA,CAAWF,WAAW,CAACC,QAAQ,EAAEvF,OAAO,CAAC;IAC1C;EAAC;IAAAR,GAAA;IAAAC,KAAA;MAAA,IAAAgG,OAAA,OAAAnE,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAkE,SAAgDC,UAAa;QAAA,IAAAC,MAAA;QAAA,IAAAC,GAAA;QAAA,OAAAtE,YAAA,YAAAO,IAAA,UAAAgE,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA9D,IAAA,GAAA8D,SAAA,CAAA7D,IAAA;YAAA;cAC5D,IAAI,CAAChC,eAAe,CAAC,QAAQ,EAAEyF,UAAU,CAAC;cAAA,KAEtC,IAAI,CAAChF,cAAc;gBAAAoF,SAAA,CAAA7D,IAAA;gBAAA;cAAA;cAAA,MAChB,IAAIG,KAAK,CACd,gFAAgF,CAChF;YAAA;cAGEwD,GAAG,MAAAxF,MAAA,CAAM2F,2BAAS,CAACC,QAAQ,CAACN,UAAU,CAACO,IAAI,CAAC,eAAA7F,MAAA,CAC/CsF,UAAU,CAACQ,KAAK;cAGjB,IAAIR,UAAU,CAACO,IAAI,KAAK,QAAQ,EAAE;gBACjCL,GAAG,IAAI,gBAAgB;gBACvBF,UAAU,CAACpF,OAAO,CAAC6F,OAAO,CAACC,OAAO,CAAC,UAACC,MAAM,EAAK;kBAC9CT,GAAG,SAAAxF,MAAA,CAASiG,MAAM,CAAC7G,KAAK,QAAAY,MAAA,CAAKiG,MAAM,CAACH,KAAK,CAAE;gBAC5C,CAAC,CAAC;gBAEFN,GAAG,IAAI,IAAI;cACZ;cAEA,IAAI,CAACzG,oBAAoB,CAACyG,GAAG,CAAC;cAAA,OAAAE,SAAA,CAAAzD,MAAA,WAEvB,IAAIC,OAAO,CACjB,UAACC,OAAO,EAAE+D,MAAM,EAAK;gBACpBX,MAAI,CAACjF,cAAc,GAAG,YAAoB;kBACzCI,YAAY,CAAC6E,MAAI,CAAC5E,aAAa,CAAC;kBAChC;kBACAwB,OAAO,CAAAK,KAAA,SAAA9D,SAAA,CAAS;gBACjB,CAAC;gBACD6G,MAAI,CAAC5E,aAAa,GAAGyB,UAAU,CAAC,YAAM;kBACrCmD,MAAI,CAAC9E,KAAK,EAAE;kBAEZ,IAAI;oBACH0F,iBAAM,CAACC,IAAI,6CAAApG,MAAA,CACkCsF,UAAU,CAACQ,KAAK,4EAC5D;kBACF,CAAC,CAAC,OAAOjF,GAAQ,EAAE;oBAClBqF,MAAM,CAACrF,GAAG,CAAC;kBACZ;gBACD,CAAC,EAAE,KAAK,CAAC;gBACT0E,MAAI,CAACzD,kBAAkB,GAAGwD,UAAU,CAACe,YAAY;cAClD,CAAC,CACD;YAAA;YAAA;cAAA,OAAAX,SAAA,CAAArD,IAAA;UAAA;QAAA,GAAAgD,QAAA;MAAA,CACD;MAAA,SAAAiB,OAAAC,GAAA;QAAA,OAAAnB,OAAA,CAAA5C,KAAA,OAAA9D,SAAA;MAAA;MAAA,OAAA4H,MAAA;IAAA;EAAA;IAAAnH,GAAA;IAAAC,KAAA,EAED,SAAAoH,aAAoB9G,OAA4B,EAAQ;MACvD,IAAI,CAACG,eAAe,CAAC,cAAc,EAAEH,OAAO,CAAC;MAC7C,IAAI,CAACX,oBAAoB,CAACW,OAAO,MAAAM,MAAA,CAAMN,OAAO,IAAK,kBAAkB,CAAC;IACvE;EAAC;IAAAP,GAAA;IAAAC,KAAA,EAED,SAAAqH,YAAA,EAA2B;MAC1B,IAAI,CAAC5G,eAAe,CAAC,aAAa,CAAC;MACnC,IAAI,CAACd,oBAAoB,CAAC,iBAAiB,CAAC;IAC7C;EAAC;IAAAI,GAAA;IAAAC,KAAA;MAAA,IAAAsH,aAAA,OAAAzF,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAwF,SAA0BjH,OAA4B;QAAA,IAAAkH,MAAA;QAAA,OAAA1F,YAAA,YAAAO,IAAA,UAAAoF,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAAlF,IAAA,GAAAkF,SAAA,CAAAjF,IAAA;YAAA;cACrD,IAAI,CAAChC,eAAe,CAAC,cAAc,EAAEH,OAAO,CAAC;cAC7C,IAAI,CAACX,oBAAoB,IAAAiB,MAAA,CACrBN,OAAO,OAAAM,MAAA,CAAON,OAAO,cAAW,0BACnC;cAAA,OAAAoH,SAAA,CAAA7E,MAAA,WAEM,IAAIC,OAAO,CAAC,UAACC,OAAO,EAAK;gBAC/ByE,MAAI,CAACpG,oBAAoB,GAAG2B,OAAO;cACpC,CAAC,CAAC;YAAA;YAAA;cAAA,OAAA2E,SAAA,CAAAzE,IAAA;UAAA;QAAA,GAAAsE,QAAA;MAAA,CACF;MAAA,SAAAI,aAAAC,GAAA;QAAA,OAAAN,aAAA,CAAAlE,KAAA,OAAA9D,SAAA;MAAA;MAAA,OAAAqI,YAAA;IAAA;EAAA;IAAA5H,GAAA;IAAAC,KAAA;MAAA,IAAA6H,aAAA,OAAAhG,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAA+F,SAAA;QAAA,IAAAC,GAAA,EAAAC,aAAA,EAAAC,KAAA,EAAAC,cAAA,EAAAC,UAAA;QAAA,OAAArG,YAAA,YAAAO,IAAA,UAAA+F,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA7F,IAAA,GAAA6F,SAAA,CAAA5F,IAAA;YAAA;cACOsF,GAAG,GAAG,IAAI,GAAG,EAAE,GAAG,CAAC;cACnBC,aAAa,GAAG,GAAG;cACrBC,KAAK,GAAGF,GAAG,GAAGC,aAAa;cAC3BE,cAAc,GAAG,IAAI,CAACnH,WAAW,CAACxB,MAAM;YAAA;cAAA,IAEpC,IAAI,CAAC0B,iBAAiB,EAAE;gBAAAoH,SAAA,CAAA5F,IAAA;gBAAA;cAAA;cAC/B,IAAIwF,KAAK,EAAE,KAAK,CAAC,EAAE;gBAClBlB,iBAAM,CAACC,IAAI,gCAAgC;cAC5C;cAEMmB,UAAU,GAAGD,cAAc,IAAI,IAAI,CAACnH,WAAW,CAACxB,MAAM;cAE5D,IAAI4I,UAAU,EAAE;gBACfF,KAAK,GAAGF,GAAG,GAAGC,aAAa;gBAC3BE,cAAc,GAAG,IAAI,CAACnH,WAAW,CAACxB,MAAM;gBACxC,IAAI,IAAI,CAACN,oBAAoB,EAAE,EAAE;kBAChCqJ,gBAAQ,CAACC,GAAG,CAAC,mDAAmD,CAAC;gBAClE;cACD;cAAC,KAEG,IAAI,CAAC7G,KAAK;gBAAA2G,SAAA,CAAA5F,IAAA;gBAAA;cAAA;cAAA,MACP,IAAI,CAACf,KAAK;YAAA;cAAA2G,SAAA,CAAA5F,IAAA;cAAA,OAGX,IAAIK,OAAO,CAAC,UAACC,OAAO;gBAAA,OAAKC,UAAU,CAACD,OAAO,EAAEiF,aAAa,CAAC;cAAA,EAAC;YAAA;cAAAK,SAAA,CAAA5F,IAAA;cAAA;YAAA;YAAA;cAAA,OAAA4F,SAAA,CAAApF,IAAA;UAAA;QAAA,GAAA6E,QAAA;MAAA,CAEnE;MAAA,SAAAU,aAAA;QAAA,OAAAX,aAAA,CAAAzE,KAAA,OAAA9D,SAAA;MAAA;MAAA,OAAAkJ,YAAA;IAAA;EAAA;IAAAzI,GAAA;IAAAC,KAAA,EAED,SAAAyI,QAAeC,QAAgB,EAAoB;MAAA,IAAAC,MAAA;MAClD,IAAI,CAAClI,eAAe,CAAC,SAAS,EAAEiI,QAAQ,CAAC;MACzC,IAAI,CAAC/I,oBAAoB,IAAAiB,MAAA,CAAI8H,QAAQ,gBAAa;MAElD,OAAO,IAAI5F,OAAO,CAAC,UAACC,OAAO,EAAK;QAC/B4F,MAAI,CAACxH,eAAe,GAAG4B,OAAO;MAC/B,CAAC,CAAC;IACH;EAAC;IAAAhD,GAAA;IAAAC,KAAA,EAED,SAAA4I,MAAA,EAAqB;MACpB,IAAI,CAACnI,eAAe,CAAC,OAAO,CAAC;IAC9B;EAAC;IAAAV,GAAA;IAAAC,KAAA,EAED,SAAA6I,kBAAyB/H,OAA2B,EAAQ;MAC3D,IAAI,CAACL,eAAe,CAAC,mBAAmB,EAAEK,OAAO,CAAC;MAClD,IAAI,CAACnB,oBAAoB,oBAAAiB,MAAA,CACLE,OAAO,CAACgI,KAAK,OAAAlI,MAAA,CAAOE,OAAO,CAACgI,KAAK,MAAO,EAC3D;IACF;EAAC;IAAA/I,GAAA;IAAAC,KAAA,EAED,SAAA+I,kBAAyBjI,OAAiC,EAAQ;MACjE,IAAI,CAACL,eAAe,CAAC,mBAAmB,EAAEK,OAAO,CAAC;IACnD;EAAC;IAAAf,GAAA;IAAAC,KAAA,EAED,SAAAgJ,kBAAA,EAAiC;MAChC,IAAI,CAACvI,eAAe,CAAC,mBAAmB,CAAC;MACzC,IAAI,CAACd,oBAAoB,mBAAmB;IAC7C;EAAC;IAAAI,GAAA;IAAAC,KAAA;MAAA,IAAAiJ,kBAAA,OAAApH,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAED,SAAAmH,SAAA;QAAA,OAAApH,YAAA,YAAAO,IAAA,UAAA8G,UAAAC,SAAA;UAAA,kBAAAA,SAAA,CAAA5G,IAAA,GAAA4G,SAAA,CAAA3G,IAAA;YAAA;cACC,IAAI,CAAChC,eAAe,CAAC,mBAAmB,CAAC;cAAA,OAAA2I,SAAA,CAAAvG,MAAA,WAClC,IAAI,CAACwG,cAAc;YAAA;YAAA;cAAA,OAAAD,SAAA,CAAAnG,IAAA;UAAA;QAAA,GAAAiG,QAAA;MAAA,CAC1B;MAAA,SAAAI,kBAAA;QAAA,OAAAL,kBAAA,CAAA7F,KAAA,OAAA9D,SAAA;MAAA;MAAA,OAAAgK,iBAAA;IAAA;EAAA;IAAAvJ,GAAA;IAAAC,KAAA,EAED,SAAAuJ,kBAAyBC,GAA6B,EAAE;MACvD,IAAI,CAACH,cAAc,GAAGG,GAAG;IAC1B;EAAC;IAAAzJ,GAAA;IAAAC,KAAA,EAED,SAAAyJ,aAAoB9K,CAAS,EAAEC,CAAS,EAAQ;MAC/C,IAAI,CAAC6B,eAAe,CAAC,cAAc,EAAE;QAAE9B,CAAC,EAADA,CAAC;QAAEC,CAAC,EAADA;MAAE,CAAC,CAAC;IAC/C;EAAC;IAAAmB,GAAA;IAAAC,KAAA,EAED,SAAA0J,iBAAA,EAAgC;MAC/B,IAAI,CAACjJ,eAAe,CAAC,kBAAkB,CAAC;IACzC;EAAC;EAAA,OAAAlC,YAAA;AAAA;AAAAoL,OAAA,cAAApL,YAAA"}
1
+ {"version":3,"file":"SpyInterface.js","names":["_spruceSkillUtils","require","_testUtils","_test","_interopRequireDefault","_duration","_TerminalInterface","SpyInterface","_this","_classCallCheck2","_defineProperty2","x","y","startTime","Date","getTime","term","shouldRenderTestLogs","TerminalInterface","process","cwd","_len","arguments","length","strs","Array","_key","optionallyRenderLine","join","undefined","_createClass2","key","value","setTitle","_title","env","SHOULD_RENDER_TEST_LOGS","renderWarning","message","effects","_this$term","trackInvocation","renderHint","_this$term2","concat","command","options","invocations","push","isWaitingForInput","promptResolver","confirmResolver","waitForEnterResolver","reset","clearTimeout","promptTimeout","setError","err","error","getLastInvocation","_sendInput","_asyncToGenerator2","_regenerator","mark","_callee","input","resolver","_resolver","_resolver2","wrap","_callee$","_context","prev","next","path","promptDefaultValue","toLowerCase","Error","abrupt","Promise","resolve","setTimeout","stop","sendInput","_x","apply","renderSection","_this$term3","renderObject","obj","_this$term4","renderError","_this$term5","renderCodeSample","code","_this$term6","renderActionSummary","results","_this$term7","renderHero","_this$term8","renderHeadline","dividerEffects","_this$term9","renderDivider","_this$term10","renderLine","_global$activeTest","_global$activeTest2","duration","friendly","durationUtil","msToFriendly","testLog","info","global","activeTest","test","_renderImage","_callee2","_callee2$","_context2","renderImage","_x2","_x3","renderLines","messages","_this$term11","_prompt","_callee3","definition","_this2","msg","_callee3$","_context3","namesUtil","toPascal","type","label","choices","forEach","choice","reject","assert","fail","defaultValue","prompt","_x4","startLoading","stopLoading","_waitForEnter","_callee4","_this3","_callee4$","_context4","waitForEnter","_x5","_waitForInput","_callee5","ttl","checkInterval","loops","lastWriteCount","hasWritten","_callee5$","_context5","testUtil","log","waitForInput","confirm","question","_this4","clear","renderProgressBar","title","updateProgressBar","removeProgressBar","_getCursorPosition","_callee6","_callee6$","_context6","cursorPosition","getCursorPosition","setCursorPosition","pos","moveCursorTo","clearBelowCursor","exports"],"sources":["../../src/interfaces/SpyInterface.ts"],"sourcesContent":["import { FieldDefinitionValueType } from '@sprucelabs/schema'\nimport { namesUtil, testLog } from '@sprucelabs/spruce-skill-utils'\nimport { assert } from '@sprucelabs/test-utils'\nimport { FieldDefinitions } from '#spruce/schemas/fields/fields.types'\nimport testUtil from '../tests/utilities/test.utility'\nimport { ExecutionResults } from '../types/cli.types'\nimport { GraphicsInterface } from '../types/cli.types'\nimport {\n\tGraphicsTextEffect,\n\tProgressBarOptions,\n\tProgressBarUpdateOptions,\n\tImageDimensions,\n} from '../types/graphicsInterface.types'\nimport durationUtil from '../utilities/duration.utility'\nimport TerminalInterface from './TerminalInterface'\n\nexport default class SpyInterface implements GraphicsInterface {\n\tpublic invocations: { command: string; options?: any }[] = []\n\tprivate cursorPosition = { x: 0, y: 0 }\n\n\tprivate promptResolver?: (\n\t\tinput: FieldDefinitionValueType<FieldDefinitions>\n\t) => void | undefined\n\n\tprivate confirmResolver?: (pass: boolean) => void | undefined\n\tprivate waitForEnterResolver?: () => void | undefined\n\tprivate promptDefaultValue: any\n\tprivate term?: TerminalInterface\n\tprivate startTime: number\n\tprivate promptTimeout?: any\n\tprivate error?: Error\n\n\tpublic constructor() {\n\t\tthis.startTime = new Date().getTime()\n\n\t\tthis.term = this.shouldRenderTestLogs()\n\t\t\t? new TerminalInterface(process.cwd(), true, (...strs: []) => {\n\t\t\t\t\tthis.optionallyRenderLine(strs.join(' '))\n\t\t\t })\n\t\t\t: undefined\n\t}\n\n\tpublic setTitle(_title: string): void {}\n\n\tprivate shouldRenderTestLogs() {\n\t\treturn process.env.SHOULD_RENDER_TEST_LOGS === 'true'\n\t}\n\n\tpublic renderWarning(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderWarning', { message, effects })\n\t\tthis.term?.renderWarning(message)\n\t}\n\n\tpublic renderHint(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHint', { message, effects })\n\t\tthis.optionallyRenderLine(`Hint: ${message}`)\n\t\tthis.term?.renderHint(message)\n\t}\n\n\tprivate trackInvocation(command: string, options?: any) {\n\t\t// testUtil.log(command, JSON.stringify(options), '\\n')\n\t\tthis.invocations.push({ command, options })\n\t}\n\n\tpublic isWaitingForInput() {\n\t\treturn !!(\n\t\t\tthis.promptResolver ||\n\t\t\tthis.confirmResolver ||\n\t\t\tthis.waitForEnterResolver\n\t\t)\n\t}\n\n\tpublic reset() {\n\t\tthis.promptResolver = undefined\n\t\tthis.confirmResolver = undefined\n\t\tthis.waitForEnterResolver = undefined\n\t\tclearTimeout(this.promptTimeout)\n\t}\n\n\tpublic setError(err: Error) {\n\t\tthis.error = err\n\t}\n\n\tpublic getLastInvocation() {\n\t\treturn this.invocations[this.invocations.length - 1]\n\t}\n\n\tpublic async sendInput(input: Input): Promise<void> {\n\t\tthis.trackInvocation('sendInput', input)\n\n\t\tthis.optionallyRenderLine(\n\t\t\t`Sending input: \"${\n\t\t\t\t(input as FilePromptInput).path\n\t\t\t\t\t? (input as FilePromptInput).path\n\t\t\t\t\t: (input as string).length > 0\n\t\t\t\t\t? input\n\t\t\t\t\t: 'ENTER'\n\t\t\t}\"`\n\t\t)\n\n\t\tif (this.waitForEnterResolver) {\n\t\t\tconst resolver = this.waitForEnterResolver\n\t\t\tthis.waitForEnterResolver = undefined\n\n\t\t\tresolver()\n\t\t} else if (this.promptResolver) {\n\t\t\tconst resolver = this.promptResolver\n\t\t\tthis.promptResolver = undefined\n\n\t\t\tresolver(input !== '\\n' && input !== '' ? input : this.promptDefaultValue)\n\t\t} else if (this.confirmResolver) {\n\t\t\tconst resolver = this.confirmResolver\n\t\t\tthis.confirmResolver = undefined\n\n\t\t\tresolver(\n\t\t\t\tinput === '\\n' ||\n\t\t\t\t\t(input as string).length === 0 ||\n\t\t\t\t\t(typeof input === 'string' && input.toLowerCase() === 'y')\n\t\t\t)\n\t\t} else {\n\t\t\tthrow new Error('Sent input before prompted for input')\n\t\t}\n\n\t\treturn new Promise((resolve) => {\n\t\t\tsetTimeout(resolve, 50)\n\t\t})\n\t}\n\n\tpublic renderSection(options: {\n\t\theadline: string\n\t\tlines?: string[] | string[]\n\t\theadlineEffects?: GraphicsTextEffect[]\n\t\tdividerEffects?: GraphicsTextEffect[]\n\t\tbodyEffects?: GraphicsTextEffect[]\n\t\tobject?: any\n\t}): void {\n\t\tthis.trackInvocation('renderSection', options)\n\t\tthis.term?.renderSection(options)\n\t}\n\n\tpublic renderObject(obj: any): void {\n\t\tthis.trackInvocation('renderObject', obj)\n\t\tthis.term?.renderObject(obj)\n\t}\n\n\tpublic renderError(err: Error): void {\n\t\tthis.trackInvocation('renderError', err)\n\t\tthis.term?.renderError(err)\n\t}\n\n\tpublic renderCodeSample(code: string): void {\n\t\tthis.trackInvocation('renderCodeSample', code)\n\t\tthis.term?.renderCodeSample(code)\n\t}\n\n\tpublic renderActionSummary(results: ExecutionResults): void {\n\t\tthis.trackInvocation('renderCommandSummary', results)\n\t\tthis.term?.renderActionSummary(results)\n\t}\n\n\tpublic renderHero(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderHero', { message, effects })\n\t\tthis.term?.renderHero(message, effects)\n\t}\n\n\tpublic renderHeadline(\n\t\tmessage: string,\n\t\teffects: GraphicsTextEffect[],\n\t\tdividerEffects: GraphicsTextEffect[]\n\t): void {\n\t\tthis.trackInvocation('renderHeadline', { message, effects, dividerEffects })\n\t\tthis.term?.renderHeadline(message, effects, dividerEffects)\n\t}\n\n\tpublic renderDivider(effects?: GraphicsTextEffect[] | undefined): void {\n\t\tthis.trackInvocation('renderDivider', effects)\n\t\tthis.term?.renderDivider(effects)\n\t}\n\n\tpublic renderLine(\n\t\tmessage: string,\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLine', { message, effects })\n\t\tmessage && message.length > 0 && this.optionallyRenderLine(message)\n\t}\n\n\tprivate optionallyRenderLine(message: string) {\n\t\tif (this.shouldRenderTestLogs()) {\n\t\t\tconst duration = new Date().getTime() - this.startTime\n\t\t\tconst friendly = durationUtil.msToFriendly(duration)\n\n\t\t\ttestLog.info(\n\t\t\t\t`${\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tglobal.activeTest?.test ? global.activeTest?.test + ' :: ' : ''\n\t\t\t\t}${friendly} :: ${message}`\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic async renderImage(\n\t\tpath: string,\n\t\toptions?: ImageDimensions\n\t): Promise<void> {\n\t\tthis.trackInvocation('renderImage', { path, options })\n\t}\n\n\tpublic renderLines(\n\t\tmessages: string[],\n\t\teffects?: GraphicsTextEffect[] | undefined\n\t): void {\n\t\tthis.trackInvocation('renderLines', { messages, effects })\n\t\tthis.term?.renderLines(messages, effects)\n\t}\n\n\tpublic async prompt<T extends FieldDefinitions>(definition: T) {\n\t\tthis.trackInvocation('prompt', definition)\n\n\t\tif (this.promptResolver) {\n\t\t\tthrow new Error(\n\t\t\t\t'Tried to double prompt. Try this.term?.sendInput() before calling prompt next.'\n\t\t\t)\n\t\t}\n\n\t\tlet msg = `${namesUtil.toPascal(definition.type)} Prompt: ${\n\t\t\tdefinition.label\n\t\t}`\n\n\t\tif (definition.type === 'select') {\n\t\t\tmsg += '\\n\\nChoices:\\n'\n\t\t\tdefinition.options.choices.forEach((choice) => {\n\t\t\t\tmsg += `\\n${choice.value}: ${choice.label}`\n\t\t\t})\n\n\t\t\tmsg += '\\n'\n\t\t}\n\n\t\tthis.optionallyRenderLine(msg)\n\n\t\treturn new Promise<FieldDefinitionValueType<FieldDefinitions>>(\n\t\t\t(resolve, reject) => {\n\t\t\t\tthis.promptResolver = (...args: any[]) => {\n\t\t\t\t\tclearTimeout(this.promptTimeout)\n\t\t\t\t\t//@ts-ignore\n\t\t\t\t\tresolve(...args)\n\t\t\t\t}\n\t\t\t\tthis.promptTimeout = setTimeout(() => {\n\t\t\t\t\tthis.reset()\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tassert.fail(\n\t\t\t\t\t\t\t`Timed out waiting for input with label: '${definition.label}'\\n\\nConsider passing what you need to Action().execute({ something })`\n\t\t\t\t\t\t)\n\t\t\t\t\t} catch (err: any) {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t}\n\t\t\t\t}, 10000)\n\t\t\t\tthis.promptDefaultValue = definition.defaultValue\n\t\t\t}\n\t\t)\n\t}\n\n\tpublic startLoading(message?: string | undefined): void {\n\t\tthis.trackInvocation('startLoading', message)\n\t\tthis.optionallyRenderLine(message ? `${message}` : 'Start loading...')\n\t}\n\n\tpublic stopLoading(): void {\n\t\tthis.trackInvocation('stopLoading')\n\t\tthis.optionallyRenderLine('Stop loading...')\n\t}\n\n\tpublic async waitForEnter(message?: string | undefined): Promise<void> {\n\t\tthis.trackInvocation('waitForEnter', message)\n\t\tthis.optionallyRenderLine(\n\t\t\t`${message ? ` ${message}\\n\\n` : ``}Waiting for enter...`\n\t\t)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.waitForEnterResolver = resolve\n\t\t})\n\t}\n\n\tpublic async waitForInput() {\n\t\tconst ttl = 1000 * 60 * 5\n\t\tconst checkInterval = 100\n\t\tlet loops = ttl / checkInterval\n\t\tlet lastWriteCount = this.invocations.length\n\n\t\twhile (!this.isWaitingForInput()) {\n\t\t\tif (loops-- === 0) {\n\t\t\t\tassert.fail(`Waiting for input timed out.`)\n\t\t\t}\n\n\t\t\tconst hasWritten = lastWriteCount != this.invocations.length\n\n\t\t\tif (hasWritten) {\n\t\t\t\tloops = ttl / checkInterval\n\t\t\t\tlastWriteCount = this.invocations.length\n\t\t\t\tif (this.shouldRenderTestLogs()) {\n\t\t\t\t\ttestUtil.log('waitForInput timeout reset because of new output.')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.error) {\n\t\t\t\tthrow this.error\n\t\t\t}\n\n\t\t\tawait new Promise((resolve) => setTimeout(resolve, checkInterval))\n\t\t}\n\t}\n\n\tpublic confirm(question: string): Promise<boolean> {\n\t\tthis.trackInvocation('confirm', question)\n\t\tthis.optionallyRenderLine(`${question} :: Y/N...`)\n\n\t\treturn new Promise((resolve) => {\n\t\t\tthis.confirmResolver = resolve\n\t\t})\n\t}\n\n\tpublic clear(): void {\n\t\tthis.trackInvocation('clear')\n\t}\n\n\tpublic renderProgressBar(options: ProgressBarOptions): void {\n\t\tthis.trackInvocation('renderProgressBar', options)\n\t\tthis.optionallyRenderLine(\n\t\t\t`Showing progress${options.title ? ` ${options.title}` : ``}`\n\t\t)\n\t}\n\n\tpublic updateProgressBar(options: ProgressBarUpdateOptions): void {\n\t\tthis.trackInvocation('updateProgressBar', options)\n\t}\n\n\tpublic removeProgressBar(): void {\n\t\tthis.trackInvocation('removeProgressBar')\n\t\tthis.optionallyRenderLine(`Hiding progress`)\n\t}\n\n\tpublic async getCursorPosition(): Promise<{ x: number; y: number } | null> {\n\t\tthis.trackInvocation('getCursorPosition')\n\t\treturn this.cursorPosition\n\t}\n\n\tpublic setCursorPosition(pos: { x: number; y: number }) {\n\t\tthis.cursorPosition = pos\n\t}\n\n\tpublic moveCursorTo(x: number, y: number): void {\n\t\tthis.trackInvocation('moveCursorTo', { x, y })\n\t}\n\n\tpublic clearBelowCursor(): void {\n\t\tthis.trackInvocation('clearBelowCursor')\n\t}\n}\n\ntype FilePromptInput = {\n\tpath: string\n}\n\ntype Input = string | string[] | FilePromptInput\n"],"mappings":"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"}
@@ -3,6 +3,7 @@ declare const uiAssert: {
3
3
  assertRendersSelect(ui: SpyInterface): Promise<any>;
4
4
  assertSelectDidNotRenderChoice(ui: SpyInterface, value: string, label: string): void;
5
5
  assertSelectRenderChoice(ui: SpyInterface, value: string, label: string): void;
6
+ assertRendersDirectorySelect(ui: SpyInterface, defaultValue: string): void;
6
7
  assertRendersConfirmWriteFile(ui: SpyInterface): Promise<void>;
7
8
  };
8
9
  export default uiAssert;
@@ -42,6 +42,15 @@ var uiAssert = {
42
42
  label: label
43
43
  });
44
44
  },
45
+ assertRendersDirectorySelect: function assertRendersDirectorySelect(ui, defaultValue) {
46
+ var last = ui.getLastInvocation();
47
+ _testUtils.assert.doesInclude(last.options, {
48
+ type: 'directory',
49
+ defaultValue: {
50
+ path: defaultValue
51
+ }
52
+ });
53
+ },
45
54
  assertRendersConfirmWriteFile: function assertRendersConfirmWriteFile(ui) {
46
55
  return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
47
56
  var last;
@@ -1 +1 @@
1
- {"version":3,"file":"uiAssert.utility.js","names":["_testUtils","require","uiAssert","assertRendersSelect","ui","_asyncToGenerator2","_regenerator","mark","_callee","last","wrap","_callee$","_context","prev","next","waitForInput","getLastInvocation","assert","isTruthy","options","choices","abrupt","stop","assertSelectDidNotRenderChoice","value","label","doesNotInclude","assertSelectRenderChoice","doesInclude","assertRendersConfirmWriteFile","_callee2","_callee2$","_context2","isEqual","type","isEqualDeep","_default","exports"],"sources":["../../../src/tests/utilities/uiAssert.utility.ts"],"sourcesContent":["import { assert } from '@sprucelabs/test-utils'\nimport SpyInterface from '../../interfaces/SpyInterface'\n\nconst uiAssert = {\n\tasync assertRendersSelect(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\t\tassert.isTruthy(\n\t\t\tlast.options.options.choices,\n\t\t\t`I expected a select, I did not find one!`\n\t\t)\n\n\t\treturn last.options\n\t},\n\n\tassertSelectDidNotRenderChoice(\n\t\tui: SpyInterface,\n\t\tvalue: string,\n\t\tlabel: string\n\t) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesNotInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tassertSelectRenderChoice(ui: SpyInterface, value: string, label: string) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tasync assertRendersConfirmWriteFile(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.isEqual(last.options.type, 'select')\n\t\tassert.isEqualDeep(last.options.options.choices, [\n\t\t\t{\n\t\t\t\tlabel: 'Overwrite',\n\t\t\t\tvalue: 'overwrite',\n\t\t\t},\n\t\t\t{ value: 'skip', label: 'Skip' },\n\t\t\t{ value: 'alwaysSkip', label: 'Always skip' },\n\t\t])\n\t},\n}\n\nexport default uiAssert\n"],"mappings":";;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAGA,IAAMC,QAAQ,GAAG;EACVC,mBAAmB,WAAAA,oBAACC,EAAgB,EAAE;IAAA,WAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,UAAAC,QAAA;MAAA,IAAAC,IAAA;MAAA,OAAAH,YAAA,YAAAI,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACrCV,EAAE,CAACW,YAAY,EAAE;UAAA;YAEjBN,IAAI,GAAGL,EAAE,CAACY,iBAAiB,EAAE;YACnCC,iBAAM,CAACC,QAAQ,CACdT,IAAI,CAACU,OAAO,CAACA,OAAO,CAACC,OAAO,6CAE5B;YAAA,OAAAR,QAAA,CAAAS,MAAA,WAEMZ,IAAI,CAACU,OAAO;UAAA;UAAA;YAAA,OAAAP,QAAA,CAAAU,IAAA;QAAA;MAAA,GAAAd,OAAA;IAAA;EACpB,CAAC;EAEDe,8BAA8B,WAAAA,+BAC7BnB,EAAgB,EAChBoB,KAAa,EACbC,KAAa,EACZ;IACD,IAAMhB,IAAI,GAAGL,EAAE,CAACY,iBAAiB,EAAE;IAEnCC,iBAAM,CAACS,cAAc,CAACjB,IAAI,CAACU,OAAO,CAACA,OAAO,CAACC,OAAO,EAAE;MACnDI,KAAK,EAALA,KAAK;MACLC,KAAK,EAALA;IACD,CAAC,CAAC;EACH,CAAC;EAEDE,wBAAwB,WAAAA,yBAACvB,EAAgB,EAAEoB,KAAa,EAAEC,KAAa,EAAE;IACxE,IAAMhB,IAAI,GAAGL,EAAE,CAACY,iBAAiB,EAAE;IAEnCC,iBAAM,CAACW,WAAW,CAACnB,IAAI,CAACU,OAAO,CAACA,OAAO,CAACC,OAAO,EAAE;MAChDI,KAAK,EAALA,KAAK;MACLC,KAAK,EAALA;IACD,CAAC,CAAC;EACH,CAAC;EAEKI,6BAA6B,WAAAA,8BAACzB,EAAgB,EAAE;IAAA,WAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,UAAAuB,SAAA;MAAA,IAAArB,IAAA;MAAA,OAAAH,YAAA,YAAAI,IAAA,UAAAqB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAnB,IAAA,GAAAmB,SAAA,CAAAlB,IAAA;UAAA;YAAAkB,SAAA,CAAAlB,IAAA;YAAA,OAC/CV,EAAE,CAACW,YAAY,EAAE;UAAA;YAEjBN,IAAI,GAAGL,EAAE,CAACY,iBAAiB,EAAE;YAEnCC,iBAAM,CAACgB,OAAO,CAACxB,IAAI,CAACU,OAAO,CAACe,IAAI,EAAE,QAAQ,CAAC;YAC3CjB,iBAAM,CAACkB,WAAW,CAAC1B,IAAI,CAACU,OAAO,CAACA,OAAO,CAACC,OAAO,EAAE,CAChD;cACCK,KAAK,EAAE,WAAW;cAClBD,KAAK,EAAE;YACR,CAAC,EACD;cAAEA,KAAK,EAAE,MAAM;cAAEC,KAAK,EAAE;YAAO,CAAC,EAChC;cAAED,KAAK,EAAE,YAAY;cAAEC,KAAK,EAAE;YAAc,CAAC,CAC7C,CAAC;UAAA;UAAA;YAAA,OAAAO,SAAA,CAAAV,IAAA;QAAA;MAAA,GAAAQ,QAAA;IAAA;EACH;AACD,CAAC;AAAA,IAAAM,QAAA,GAEclC,QAAQ;AAAAmC,OAAA,cAAAD,QAAA"}
1
+ {"version":3,"file":"uiAssert.utility.js","names":["_testUtils","require","uiAssert","assertRendersSelect","ui","_asyncToGenerator2","_regenerator","mark","_callee","last","wrap","_callee$","_context","prev","next","waitForInput","getLastInvocation","assert","isTruthy","options","choices","abrupt","stop","assertSelectDidNotRenderChoice","value","label","doesNotInclude","assertSelectRenderChoice","doesInclude","assertRendersDirectorySelect","defaultValue","type","path","assertRendersConfirmWriteFile","_callee2","_callee2$","_context2","isEqual","isEqualDeep","_default","exports"],"sources":["../../../src/tests/utilities/uiAssert.utility.ts"],"sourcesContent":["import { assert } from '@sprucelabs/test-utils'\nimport SpyInterface from '../../interfaces/SpyInterface'\n\nconst uiAssert = {\n\tasync assertRendersSelect(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\t\tassert.isTruthy(\n\t\t\tlast.options.options.choices,\n\t\t\t`I expected a select, I did not find one!`\n\t\t)\n\n\t\treturn last.options\n\t},\n\n\tassertSelectDidNotRenderChoice(\n\t\tui: SpyInterface,\n\t\tvalue: string,\n\t\tlabel: string\n\t) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesNotInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tassertSelectRenderChoice(ui: SpyInterface, value: string, label: string) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesInclude(last.options.options.choices, {\n\t\t\tvalue,\n\t\t\tlabel,\n\t\t})\n\t},\n\n\tassertRendersDirectorySelect(ui: SpyInterface, defaultValue: string) {\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.doesInclude(last.options, {\n\t\t\ttype: 'directory',\n\t\t\tdefaultValue: { path: defaultValue },\n\t\t})\n\t},\n\n\tasync assertRendersConfirmWriteFile(ui: SpyInterface) {\n\t\tawait ui.waitForInput()\n\n\t\tconst last = ui.getLastInvocation()\n\n\t\tassert.isEqual(last.options.type, 'select')\n\t\tassert.isEqualDeep(last.options.options.choices, [\n\t\t\t{\n\t\t\t\tlabel: 'Overwrite',\n\t\t\t\tvalue: 'overwrite',\n\t\t\t},\n\t\t\t{ value: 'skip', label: 'Skip' },\n\t\t\t{ value: 'alwaysSkip', label: 'Always skip' },\n\t\t])\n\t},\n}\n\nexport default uiAssert\n"],"mappings":";;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAGA,IAAMC,QAAQ,GAAG;EACVC,mBAAmB,WAAAA,oBAACC,EAAgB,EAAE;IAAA,WAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,UAAAC,QAAA;MAAA,IAAAC,IAAA;MAAA,OAAAH,YAAA,YAAAI,IAAA,UAAAC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;UAAA;YAAAF,QAAA,CAAAE,IAAA;YAAA,OACrCV,EAAE,CAACW,YAAY,EAAE;UAAA;YAEjBN,IAAI,GAAGL,EAAE,CAACY,iBAAiB,EAAE;YACnCC,iBAAM,CAACC,QAAQ,CACdT,IAAI,CAACU,OAAO,CAACA,OAAO,CAACC,OAAO,6CAE5B;YAAA,OAAAR,QAAA,CAAAS,MAAA,WAEMZ,IAAI,CAACU,OAAO;UAAA;UAAA;YAAA,OAAAP,QAAA,CAAAU,IAAA;QAAA;MAAA,GAAAd,OAAA;IAAA;EACpB,CAAC;EAEDe,8BAA8B,WAAAA,+BAC7BnB,EAAgB,EAChBoB,KAAa,EACbC,KAAa,EACZ;IACD,IAAMhB,IAAI,GAAGL,EAAE,CAACY,iBAAiB,EAAE;IAEnCC,iBAAM,CAACS,cAAc,CAACjB,IAAI,CAACU,OAAO,CAACA,OAAO,CAACC,OAAO,EAAE;MACnDI,KAAK,EAALA,KAAK;MACLC,KAAK,EAALA;IACD,CAAC,CAAC;EACH,CAAC;EAEDE,wBAAwB,WAAAA,yBAACvB,EAAgB,EAAEoB,KAAa,EAAEC,KAAa,EAAE;IACxE,IAAMhB,IAAI,GAAGL,EAAE,CAACY,iBAAiB,EAAE;IAEnCC,iBAAM,CAACW,WAAW,CAACnB,IAAI,CAACU,OAAO,CAACA,OAAO,CAACC,OAAO,EAAE;MAChDI,KAAK,EAALA,KAAK;MACLC,KAAK,EAALA;IACD,CAAC,CAAC;EACH,CAAC;EAEDI,4BAA4B,WAAAA,6BAACzB,EAAgB,EAAE0B,YAAoB,EAAE;IACpE,IAAMrB,IAAI,GAAGL,EAAE,CAACY,iBAAiB,EAAE;IAEnCC,iBAAM,CAACW,WAAW,CAACnB,IAAI,CAACU,OAAO,EAAE;MAChCY,IAAI,EAAE,WAAW;MACjBD,YAAY,EAAE;QAAEE,IAAI,EAAEF;MAAa;IACpC,CAAC,CAAC;EACH,CAAC;EAEKG,6BAA6B,WAAAA,8BAAC7B,EAAgB,EAAE;IAAA,WAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,UAAA2B,SAAA;MAAA,IAAAzB,IAAA;MAAA,OAAAH,YAAA,YAAAI,IAAA,UAAAyB,UAAAC,SAAA;QAAA,kBAAAA,SAAA,CAAAvB,IAAA,GAAAuB,SAAA,CAAAtB,IAAA;UAAA;YAAAsB,SAAA,CAAAtB,IAAA;YAAA,OAC/CV,EAAE,CAACW,YAAY,EAAE;UAAA;YAEjBN,IAAI,GAAGL,EAAE,CAACY,iBAAiB,EAAE;YAEnCC,iBAAM,CAACoB,OAAO,CAAC5B,IAAI,CAACU,OAAO,CAACY,IAAI,EAAE,QAAQ,CAAC;YAC3Cd,iBAAM,CAACqB,WAAW,CAAC7B,IAAI,CAACU,OAAO,CAACA,OAAO,CAACC,OAAO,EAAE,CAChD;cACCK,KAAK,EAAE,WAAW;cAClBD,KAAK,EAAE;YACR,CAAC,EACD;cAAEA,KAAK,EAAE,MAAM;cAAEC,KAAK,EAAE;YAAO,CAAC,EAChC;cAAED,KAAK,EAAE,YAAY;cAAEC,KAAK,EAAE;YAAc,CAAC,CAC7C,CAAC;UAAA;UAAA;YAAA,OAAAW,SAAA,CAAAd,IAAA;QAAA;MAAA,GAAAY,QAAA;IAAA;EACH;AACD,CAAC;AAAA,IAAAK,QAAA,GAEcrC,QAAQ;AAAAsC,OAAA,cAAAD,QAAA"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/parser",
3
- "version": "5.58.0",
3
+ "version": "5.59.0",
4
4
  "description": "An ESLint custom parser which leverages TypeScript ESTree",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -45,9 +45,9 @@
45
45
  "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
46
46
  },
47
47
  "dependencies": {
48
- "@typescript-eslint/scope-manager": "5.58.0",
49
- "@typescript-eslint/types": "5.58.0",
50
- "@typescript-eslint/typescript-estree": "5.58.0",
48
+ "@typescript-eslint/scope-manager": "5.59.0",
49
+ "@typescript-eslint/types": "5.59.0",
50
+ "@typescript-eslint/typescript-estree": "5.59.0",
51
51
  "debug": "^4.3.4"
52
52
  },
53
53
  "devDependencies": {
@@ -71,5 +71,5 @@
71
71
  ]
72
72
  }
73
73
  },
74
- "gitHead": "0c6b63658aa5b01188480150fd777a1fa9b277eb"
74
+ "gitHead": "f1a0d78ddae418e13ae82f258d951690bb594eaf"
75
75
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/scope-manager",
3
- "version": "5.58.0",
3
+ "version": "5.59.0",
4
4
  "description": "TypeScript scope analyser for ESLint",
5
5
  "keywords": [
6
6
  "eslint",
@@ -38,12 +38,12 @@
38
38
  "typecheck": "nx typecheck"
39
39
  },
40
40
  "dependencies": {
41
- "@typescript-eslint/types": "5.58.0",
42
- "@typescript-eslint/visitor-keys": "5.58.0"
41
+ "@typescript-eslint/types": "5.59.0",
42
+ "@typescript-eslint/visitor-keys": "5.59.0"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/glob": "*",
46
- "@typescript-eslint/typescript-estree": "5.58.0",
46
+ "@typescript-eslint/typescript-estree": "5.59.0",
47
47
  "glob": "*",
48
48
  "jest-specific-snapshot": "*",
49
49
  "make-dir": "*",
@@ -63,5 +63,5 @@
63
63
  ]
64
64
  }
65
65
  },
66
- "gitHead": "0c6b63658aa5b01188480150fd777a1fa9b277eb"
66
+ "gitHead": "f1a0d78ddae418e13ae82f258d951690bb594eaf"
67
67
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/types",
3
- "version": "5.58.0",
3
+ "version": "5.59.0",
4
4
  "description": "Types for the TypeScript-ESTree AST spec",
5
5
  "keywords": [
6
6
  "eslint",
@@ -80,5 +80,5 @@
80
80
  "devDependencies": {
81
81
  "typescript": "*"
82
82
  },
83
- "gitHead": "0c6b63658aa5b01188480150fd777a1fa9b277eb"
83
+ "gitHead": "f1a0d78ddae418e13ae82f258d951690bb594eaf"
84
84
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/typescript-estree",
3
- "version": "5.58.0",
3
+ "version": "5.59.0",
4
4
  "description": "A parser that converts TypeScript source code into an ESTree compatible form",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -42,8 +42,8 @@
42
42
  "typecheck": "tsc -p tsconfig.json --noEmit"
43
43
  },
44
44
  "dependencies": {
45
- "@typescript-eslint/types": "5.58.0",
46
- "@typescript-eslint/visitor-keys": "5.58.0",
45
+ "@typescript-eslint/types": "5.59.0",
46
+ "@typescript-eslint/visitor-keys": "5.59.0",
47
47
  "debug": "^4.3.4",
48
48
  "globby": "^11.1.0",
49
49
  "is-glob": "^4.0.3",
@@ -81,5 +81,5 @@
81
81
  ]
82
82
  }
83
83
  },
84
- "gitHead": "0c6b63658aa5b01188480150fd777a1fa9b277eb"
84
+ "gitHead": "f1a0d78ddae418e13ae82f258d951690bb594eaf"
85
85
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-eslint/visitor-keys",
3
- "version": "5.58.0",
3
+ "version": "5.59.0",
4
4
  "description": "Visitor keys used to help traverse the TypeScript-ESTree AST",
5
5
  "keywords": [
6
6
  "eslint",
@@ -39,7 +39,7 @@
39
39
  "typecheck": "tsc -p tsconfig.json --noEmit"
40
40
  },
41
41
  "dependencies": {
42
- "@typescript-eslint/types": "5.58.0",
42
+ "@typescript-eslint/types": "5.59.0",
43
43
  "eslint-visitor-keys": "^3.3.0"
44
44
  },
45
45
  "devDependencies": {
@@ -56,5 +56,5 @@
56
56
  ]
57
57
  }
58
58
  },
59
- "gitHead": "0c6b63658aa5b01188480150fd777a1fa9b277eb"
59
+ "gitHead": "f1a0d78ddae418e13ae82f258d951690bb594eaf"
60
60
  }
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  ]
18
18
  },
19
19
  "license": "MIT",
20
- "version": "19.1.5",
20
+ "version": "19.1.6",
21
21
  "bin": {
22
22
  "spruce": "./build/index.js"
23
23
  },
@@ -86,7 +86,7 @@
86
86
  "@sprucelabs/spruce-core-schemas": "^38.0.18",
87
87
  "@sprucelabs/spruce-event-utils": "^36.0.19",
88
88
  "@sprucelabs/spruce-skill-utils": "^28.1.125",
89
- "@sprucelabs/spruce-templates": "^19.1.5",
89
+ "@sprucelabs/spruce-templates": "^19.1.6",
90
90
  "@typescript-eslint/eslint-plugin": "^5.27.1",
91
91
  "@typescript-eslint/parser": "^5.27.1",
92
92
  "cfonts": "^3.1.1",
@@ -590,5 +590,5 @@
590
590
  "terminal-kit"
591
591
  ]
592
592
  },
593
- "gitHead": "ee04cb9291c2130ae9a07b9ee559592b6f9f344b"
593
+ "gitHead": "a8cbc41320cb67db72c8a4aa8c393b352a17d4de"
594
594
  }
@@ -59,33 +59,12 @@ export default class CreatingBehavioralTestsTest extends AbstractTestTest {
59
59
  testType
60
60
  )
61
61
 
62
- uiAssert.assertSelectRenderChoice(this.ui, '.', testType)
63
- uiAssert.assertSelectRenderChoice(this.ui, `dummy1`, `${testType}/dummy1`)
64
-
65
- await this.ui.sendInput('.')
66
- await this.waitAndSelectSubClass()
67
-
68
- await promise
69
- }
70
-
71
- @test()
72
- protected static async listsManyDirsIfExistInsideTestDir() {
73
- await this.installTests()
74
-
75
- const dirs = ['dir1', 'dir2', 'dir3']
76
-
77
- for (const dir of dirs) {
78
- this.createTestSubDir('behavioral', dir)
79
- }
80
-
81
- const { promise } = await this.installAndStartTestActionAndWaitForInput()
82
-
83
- for (const dir of dirs) {
84
- uiAssert.assertSelectRenderChoice(this.ui, `${dir}`, `behavioral/${dir}`)
85
- }
86
-
87
- await this.ui.sendInput('.')
62
+ uiAssert.assertRendersDirectorySelect(
63
+ this.ui,
64
+ this.resolvePath('src', '__tests__', testType)
65
+ )
88
66
 
67
+ await this.ui.sendInput('')
89
68
  await this.waitAndSelectSubClass()
90
69
 
91
70
  await promise
@@ -95,13 +74,13 @@ export default class CreatingBehavioralTestsTest extends AbstractTestTest {
95
74
  @test('can select sub dir 2', 'test-2')
96
75
  protected static async selectingAnOptionRendersToSubDir(dirName: string) {
97
76
  await this.installTests()
98
- this.createTestSubDir('behavioral', dirName)
77
+ const dir = this.createTestSubDir('behavioral', dirName)
99
78
 
100
79
  const { promise } = await this.installAndStartTestActionAndWaitForInput(
101
80
  'behavioral'
102
81
  )
103
82
 
104
- await this.ui.sendInput(`${dirName}`)
83
+ await this.ui.sendInput({ path: dir })
105
84
 
106
85
  await this.waitAndSelectSubClass()
107
86
 
@@ -118,25 +97,6 @@ export default class CreatingBehavioralTestsTest extends AbstractTestTest {
118
97
  assert.isEqual(expectedPath, results.files?.[0]?.path)
119
98
  }
120
99
 
121
- @test()
122
- protected static async doesNotListFiles() {
123
- await this.installTests()
124
- this.createTestSubDir('behavioral', 'subdir')
125
-
126
- const file = this.resolveTestDir('behavioral', 'test.ts')
127
- diskUtil.writeFile(file, 'what the!?')
128
-
129
- await this.installAndStartTestActionAndWaitForInput()
130
-
131
- uiAssert.assertSelectDidNotRenderChoice(
132
- this.ui,
133
- 'test',
134
- `behavioral/test/test.ts`
135
- )
136
-
137
- this.ui.reset()
138
- }
139
-
140
100
  @test()
141
101
  protected static async allTestsComeFakedToStart() {
142
102
  const testFile = await this.createTestAndGetFile()
@@ -147,6 +107,7 @@ export default class CreatingBehavioralTestsTest extends AbstractTestTest {
147
107
  private static createTestSubDir(...testDirs: string[]) {
148
108
  const newDir = this.resolveTestDir(...testDirs)
149
109
  diskUtil.createDir(newDir)
110
+ return newDir
150
111
  }
151
112
 
152
113
  private static resolveTestDir(...testDirs: string[]) {