@sprucelabs/spruce-cli 17.1.55 → 18.1.0

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 (150) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +1 -1
  3. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  4. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +1 -1
  5. package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
  6. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +4 -4
  7. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  8. package/build/__tests__/behavioral/WatchingSkillViews.test.js +3 -3
  9. package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
  10. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +1 -1
  11. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  12. package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +2 -0
  13. package/build/__tests__/behavioral/events/CreatingAListener.test.js +118 -59
  14. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  15. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.d.ts +17 -0
  16. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js +137 -0
  17. package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js.map +1 -0
  18. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +46 -45
  19. package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
  20. package/build/__tests__/behavioral/tests/CreatingATest.test.js +1 -1
  21. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  22. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +4 -4
  23. package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
  24. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +2 -2
  25. package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
  26. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +2 -2
  27. package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
  28. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +2 -2
  29. package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
  30. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +2 -2
  31. package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
  32. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
  33. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  34. package/build/__tests__/behavioral/views/CreatingATheme.test.js +1 -1
  35. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  36. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.d.ts +3 -3
  37. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +153 -156
  38. package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
  39. package/build/__tests__/implementation/ActionExecuter.test.js +2 -2
  40. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  41. package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
  42. package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
  43. package/build/__tests__/implementation/ActionExecuter4.test.js +1 -1
  44. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  45. package/build/__tests__/implementation/FeatureInstaller.test.js +8 -4
  46. package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
  47. package/build/__tests__/implementation/GlobalEmitter.d.ts +1 -1
  48. package/build/__tests__/implementation/GlobalEmitter.js +9 -10
  49. package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
  50. package/build/__tests__/implementation/SettingUpANodeModule.test.js +1 -1
  51. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  52. package/build/__tests__/implementation/SkillStore.test.d.ts +3 -1
  53. package/build/__tests__/implementation/SkillStore.test.js +67 -50
  54. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  55. package/build/__tests__/implementation/StoreFeature.test.js +1 -1
  56. package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
  57. package/build/cli.js +3 -3
  58. package/build/cli.js.map +1 -1
  59. package/build/features/AbstractAction.d.ts +2 -2
  60. package/build/features/AbstractAction.js.map +1 -1
  61. package/build/features/AbstractFeature.d.ts +22 -22
  62. package/build/features/AbstractFeature.js.map +1 -1
  63. package/build/features/ActionExecuter.d.ts +8 -8
  64. package/build/features/ActionExecuter.js.map +1 -1
  65. package/build/features/FeatureInstaller.d.ts +15 -2
  66. package/build/features/FeatureInstaller.js +36 -36
  67. package/build/features/FeatureInstaller.js.map +1 -1
  68. package/build/features/FeatureInstallerFactory.d.ts +12 -10
  69. package/build/features/FeatureInstallerFactory.js +2 -2
  70. package/build/features/FeatureInstallerFactory.js.map +1 -1
  71. package/build/features/OverrideActionDecorator.js +4 -5
  72. package/build/features/OverrideActionDecorator.js.map +1 -1
  73. package/build/features/event/actions/ListenAction.js.map +1 -1
  74. package/build/features/event/actions/SetRemoteAction.d.ts +1 -0
  75. package/build/features/event/actions/SetRemoteAction.js +2 -1
  76. package/build/features/event/actions/SetRemoteAction.js.map +1 -1
  77. package/build/features/event/actions/SyncListenersAction.js.map +1 -1
  78. package/build/features/node/NodeFeature.js.map +1 -1
  79. package/build/features/skill/SkillFeature.js.map +1 -1
  80. package/build/features/skill/stores/SkillStore.d.ts +4 -1
  81. package/build/features/skill/stores/SkillStore.js +127 -100
  82. package/build/features/skill/stores/SkillStore.js.map +1 -1
  83. package/build/features/watch/WatchFeature.js +1 -1
  84. package/build/features/watch/WatchFeature.js.map +1 -1
  85. package/build/interfaces/SpyInterface.d.ts +2 -0
  86. package/build/interfaces/SpyInterface.js +16 -4
  87. package/build/interfaces/SpyInterface.js.map +1 -1
  88. package/build/stores/AbstractStore.d.ts +9 -7
  89. package/build/stores/AbstractStore.js.map +1 -1
  90. package/build/stores/StoreFactory.d.ts +19 -13
  91. package/build/stores/StoreFactory.js +15 -13
  92. package/build/stores/StoreFactory.js.map +1 -1
  93. package/build/tests/AbstractCliTest.d.ts +9 -6
  94. package/build/tests/AbstractCliTest.js +53 -45
  95. package/build/tests/AbstractCliTest.js.map +1 -1
  96. package/build/tests/AbstractSchemaTest.js +18 -20
  97. package/build/tests/AbstractSchemaTest.js.map +1 -1
  98. package/build/utilities/action.utility.js +3 -1
  99. package/build/utilities/action.utility.js.map +1 -1
  100. package/node_modules/@typescript-eslint/parser/package.json +5 -5
  101. package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
  102. package/node_modules/@typescript-eslint/types/package.json +2 -2
  103. package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
  104. package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
  105. package/package.json +28 -86
  106. package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +1 -1
  107. package/src/__tests__/behavioral/RememberingUpgradeSelections.test.ts +1 -1
  108. package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +4 -4
  109. package/src/__tests__/behavioral/WatchingSkillViews.test.ts +3 -3
  110. package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +1 -1
  111. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +41 -14
  112. package/src/__tests__/behavioral/events/EverythingInstalledInstaller.ts +46 -0
  113. package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +10 -5
  114. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +1 -1
  115. package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +4 -4
  116. package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +2 -2
  117. package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +2 -2
  118. package/src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts +2 -2
  119. package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +2 -2
  120. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +1 -1
  121. package/src/__tests__/behavioral/views/CreatingATheme.test.ts +1 -1
  122. package/src/__tests__/behavioral/watchers/WatchingForChanges.test.ts +35 -35
  123. package/src/__tests__/implementation/ActionExecuter.test.ts +2 -2
  124. package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
  125. package/src/__tests__/implementation/ActionExecuter4.test.ts +1 -1
  126. package/src/__tests__/implementation/FeatureInstaller.test.ts +8 -1
  127. package/src/__tests__/implementation/GlobalEmitter.ts +2 -4
  128. package/src/__tests__/implementation/SettingUpANodeModule.test.ts +1 -1
  129. package/src/__tests__/implementation/SkillStore.test.ts +23 -24
  130. package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
  131. package/src/cli.ts +7 -3
  132. package/src/features/AbstractAction.ts +3 -3
  133. package/src/features/AbstractFeature.ts +26 -26
  134. package/src/features/ActionExecuter.ts +9 -9
  135. package/src/features/FeatureInstaller.ts +32 -12
  136. package/src/features/FeatureInstallerFactory.ts +17 -13
  137. package/src/features/OverrideActionDecorator.ts +2 -5
  138. package/src/features/event/actions/ListenAction.ts +1 -0
  139. package/src/features/event/actions/SetRemoteAction.ts +2 -1
  140. package/src/features/event/actions/SyncListenersAction.ts +0 -1
  141. package/src/features/node/NodeFeature.ts +3 -1
  142. package/src/features/skill/SkillFeature.ts +3 -3
  143. package/src/features/skill/stores/SkillStore.ts +18 -11
  144. package/src/features/watch/WatchFeature.ts +1 -1
  145. package/src/interfaces/SpyInterface.ts +10 -0
  146. package/src/stores/AbstractStore.ts +14 -8
  147. package/src/stores/StoreFactory.ts +56 -44
  148. package/src/tests/AbstractCliTest.ts +53 -45
  149. package/src/tests/AbstractSchemaTest.ts +1 -3
  150. package/src/utilities/action.utility.ts +3 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EverythingInstalledInstaller.js","names":["EverythingInstalledInstaller","code","feature","featureMap","Object","values","keys","_code","_codes"],"sources":["../../../../src/__tests__/behavioral/events/EverythingInstalledInstaller.ts"],"sourcesContent":["import { FeatureDependency } from '../../../features/AbstractFeature'\nimport FeatureInstaller from '../../../features/FeatureInstaller'\nimport {\n\tFeatureCode,\n\tFeatureInstallResponse,\n\tFeatureMap,\n} from '../../../features/features.types'\n\nexport default class EverythingInstalledInstaller implements FeatureInstaller {\n\tprivate featureMap: Partial<FeatureMap> = {}\n\n\tpublic mapFeature<C extends keyof FeatureMap>(\n\t\tcode: C,\n\t\tfeature: FeatureMap[C]\n\t): void {\n\t\tthis.featureMap[code] = feature\n\t}\n\n\tpublic async install(): Promise<FeatureInstallResponse> {\n\t\treturn {}\n\t}\n\tpublic async getInstalledFeatures() {\n\t\treturn Object.values(this.featureMap)\n\t}\n\tpublic getFeatureDependencies(): FeatureDependency[] {\n\t\treturn []\n\t}\n\tpublic getAllCodes(): FeatureCode[] {\n\t\treturn Object.keys(this.featureMap) as FeatureCode[]\n\t}\n\n\tpublic async isInstalled(_code: keyof FeatureMap): Promise<boolean> {\n\t\treturn true\n\t}\n\tpublic markAsSkippedThisRun(_code: keyof FeatureMap): void {}\n\tpublic markAsPermanentlySkipped(_code: keyof FeatureMap): void {}\n\tpublic isMarkedAsSkipped(_code: keyof FeatureMap): boolean {\n\t\treturn false\n\t}\n\tpublic getFeature<C extends keyof FeatureMap>(code: C): FeatureMap[C] {\n\t\treturn this.featureMap[code]!\n\t}\n\tpublic async areInstalled(_codes: FeatureCode[]): Promise<boolean> {\n\t\treturn true\n\t}\n}\n"],"mappings":";;;;;;;;;;;;IAQqBA,4BAA4B;EAAA;IAAA;IAAA,qDACN,CAAC,CAAC;EAAA;EAAA;IAAA;IAAA,OAE5C,oBACCC,IAAO,EACPC,OAAsB,EACf;MACP,IAAI,CAACC,UAAU,CAACF,IAAI,CAAC,GAAGC,OAAO;IAChC;EAAC;IAAA;IAAA;MAAA,6FAED;QAAA;UAAA;YAAA;cAAA;gBAAA,iCACQ,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACT;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,0GACD;QAAA;UAAA;YAAA;cAAA;gBAAA,kCACQE,MAAM,CAACC,MAAM,CAAC,IAAI,CAACF,UAAU,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACrC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OACD,kCAAqD;MACpD,OAAO,EAAE;IACV;EAAC;IAAA;IAAA,OACD,uBAAoC;MACnC,OAAOC,MAAM,CAACE,IAAI,CAAC,IAAI,CAACH,UAAU,CAAC;IACpC;EAAC;IAAA;IAAA;MAAA,iGAED,kBAAyBI,KAAuB;QAAA;UAAA;YAAA;cAAA;gBAAA,kCACxC,IAAI;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACX;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OACD,8BAA4BA,KAAuB,EAAQ,CAAC;EAAC;IAAA;IAAA,OAC7D,kCAAgCA,KAAuB,EAAQ,CAAC;EAAC;IAAA;IAAA,OACjE,2BAAyBA,KAAuB,EAAW;MAC1D,OAAO,KAAK;IACb;EAAC;IAAA;IAAA,OACD,oBAA8CN,IAAO,EAAiB;MACrE,OAAO,IAAI,CAACE,UAAU,CAACF,IAAI,CAAC;IAC7B;EAAC;IAAA;IAAA;MAAA,kGACD,kBAA0BO,MAAqB;QAAA;UAAA;YAAA;cAAA;gBAAA,kCACvC,IAAI;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACX;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA;AAAA"}
@@ -16,20 +16,21 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
16
16
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
17
  var _testUtils = require("@sprucelabs/test-utils");
18
18
  var _GlobalEmitter = _interopRequireWildcard(require("../../../GlobalEmitter"));
19
+ var _CommandService = _interopRequireDefault(require("../../../services/CommandService"));
19
20
  var _AbstractCliTest2 = _interopRequireDefault(require("../../../tests/AbstractCliTest"));
20
21
  var _dec, _dec2, _dec3, _class;
21
22
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
23
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
24
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
24
25
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
25
- var TheTestEmitter = /*#__PURE__*/function (_CliGlobalEmitter) {
26
- (0, _inherits2["default"])(TheTestEmitter, _CliGlobalEmitter);
27
- var _super = _createSuper(TheTestEmitter);
28
- function TheTestEmitter() {
29
- (0, _classCallCheck2["default"])(this, TheTestEmitter);
26
+ var SpyEmitter = /*#__PURE__*/function (_CliGlobalEmitter) {
27
+ (0, _inherits2["default"])(SpyEmitter, _CliGlobalEmitter);
28
+ var _super = _createSuper(SpyEmitter);
29
+ function SpyEmitter() {
30
+ (0, _classCallCheck2["default"])(this, SpyEmitter);
30
31
  return _super.apply(this, arguments);
31
32
  }
32
- (0, _createClass2["default"])(TheTestEmitter, [{
33
+ (0, _createClass2["default"])(SpyEmitter, [{
33
34
  key: "hasListeners",
34
35
  value: function hasListeners(eventName) {
35
36
  return !!this.listenersByEvent[eventName];
@@ -37,10 +38,10 @@ var TheTestEmitter = /*#__PURE__*/function (_CliGlobalEmitter) {
37
38
  }], [{
38
39
  key: "TestEmitter",
39
40
  value: function TestEmitter() {
40
- return new TheTestEmitter(_GlobalEmitter.globalContract);
41
+ return new SpyEmitter(_GlobalEmitter.globalContract);
41
42
  }
42
43
  }]);
43
- return TheTestEmitter;
44
+ return SpyEmitter;
44
45
  }(_GlobalEmitter["default"]);
45
46
  var StartingOnboardingTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtils.test)(), _dec3 = (0, _testUtils.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
46
47
  (0, _inherits2["default"])(StartingOnboardingTest, _AbstractCliTest);
@@ -74,18 +75,15 @@ var StartingOnboardingTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
74
75
  key: "addsCommandListeners",
75
76
  value: function () {
76
77
  var _addsCommandListeners = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
77
- var testEmitter;
78
78
  return _regenerator["default"].wrap(function _callee2$(_context2) {
79
79
  while (1) {
80
80
  switch (_context2.prev = _context2.next) {
81
81
  case 0:
82
- testEmitter = TheTestEmitter.TestEmitter();
82
+ this.emitter = SpyEmitter.TestEmitter();
83
83
  _context2.next = 3;
84
- return this.Cli({
85
- emitter: testEmitter
86
- });
84
+ return this.Cli();
87
85
  case 3:
88
- _testUtils.assert.isTrue(testEmitter.hasListeners('feature.will-execute'));
86
+ _testUtils.assert.isTrue(this.emitter.hasListeners('feature.will-execute'));
89
87
  case 4:
90
88
  case "end":
91
89
  return _context2.stop();
@@ -107,62 +105,65 @@ var StartingOnboardingTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUt
107
105
  while (1) {
108
106
  switch (_context3.prev = _context3.next) {
109
107
  case 0:
108
+ _CommandService["default"].fakeCommand(/yarn/, {
109
+ code: 0
110
+ });
110
111
  onboardAction = this.Action('onboard', 'onboard');
111
112
  onboardPromise = onboardAction.execute({}); // get through first onboarding script and select short onboarding
112
- _context3.next = 4;
113
+ _context3.next = 5;
113
114
  return this.waitForInput();
114
- case 4:
115
- _context3.next = 6;
115
+ case 5:
116
+ _context3.next = 7;
116
117
  return this.ui.sendInput('\n');
117
- case 6:
118
- _context3.next = 8;
118
+ case 7:
119
+ _context3.next = 9;
119
120
  return this.waitForInput();
120
- case 8:
121
- _context3.next = 10;
121
+ case 9:
122
+ _context3.next = 11;
122
123
  return this.ui.sendInput('short');
123
- case 10:
124
- _context3.next = 12;
124
+ case 11:
125
+ _context3.next = 13;
125
126
  return this.waitForInput();
126
- case 12:
127
- _context3.next = 14;
127
+ case 13:
128
+ _context3.next = 15;
128
129
  return this.ui.sendInput('\n');
129
- case 14:
130
- _context3.next = 16;
130
+ case 15:
131
+ _context3.next = 17;
131
132
  return onboardPromise;
132
- case 16:
133
+ case 17:
133
134
  onboardingStore = this.Store('onboarding');
134
135
  _testUtils.assert.isEqual(onboardingStore.getMode(), 'short');
135
136
  createSkillAction = this.Action('skill', 'create', {
136
137
  shouldAutoHandleDependencies: true
137
138
  });
138
139
  createPromise = createSkillAction.execute({}); // create skill confirmation
139
- _context3.next = 22;
140
+ _context3.next = 23;
140
141
  return this.waitForInput();
141
- case 22:
142
- _context3.next = 24;
142
+ case 23:
143
+ _context3.next = 25;
143
144
  return this.ui.sendInput('\n');
144
- case 24:
145
- _context3.next = 26;
145
+ case 25:
146
+ _context3.next = 27;
146
147
  return this.wait(100);
147
- case 26:
148
- _context3.next = 28;
148
+ case 27:
149
+ _context3.next = 29;
149
150
  return this.waitForInput();
150
- case 28:
151
- _context3.next = 30;
151
+ case 29:
152
+ _context3.next = 31;
152
153
  return this.ui.sendInput('my new skill');
153
- case 30:
154
- _context3.next = 32;
154
+ case 31:
155
+ _context3.next = 33;
155
156
  return this.waitForInput();
156
- case 32:
157
- _context3.next = 34;
157
+ case 33:
158
+ _context3.next = 35;
158
159
  return this.ui.sendInput('a description');
159
- case 34:
160
- _context3.next = 36;
160
+ case 35:
161
+ _context3.next = 37;
161
162
  return createPromise;
162
- case 36:
163
+ case 37:
163
164
  //should still be on (will turn off after test reporter boots)
164
165
  _testUtils.assert.isEqual(onboardingStore.getMode(), 'short');
165
- case 37:
166
+ case 38:
166
167
  case "end":
167
168
  return _context3.stop();
168
169
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StartingOnboarding.test.js","names":["TheTestEmitter","eventName","listenersByEvent","globalContract","CliGlobalEmitter","StartingOnboardingTest","test","assert","isFunction","Action","execute","testEmitter","TestEmitter","Cli","emitter","isTrue","hasListeners","onboardAction","onboardPromise","waitForInput","ui","sendInput","onboardingStore","Store","isEqual","getMode","createSkillAction","shouldAutoHandleDependencies","createPromise","wait","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/onboard/StartingOnboarding.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport CliGlobalEmitter, { globalContract } from '../../../GlobalEmitter'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nclass TheTestEmitter extends CliGlobalEmitter {\n\tpublic static TestEmitter() {\n\t\treturn new TheTestEmitter(globalContract)\n\t}\n\n\tpublic hasListeners(eventName: string) {\n\t\treturn !!this.listenersByEvent[eventName]\n\t}\n}\n\nexport default class StartingOnboardingTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasOnboardAction() {\n\t\tassert.isFunction(this.Action('onboard', 'onboard').execute)\n\t}\n\n\t@test()\n\tprotected static async addsCommandListeners() {\n\t\tconst testEmitter = TheTestEmitter.TestEmitter()\n\n\t\tawait this.Cli({ emitter: testEmitter })\n\n\t\tassert.isTrue(testEmitter.hasListeners('feature.will-execute'))\n\t}\n\n\t@test()\n\tprotected static async onboardingThroughSkillCreateThenShutsOff() {\n\t\tconst onboardAction = this.Action('onboard', 'onboard')\n\t\tconst onboardPromise = onboardAction.execute({})\n\n\t\t// get through first onboarding script and select short onboarding\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('short')\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tawait onboardPromise\n\n\t\tconst onboardingStore = this.Store('onboarding')\n\t\tassert.isEqual(onboardingStore.getMode(), 'short')\n\n\t\tconst createSkillAction = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\n\t\tconst createPromise = createSkillAction.execute({})\n\n\t\t// create skill confirmation\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tawait this.wait(100)\n\n\t\t// install skill\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('my new skill')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('a description')\n\n\t\tawait createPromise\n\n\t\t//should still be on (will turn off after test reporter boots)\n\t\tassert.isEqual(onboardingStore.getMode(), 'short')\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"StartingOnboarding.test.js","names":["SpyEmitter","eventName","listenersByEvent","globalContract","CliGlobalEmitter","StartingOnboardingTest","test","assert","isFunction","Action","execute","emitter","TestEmitter","Cli","isTrue","hasListeners","CommandService","fakeCommand","code","onboardAction","onboardPromise","waitForInput","ui","sendInput","onboardingStore","Store","isEqual","getMode","createSkillAction","shouldAutoHandleDependencies","createPromise","wait","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/onboard/StartingOnboarding.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport CliGlobalEmitter, { globalContract } from '../../../GlobalEmitter'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nclass SpyEmitter extends CliGlobalEmitter {\n\tpublic static TestEmitter() {\n\t\treturn new SpyEmitter(globalContract)\n\t}\n\n\tpublic hasListeners(eventName: string) {\n\t\treturn !!this.listenersByEvent[eventName]\n\t}\n}\n\nexport default class StartingOnboardingTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasOnboardAction() {\n\t\tassert.isFunction(this.Action('onboard', 'onboard').execute)\n\t}\n\n\t@test()\n\tprotected static async addsCommandListeners() {\n\t\tthis.emitter = SpyEmitter.TestEmitter()\n\n\t\tawait this.Cli()\n\n\t\tassert.isTrue(\n\t\t\t(this.emitter as SpyEmitter).hasListeners('feature.will-execute')\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async onboardingThroughSkillCreateThenShutsOff() {\n\t\tCommandService.fakeCommand(/yarn/, { code: 0 })\n\n\t\tconst onboardAction = this.Action('onboard', 'onboard')\n\t\tconst onboardPromise = onboardAction.execute({})\n\n\t\t// get through first onboarding script and select short onboarding\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('short')\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tawait onboardPromise\n\n\t\tconst onboardingStore = this.Store('onboarding')\n\t\tassert.isEqual(onboardingStore.getMode(), 'short')\n\n\t\tconst createSkillAction = this.Action('skill', 'create', {\n\t\t\tshouldAutoHandleDependencies: true,\n\t\t})\n\n\t\tconst createPromise = createSkillAction.execute({})\n\n\t\t// create skill confirmation\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('\\n')\n\n\t\tawait this.wait(100)\n\n\t\t// install skill\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('my new skill')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('a description')\n\n\t\tawait createPromise\n\n\t\t//should still be on (will turn off after test reporter boots)\n\t\tassert.isEqual(onboardingStore.getMode(), 'short')\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AAA4D;AAAA;AAAA;AAAA;AAAA;AAAA,IAEtDA,UAAU;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA,OAKf,sBAAoBC,SAAiB,EAAE;MACtC,OAAO,CAAC,CAAC,IAAI,CAACC,gBAAgB,CAACD,SAAS,CAAC;IAC1C;EAAC;IAAA;IAAA,OAND,uBAA4B;MAC3B,OAAO,IAAID,UAAU,CAACG,6BAAc,CAAC;IACtC;EAAC;EAAA;AAAA,EAHuBC,yBAAgB;AAAA,IAUpBC,sBAAsB,WACzC,IAAAC,eAAI,GAAE,UAKN,IAAAA,eAAI,GAAE,UAWN,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,sGAhBP;QAAA;UAAA;YAAA;cAAA;gBAECC,iBAAM,CAACC,UAAU,CAAC,IAAI,CAACC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAACC,OAAO,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC5D;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,0GAED;QAAA;UAAA;YAAA;cAAA;gBAEC,IAAI,CAACC,OAAO,GAAGX,UAAU,CAACY,WAAW,EAAE;gBAAA;gBAAA,OAEjC,IAAI,CAACC,GAAG,EAAE;cAAA;gBAEhBN,iBAAM,CAACO,MAAM,CACX,IAAI,CAACH,OAAO,CAAgBI,YAAY,CAAC,sBAAsB,CAAC,CACjE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,8HAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAECC,0BAAc,CAACC,WAAW,CAAC,MAAM,EAAE;kBAAEC,IAAI,EAAE;gBAAE,CAAC,CAAC;gBAEzCC,aAAa,GAAG,IAAI,CAACV,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC;gBACjDW,cAAc,GAAGD,aAAa,CAACT,OAAO,CAAC,CAAC,CAAC,CAAC,EAEhD;gBAAA;gBAAA,OACM,IAAI,CAACW,YAAY,EAAE;cAAA;gBAAA;gBAAA,OACnB,IAAI,CAACC,EAAE,CAACC,SAAS,CAAC,IAAI,CAAC;cAAA;gBAAA;gBAAA,OACvB,IAAI,CAACF,YAAY,EAAE;cAAA;gBAAA;gBAAA,OACnB,IAAI,CAACC,EAAE,CAACC,SAAS,CAAC,OAAO,CAAC;cAAA;gBAAA;gBAAA,OAC1B,IAAI,CAACF,YAAY,EAAE;cAAA;gBAAA;gBAAA,OACnB,IAAI,CAACC,EAAE,CAACC,SAAS,CAAC,IAAI,CAAC;cAAA;gBAAA;gBAAA,OAEvBH,cAAc;cAAA;gBAEdI,eAAe,GAAG,IAAI,CAACC,KAAK,CAAC,YAAY,CAAC;gBAChDlB,iBAAM,CAACmB,OAAO,CAACF,eAAe,CAACG,OAAO,EAAE,EAAE,OAAO,CAAC;gBAE5CC,iBAAiB,GAAG,IAAI,CAACnB,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE;kBACxDoB,4BAA4B,EAAE;gBAC/B,CAAC,CAAC;gBAEIC,aAAa,GAAGF,iBAAiB,CAAClB,OAAO,CAAC,CAAC,CAAC,CAAC,EAEnD;gBAAA;gBAAA,OACM,IAAI,CAACW,YAAY,EAAE;cAAA;gBAAA;gBAAA,OACnB,IAAI,CAACC,EAAE,CAACC,SAAS,CAAC,IAAI,CAAC;cAAA;gBAAA;gBAAA,OAEvB,IAAI,CAACQ,IAAI,CAAC,GAAG,CAAC;cAAA;gBAAA;gBAAA,OAGd,IAAI,CAACV,YAAY,EAAE;cAAA;gBAAA;gBAAA,OAEnB,IAAI,CAACC,EAAE,CAACC,SAAS,CAAC,cAAc,CAAC;cAAA;gBAAA;gBAAA,OAEjC,IAAI,CAACF,YAAY,EAAE;cAAA;gBAAA;gBAAA,OAEnB,IAAI,CAACC,EAAE,CAACC,SAAS,CAAC,eAAe,CAAC;cAAA;gBAAA;gBAAA,OAElCO,aAAa;cAAA;gBAEnB;gBACAvB,iBAAM,CAACmB,OAAO,CAACF,eAAe,CAACG,OAAO,EAAE,EAAE,OAAO,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAClD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA9DkDK,4BAAe;AAAA"}
@@ -62,7 +62,7 @@ var CreatingBehavioralTestsTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _t
62
62
  _context2.next = 2;
63
63
  return this.installTests('testsInNodeModule');
64
64
  case 2:
65
- testFeature = this.getFeatureInstaller().getFeature('test');
65
+ testFeature = this.featureInstaller.getFeature('test');
66
66
  _context2.next = 5;
67
67
  return testFeature.buildParentClassCandidates();
68
68
  case 5:
@@ -1 +1 @@
1
- {"version":3,"file":"CreatingATest.test.js","names":["CreatingBehavioralTestsTest","test","assert","isFunction","Action","execute","installTests","testFeature","getFeatureInstaller","getFeature","buildParentClassCandidates","candidates","doesInclude","label","name","testName","LintService","enableLinting","createTestAndGetFile","match","Service","build","doesThrowAsync","testType","createTestSubDir","installAndStartTestActionAndWaitForInput","promise","uiAssert","assertSelectRenderChoice","ui","sendInput","waitAndSelectSubClass","dirs","dir","dirName","results","expectedPath","resolvePath","isEqual","files","path","file","resolveTestDir","diskUtil","writeFile","assertSelectDidNotRenderChoice","reset","testFile","contents","readFile","newDir","createDir","testDirs","selectOptionBasedOnLabel","response","type","nameReadable","nameCamel","namePascal","waitForInput","selectedSubClass","createTest","testUtil","assertFileByNameInGeneratedFiles","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/CreatingATest.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport LintService from '../../../services/LintService'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\n\nexport default class CreatingBehavioralTestsTest extends AbstractTestTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('test', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async requiresInstallIfFeatureNotInstalled() {\n\t\tawait this.installTests('testsInNodeModule')\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tassert.doesInclude(candidates, {\n\t\t\tlabel: 'AbstractSpruceFixtureTest (requires install)',\n\t\t\tname: 'AbstractSpruceFixtureTest',\n\t\t})\n\t}\n\n\t@test(\n\t\t'can create behavioral test with AbstractSpruceFixtureTest',\n\t\t'AbstractSpruceFixtureTest'\n\t)\n\t@test(\n\t\t'can create behavioral test with AbstractStoreTest',\n\t\t'AbstractStoreTest (requires install)'\n\t)\n\tprotected static async canCreateBehavioralTest(testName: string) {\n\t\tLintService.enableLinting()\n\t\tconst match = await this.createTestAndGetFile(testName)\n\n\t\tassert.doesInclude(match, 'behavioral')\n\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\t@test('finds folders inside behavioral', 'behavioral')\n\t@test('finds folders inside implementation', 'implementation')\n\tprotected static async promptsToSelectFolderIfInsideTestDir(\n\t\ttestType: string\n\t) {\n\t\tawait this.installTests()\n\n\t\tthis.createTestSubDir(testType, 'dummy1')\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput(\n\t\t\ttestType\n\t\t)\n\n\t\tuiAssert.assertSelectRenderChoice(this.ui, '.', testType)\n\t\tuiAssert.assertSelectRenderChoice(this.ui, `dummy1`, `${testType}/dummy1`)\n\n\t\tawait this.ui.sendInput('.')\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tawait promise\n\t}\n\n\t@test()\n\tprotected static async listsManyDirsIfExistInsideTestDir() {\n\t\tawait this.installTests()\n\n\t\tconst dirs = ['dir1', 'dir2', 'dir3']\n\n\t\tfor (const dir of dirs) {\n\t\t\tthis.createTestSubDir('behavioral', dir)\n\t\t}\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput()\n\n\t\tfor (const dir of dirs) {\n\t\t\tuiAssert.assertSelectRenderChoice(this.ui, `${dir}`, `behavioral/${dir}`)\n\t\t}\n\n\t\tawait this.ui.sendInput('.')\n\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tawait promise\n\t}\n\n\t@test('can select sub dir 1', 'test')\n\t@test('can select sub dir 2', 'test-2')\n\tprotected static async selectingAnOptionRendersToSubDir(dirName: string) {\n\t\tawait this.installTests()\n\t\tthis.createTestSubDir('behavioral', dirName)\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput(\n\t\t\t'behavioral'\n\t\t)\n\n\t\tawait this.ui.sendInput(`${dirName}`)\n\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tconst results = await promise\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'src',\n\t\t\t'__tests__',\n\t\t\t'behavioral',\n\t\t\tdirName,\n\t\t\t'CanBookAppointment.test.ts'\n\t\t)\n\n\t\tassert.isEqual(expectedPath, results.files?.[0]?.path)\n\t}\n\n\t@test()\n\tprotected static async doesNotListFiles() {\n\t\tawait this.installTests()\n\t\tthis.createTestSubDir('behavioral', 'subdir')\n\n\t\tconst file = this.resolveTestDir('behavioral', 'test.ts')\n\t\tdiskUtil.writeFile(file, 'what the!?')\n\n\t\tawait this.installAndStartTestActionAndWaitForInput()\n\n\t\tuiAssert.assertSelectDidNotRenderChoice(\n\t\t\tthis.ui,\n\t\t\t'test',\n\t\t\t`behavioral/test/test.ts`\n\t\t)\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async allTestsComeFakedToStart() {\n\t\tconst testFile = await this.createTestAndGetFile()\n\t\tconst contents = diskUtil.readFile(testFile)\n\t\tassert.doesInclude(contents, 'fake.login()')\n\t}\n\n\tprivate static createTestSubDir(...testDirs: string[]) {\n\t\tconst newDir = this.resolveTestDir(...testDirs)\n\t\tdiskUtil.createDir(newDir)\n\t}\n\n\tprivate static resolveTestDir(...testDirs: string[]) {\n\t\treturn this.resolvePath('src', '__tests__', ...testDirs)\n\t}\n\n\tprivate static async createTest(testName = 'AbstractSpruceFixtureTest') {\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput()\n\n\t\tthis.selectOptionBasedOnLabel(testName)\n\n\t\tconst response = await promise\n\t\treturn response\n\t}\n\n\tprivate static async installAndStartTestActionAndWaitForInput(\n\t\ttestType = 'behavioral'\n\t) {\n\t\tawait this.installTests()\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: testType,\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t\tnamePascal: 'CanBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n\n\tprivate static async waitAndSelectSubClass(selectedSubClass?: string) {\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(selectedSubClass ?? '')\n\t}\n\n\tprivate static async createTestAndGetFile(testName?: string) {\n\t\tconst response = await this.createTest(testName)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresponse.files\n\t\t)\n\t\treturn match\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"CreatingATest.test.js","names":["CreatingBehavioralTestsTest","test","assert","isFunction","Action","execute","installTests","testFeature","featureInstaller","getFeature","buildParentClassCandidates","candidates","doesInclude","label","name","testName","LintService","enableLinting","createTestAndGetFile","match","Service","build","doesThrowAsync","testType","createTestSubDir","installAndStartTestActionAndWaitForInput","promise","uiAssert","assertSelectRenderChoice","ui","sendInput","waitAndSelectSubClass","dirs","dir","dirName","results","expectedPath","resolvePath","isEqual","files","path","file","resolveTestDir","diskUtil","writeFile","assertSelectDidNotRenderChoice","reset","testFile","contents","readFile","newDir","createDir","testDirs","selectOptionBasedOnLabel","response","type","nameReadable","nameCamel","namePascal","waitForInput","selectedSubClass","createTest","testUtil","assertFileByNameInGeneratedFiles","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/CreatingATest.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport LintService from '../../../services/LintService'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\n\nexport default class CreatingBehavioralTestsTest extends AbstractTestTest {\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('test', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async requiresInstallIfFeatureNotInstalled() {\n\t\tawait this.installTests('testsInNodeModule')\n\n\t\tconst testFeature = this.featureInstaller.getFeature('test')\n\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\tassert.doesInclude(candidates, {\n\t\t\tlabel: 'AbstractSpruceFixtureTest (requires install)',\n\t\t\tname: 'AbstractSpruceFixtureTest',\n\t\t})\n\t}\n\n\t@test(\n\t\t'can create behavioral test with AbstractSpruceFixtureTest',\n\t\t'AbstractSpruceFixtureTest'\n\t)\n\t@test(\n\t\t'can create behavioral test with AbstractStoreTest',\n\t\t'AbstractStoreTest (requires install)'\n\t)\n\tprotected static async canCreateBehavioralTest(testName: string) {\n\t\tLintService.enableLinting()\n\t\tconst match = await this.createTestAndGetFile(testName)\n\n\t\tassert.doesInclude(match, 'behavioral')\n\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\t@test('finds folders inside behavioral', 'behavioral')\n\t@test('finds folders inside implementation', 'implementation')\n\tprotected static async promptsToSelectFolderIfInsideTestDir(\n\t\ttestType: string\n\t) {\n\t\tawait this.installTests()\n\n\t\tthis.createTestSubDir(testType, 'dummy1')\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput(\n\t\t\ttestType\n\t\t)\n\n\t\tuiAssert.assertSelectRenderChoice(this.ui, '.', testType)\n\t\tuiAssert.assertSelectRenderChoice(this.ui, `dummy1`, `${testType}/dummy1`)\n\n\t\tawait this.ui.sendInput('.')\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tawait promise\n\t}\n\n\t@test()\n\tprotected static async listsManyDirsIfExistInsideTestDir() {\n\t\tawait this.installTests()\n\n\t\tconst dirs = ['dir1', 'dir2', 'dir3']\n\n\t\tfor (const dir of dirs) {\n\t\t\tthis.createTestSubDir('behavioral', dir)\n\t\t}\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput()\n\n\t\tfor (const dir of dirs) {\n\t\t\tuiAssert.assertSelectRenderChoice(this.ui, `${dir}`, `behavioral/${dir}`)\n\t\t}\n\n\t\tawait this.ui.sendInput('.')\n\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tawait promise\n\t}\n\n\t@test('can select sub dir 1', 'test')\n\t@test('can select sub dir 2', 'test-2')\n\tprotected static async selectingAnOptionRendersToSubDir(dirName: string) {\n\t\tawait this.installTests()\n\t\tthis.createTestSubDir('behavioral', dirName)\n\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput(\n\t\t\t'behavioral'\n\t\t)\n\n\t\tawait this.ui.sendInput(`${dirName}`)\n\n\t\tawait this.waitAndSelectSubClass()\n\n\t\tconst results = await promise\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'src',\n\t\t\t'__tests__',\n\t\t\t'behavioral',\n\t\t\tdirName,\n\t\t\t'CanBookAppointment.test.ts'\n\t\t)\n\n\t\tassert.isEqual(expectedPath, results.files?.[0]?.path)\n\t}\n\n\t@test()\n\tprotected static async doesNotListFiles() {\n\t\tawait this.installTests()\n\t\tthis.createTestSubDir('behavioral', 'subdir')\n\n\t\tconst file = this.resolveTestDir('behavioral', 'test.ts')\n\t\tdiskUtil.writeFile(file, 'what the!?')\n\n\t\tawait this.installAndStartTestActionAndWaitForInput()\n\n\t\tuiAssert.assertSelectDidNotRenderChoice(\n\t\t\tthis.ui,\n\t\t\t'test',\n\t\t\t`behavioral/test/test.ts`\n\t\t)\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async allTestsComeFakedToStart() {\n\t\tconst testFile = await this.createTestAndGetFile()\n\t\tconst contents = diskUtil.readFile(testFile)\n\t\tassert.doesInclude(contents, 'fake.login()')\n\t}\n\n\tprivate static createTestSubDir(...testDirs: string[]) {\n\t\tconst newDir = this.resolveTestDir(...testDirs)\n\t\tdiskUtil.createDir(newDir)\n\t}\n\n\tprivate static resolveTestDir(...testDirs: string[]) {\n\t\treturn this.resolvePath('src', '__tests__', ...testDirs)\n\t}\n\n\tprivate static async createTest(testName = 'AbstractSpruceFixtureTest') {\n\t\tconst { promise } = await this.installAndStartTestActionAndWaitForInput()\n\n\t\tthis.selectOptionBasedOnLabel(testName)\n\n\t\tconst response = await promise\n\t\treturn response\n\t}\n\n\tprivate static async installAndStartTestActionAndWaitForInput(\n\t\ttestType = 'behavioral'\n\t) {\n\t\tawait this.installTests()\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: testType,\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t\tnamePascal: 'CanBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n\n\tprivate static async waitAndSelectSubClass(selectedSubClass?: string) {\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(selectedSubClass ?? '')\n\t}\n\n\tprivate static async createTestAndGetFile(testName?: string) {\n\t\tconst response = await this.createTest(testName)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresponse.files\n\t\t)\n\t\treturn match\n\t}\n}\n"],"mappings":"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"}
@@ -198,7 +198,7 @@ var SelectingAnAbstractTestClassTest = (_dec = (0, _testUtils.test)(), _dec2 = (
198
198
  _context6.next = 3;
199
199
  return this.installTests();
200
200
  case 3:
201
- testFeature = this.getFeatureInstaller().getFeature('test');
201
+ testFeature = this.featureInstaller.getFeature('test');
202
202
  _iterator = _createForOfIteratorHelper(featuresWithRegisteredTests);
203
203
  _context6.prev = 5;
204
204
  _loop = /*#__PURE__*/_regenerator["default"].mark(function _loop() {
@@ -209,7 +209,7 @@ var SelectingAnAbstractTestClassTest = (_dec = (0, _testUtils.test)(), _dec2 = (
209
209
  case 0:
210
210
  feat = _step.value;
211
211
  _context5.next = 3;
212
- return _this.getFeatureInstaller().install({
212
+ return _this.featureInstaller.install({
213
213
  features: [{
214
214
  //@ts-ignore
215
215
  code: feat.featureCode
@@ -299,7 +299,7 @@ var SelectingAnAbstractTestClassTest = (_dec = (0, _testUtils.test)(), _dec2 = (
299
299
  });
300
300
  _testUtils.assert.isTruthy(match);
301
301
  _context7.next = 13;
302
- return _this2.getFeatureInstaller().isInstalled(feat.featureCode);
302
+ return _this2.featureInstaller.isInstalled(feat.featureCode);
303
303
  case 13:
304
304
  isInstalled = _context7.sent;
305
305
  _testUtils.assert.isFalse(isInstalled);
@@ -310,7 +310,7 @@ var SelectingAnAbstractTestClassTest = (_dec = (0, _testUtils.test)(), _dec2 = (
310
310
  return promise;
311
311
  case 19:
312
312
  _context7.next = 21;
313
- return _this2.getFeatureInstaller().isInstalled(feat.featureCode);
313
+ return _this2.featureInstaller.isInstalled(feat.featureCode);
314
314
  case 21:
315
315
  isInstalled = _context7.sent;
316
316
  _testUtils.assert.isTrue(isInstalled);
@@ -1 +1 @@
1
- {"version":3,"file":"SelectingAnAbstractTestClass.test.js","names":["expectedAbstractTests","featuresWithRegisteredTests","featureCode","className","SelectingAnAbstractTestClassTest","test","installCopyTestFilesSelectLocalAbstractTest","promise","results","testUtil","assertFileByNameInGeneratedFiles","files","buildAndAssertTestFailsAsExpected","testDir","resolvePath","diskUtil","createDir","installAndCopyTestFiles","invokeCreateActionAndWaitForInput","ui","sendInput","waitForInput","selectOptionBasedOnLabel","installTests","cli","on","abstractClasses","name","label","executeCreateUntilAbstractClassSelection","choices","assert","doesInclude","isFalsy","errors","match","contents","readFile","commandFaker","fakeInstall","testFeature","getFeatureInstaller","getFeature","feat","install","features","code","buildParentClassCandidates","candidates","isTruthy","find","cwd","createRandomTempDir","c","includes","isInstalled","isFalse","value","isTrue","action","Action","actual","buildParentClassFromCandidate","path","isDefaultExport","isEqual","importPath","Service","build","doesThrowAsync","execute","expected","copyTestFiles","source","resolveTestPath","destination","copyDir","last","getLastInvocation","options","type","nameReadable","nameCamel","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts"],"sourcesContent":["import { SelectChoice } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport { FeatureCode } from '../../../features/features.types'\nimport CreateAction from '../../../features/test/actions/CreateAction'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nconst expectedAbstractTests = [\n\t'AbstractSpruceTest (default)',\n\t'AbstractStoreTest (requires install)',\n\t'AbstractViewControllerTest (requires install)',\n\t'AbstractSpruceFixtureTest',\n\t'AbstractTest',\n\t'AbstractTest2',\n\t'AbstractBananaTestDifferentThanFileName',\n]\n\nconst featuresWithRegisteredTests: {\n\tfeatureCode: FeatureCode\n\tclassName: string\n}[] = [\n\t{ featureCode: 'store', className: 'AbstractStoreTest' },\n\t{ featureCode: 'view', className: 'AbstractViewControllerTest' },\n]\n\nexport default class SelectingAnAbstractTestClassTest extends AbstractTestTest {\n\t@test()\n\tprotected static async asksForYouToSelectABaseClass() {\n\t\tconst { promise } = await this.installCopyTestFilesSelectLocalAbstractTest()\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractClassWhileSelectingSubDir() {\n\t\tconst testDir = this.resolvePath('src', '__tests__', 'behavioral', 'taco')\n\t\tdiskUtil.createDir(testDir)\n\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tawait this.ui.sendInput('taco')\n\n\t\tawait this.waitForInput()\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\tawait promise\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractTestBasedOnEventEmitter() {\n\t\tconst cli = await this.installTests()\n\t\tvoid cli.on('test.register-abstract-test-classes', async () => {\n\t\t\treturn {\n\t\t\t\tabstractClasses: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass',\n\t\t\t\t\t\tlabel: 'TestClass',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass2',\n\t\t\t\t\t\tlabel: 'TestClass2',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass',\n\t\t})\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass2',\n\t\t})\n\n\t\tthis.selectOptionBasedOnLabel('TestClass2')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { TestClass2 } from '@sprucelabs/another-lib'\"\n\t\t)\n\n\t\tassert.doesInclude(contents, 'extends TestClass2')\n\t}\n\n\t@test()\n\tprotected static async installingAFeatureRemovesLabelFromName() {\n\t\tthis.commandFaker.fakeInstall()\n\n\t\tawait this.installTests()\n\n\t\tconst testFeature = this.getFeatureInstaller().getFeature('test')\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tawait this.getFeatureInstaller().install({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\tcode: feat.featureCode,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\t\tassert.isTruthy(\n\t\t\t\tcandidates.find(({ name }) => {\n\t\t\t\t\treturn name === feat.className\n\t\t\t\t})\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async selectingUninstalledTestInstallsTheFeature() {\n\t\tthis.commandFaker.fakeInstall()\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tthis.cwd = diskUtil.createRandomTempDir()\n\t\t\tawait this.installTests()\n\n\t\t\tconst { choices, promise } =\n\t\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\t\tconst match = choices.find((c: any) => c.label.includes(feat.className))\n\n\t\t\tassert.isTruthy(match)\n\n\t\t\tlet isInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isFalse(isInstalled)\n\n\t\t\tawait this.ui.sendInput(match?.value)\n\n\t\t\tawait promise\n\n\t\t\tisInstalled = await this.getFeatureInstaller().isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static relativePathsAddDotSlash() {\n\t\tconst action = this.Action('test', 'create') as CreateAction\n\n\t\t//@ts-ignore\n\t\tconst actual = action.buildParentClassFromCandidate(\n\t\t\t{\n\t\t\t\tlabel: 'test',\n\t\t\t\tname: 'AbstractTest',\n\t\t\t\tpath: this.resolvePath('test/AbstractTest'),\n\t\t\t\tisDefaultExport: false,\n\t\t\t},\n\t\t\tthis.resolvePath('test')\n\t\t)\n\n\t\tassert.isEqual(actual.importPath, './AbstractTest')\n\t}\n\n\tprivate static async buildAndAssertTestFailsAsExpected() {\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\tprivate static async installCopyTestFilesSelectLocalAbstractTest() {\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tfor (const expected of expectedAbstractTests) {\n\t\t\tassert.doesInclude(choices, { label: expected })\n\t\t}\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\treturn { promise }\n\t}\n\n\tprivate static async installAndCopyTestFiles() {\n\t\tawait this.installTests()\n\t\tawait this.copyTestFiles()\n\t}\n\n\tprivate static async copyTestFiles() {\n\t\tconst source = this.resolveTestPath('abstract_tests')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\t}\n\n\tprivate static async executeCreateUntilAbstractClassSelection() {\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\tconst { choices } = last.options.options ?? {}\n\n\t\treturn { promise, choices } as {\n\t\t\tpromise: Promise<any>\n\t\t\tchoices: SelectChoice[]\n\t\t}\n\t}\n\n\tprivate static async invokeCreateActionAndWaitForInput() {\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SelectingAnAbstractTestClass.test.js","names":["expectedAbstractTests","featuresWithRegisteredTests","featureCode","className","SelectingAnAbstractTestClassTest","test","installCopyTestFilesSelectLocalAbstractTest","promise","results","testUtil","assertFileByNameInGeneratedFiles","files","buildAndAssertTestFailsAsExpected","testDir","resolvePath","diskUtil","createDir","installAndCopyTestFiles","invokeCreateActionAndWaitForInput","ui","sendInput","waitForInput","selectOptionBasedOnLabel","installTests","cli","on","abstractClasses","name","label","executeCreateUntilAbstractClassSelection","choices","assert","doesInclude","isFalsy","errors","match","contents","readFile","commandFaker","fakeInstall","testFeature","featureInstaller","getFeature","feat","install","features","code","buildParentClassCandidates","candidates","isTruthy","find","cwd","createRandomTempDir","c","includes","isInstalled","isFalse","value","isTrue","action","Action","actual","buildParentClassFromCandidate","path","isDefaultExport","isEqual","importPath","Service","build","doesThrowAsync","execute","expected","copyTestFiles","source","resolveTestPath","destination","copyDir","last","getLastInvocation","options","type","nameReadable","nameCamel","AbstractTestTest"],"sources":["../../../../src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts"],"sourcesContent":["import { SelectChoice } from '@sprucelabs/schema'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport { FeatureCode } from '../../../features/features.types'\nimport CreateAction from '../../../features/test/actions/CreateAction'\nimport AbstractTestTest from '../../../tests/AbstractTestTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nconst expectedAbstractTests = [\n\t'AbstractSpruceTest (default)',\n\t'AbstractStoreTest (requires install)',\n\t'AbstractViewControllerTest (requires install)',\n\t'AbstractSpruceFixtureTest',\n\t'AbstractTest',\n\t'AbstractTest2',\n\t'AbstractBananaTestDifferentThanFileName',\n]\n\nconst featuresWithRegisteredTests: {\n\tfeatureCode: FeatureCode\n\tclassName: string\n}[] = [\n\t{ featureCode: 'store', className: 'AbstractStoreTest' },\n\t{ featureCode: 'view', className: 'AbstractViewControllerTest' },\n]\n\nexport default class SelectingAnAbstractTestClassTest extends AbstractTestTest {\n\t@test()\n\tprotected static async asksForYouToSelectABaseClass() {\n\t\tconst { promise } = await this.installCopyTestFilesSelectLocalAbstractTest()\n\n\t\tconst results = await promise\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractClassWhileSelectingSubDir() {\n\t\tconst testDir = this.resolvePath('src', '__tests__', 'behavioral', 'taco')\n\t\tdiskUtil.createDir(testDir)\n\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tawait this.ui.sendInput('taco')\n\n\t\tawait this.waitForInput()\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\tawait promise\n\n\t\tawait this.buildAndAssertTestFailsAsExpected()\n\t}\n\n\t@test()\n\tprotected static async canSelectAbstractTestBasedOnEventEmitter() {\n\t\tconst cli = await this.installTests()\n\t\tvoid cli.on('test.register-abstract-test-classes', async () => {\n\t\t\treturn {\n\t\t\t\tabstractClasses: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass',\n\t\t\t\t\t\tlabel: 'TestClass',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'TestClass2',\n\t\t\t\t\t\tlabel: 'TestClass2',\n\t\t\t\t\t\timport: '@sprucelabs/another-lib',\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass',\n\t\t})\n\n\t\tassert.doesInclude(choices, {\n\t\t\tlabel: 'TestClass2',\n\t\t})\n\n\t\tthis.selectOptionBasedOnLabel('TestClass2')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'CanBookAppointment.test.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst contents = diskUtil.readFile(match)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t\"import { TestClass2 } from '@sprucelabs/another-lib'\"\n\t\t)\n\n\t\tassert.doesInclude(contents, 'extends TestClass2')\n\t}\n\n\t@test()\n\tprotected static async installingAFeatureRemovesLabelFromName() {\n\t\tthis.commandFaker.fakeInstall()\n\n\t\tawait this.installTests()\n\n\t\tconst testFeature = this.featureInstaller.getFeature('test')\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tawait this.featureInstaller.install({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\tcode: feat.featureCode,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\n\t\t\tconst candidates = await testFeature.buildParentClassCandidates()\n\n\t\t\tassert.isTruthy(\n\t\t\t\tcandidates.find(({ name }) => {\n\t\t\t\t\treturn name === feat.className\n\t\t\t\t})\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async selectingUninstalledTestInstallsTheFeature() {\n\t\tthis.commandFaker.fakeInstall()\n\n\t\tfor (const feat of featuresWithRegisteredTests) {\n\t\t\tthis.cwd = diskUtil.createRandomTempDir()\n\t\t\tawait this.installTests()\n\n\t\t\tconst { choices, promise } =\n\t\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\t\tconst match = choices.find((c: any) => c.label.includes(feat.className))\n\n\t\t\tassert.isTruthy(match)\n\n\t\t\tlet isInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isFalse(isInstalled)\n\n\t\t\tawait this.ui.sendInput(match?.value)\n\n\t\t\tawait promise\n\n\t\t\tisInstalled = await this.featureInstaller.isInstalled(\n\t\t\t\tfeat.featureCode as any\n\t\t\t)\n\t\t\tassert.isTrue(isInstalled)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static relativePathsAddDotSlash() {\n\t\tconst action = this.Action('test', 'create') as CreateAction\n\n\t\t//@ts-ignore\n\t\tconst actual = action.buildParentClassFromCandidate(\n\t\t\t{\n\t\t\t\tlabel: 'test',\n\t\t\t\tname: 'AbstractTest',\n\t\t\t\tpath: this.resolvePath('test/AbstractTest'),\n\t\t\t\tisDefaultExport: false,\n\t\t\t},\n\t\t\tthis.resolvePath('test')\n\t\t)\n\n\t\tassert.isEqual(actual.importPath, './AbstractTest')\n\t}\n\n\tprivate static async buildAndAssertTestFailsAsExpected() {\n\t\tawait this.Service('build').build()\n\n\t\tawait assert.doesThrowAsync(\n\t\t\t() => this.Service('command').execute('yarn test'),\n\t\t\t/false.*?does not equal.*?true/gis\n\t\t)\n\t}\n\n\tprivate static async installCopyTestFilesSelectLocalAbstractTest() {\n\t\tawait this.installAndCopyTestFiles()\n\n\t\tconst { choices, promise } =\n\t\t\tawait this.executeCreateUntilAbstractClassSelection()\n\n\t\tfor (const expected of expectedAbstractTests) {\n\t\t\tassert.doesInclude(choices, { label: expected })\n\t\t}\n\n\t\tthis.selectOptionBasedOnLabel('AbstractBananaTestDifferentThanFileName')\n\n\t\treturn { promise }\n\t}\n\n\tprivate static async installAndCopyTestFiles() {\n\t\tawait this.installTests()\n\t\tawait this.copyTestFiles()\n\t}\n\n\tprivate static async copyTestFiles() {\n\t\tconst source = this.resolveTestPath('abstract_tests')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\t}\n\n\tprivate static async executeCreateUntilAbstractClassSelection() {\n\t\tconst { promise } = await this.invokeCreateActionAndWaitForInput()\n\n\t\tconst last = this.ui.getLastInvocation()\n\t\tconst { choices } = last.options.options ?? {}\n\n\t\treturn { promise, choices } as {\n\t\t\tpromise: Promise<any>\n\t\t\tchoices: SelectChoice[]\n\t\t}\n\t}\n\n\tprivate static async invokeCreateActionAndWaitForInput() {\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: 'Can book appointment',\n\t\t\tnameCamel: 'canBookAppointment',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\treturn { promise }\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;AACA;AACA;AAGA;AACA;AAA4D;AAAA;AAAA;AAAA;AAAA;AAAA;AAE5D,IAAMA,qBAAqB,GAAG,CAC7B,8BAA8B,EAC9B,sCAAsC,EACtC,+CAA+C,EAC/C,2BAA2B,EAC3B,cAAc,EACd,eAAe,EACf,yCAAyC,CACzC;AAED,IAAMC,2BAGH,GAAG,CACL;EAAEC,WAAW,EAAE,OAAO;EAAEC,SAAS,EAAE;AAAoB,CAAC,EACxD;EAAED,WAAW,EAAE,MAAM;EAAEC,SAAS,EAAE;AAA6B,CAAC,CAChE;AAAA,IAEoBC,gCAAgC,WACnD,IAAAC,eAAI,GAAE,UAcN,IAAAA,eAAI,GAAE,UAoBN,IAAAA,eAAI,GAAE,UAoDN,IAAAA,eAAI,GAAE,UA4BN,IAAAA,eAAI,GAAE,UA+BN,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,kHAjJP;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAE2B,IAAI,CAACC,2CAA2C,EAAE;cAAA;gBAAA;gBAApEC,OAAO,yBAAPA,OAAO;gBAAA;gBAAA,OAEOA,OAAO;cAAA;gBAAvBC,OAAO;gBAEbC,gBAAQ,CAACC,gCAAgC,CACxC,4BAA4B,EAC5BF,OAAO,CAACG,KAAK,CACb;gBAAA;gBAAA,OAEK,IAAI,CAACC,iCAAiC,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC9C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,gIAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEOC,OAAO,GAAG,IAAI,CAACC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,CAAC;gBAC1EC,0BAAQ,CAACC,SAAS,CAACH,OAAO,CAAC;gBAAA;gBAAA,OAErB,IAAI,CAACI,uBAAuB,EAAE;cAAA;gBAAA;gBAAA,OAEV,IAAI,CAACC,iCAAiC,EAAE;cAAA;gBAAA;gBAA1DX,OAAO,yBAAPA,OAAO;gBAAA;gBAAA,OAET,IAAI,CAACY,EAAE,CAACC,SAAS,CAAC,MAAM,CAAC;cAAA;gBAAA;gBAAA,OAEzB,IAAI,CAACC,YAAY,EAAE;cAAA;gBAEzB,IAAI,CAACC,wBAAwB,CAAC,yCAAyC,CAAC;gBAAA;gBAAA,OAElEf,OAAO;cAAA;gBAAA;gBAAA,OAEP,IAAI,CAACK,iCAAiC,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC9C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,8HAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEmB,IAAI,CAACW,YAAY,EAAE;cAAA;gBAA/BC,GAAG;gBACT,KAAKA,GAAG,CAACC,EAAE,CAAC,qCAAqC,6FAAE;kBAAA;oBAAA;sBAAA;wBAAA;0BAAA,kCAC3C;4BACNC,eAAe,EAAE,CAChB;8BACCC,IAAI,EAAE,WAAW;8BACjBC,KAAK,EAAE,WAAW;8BAClB,UAAQ;4BACT,CAAC,EACD;8BACCD,IAAI,EAAE,YAAY;8BAClBC,KAAK,EAAE,YAAY;8BACnB,UAAQ;4BACT,CAAC;0BAEH,CAAC;wBAAA;wBAAA;0BAAA;sBAAA;oBAAA;kBAAA;gBAAA,CACD,GAAC;gBAAA;gBAAA,OAGK,IAAI,CAACC,wCAAwC,EAAE;cAAA;gBAAA;gBAD9CC,OAAO,yBAAPA,OAAO;gBAAEvB,OAAO,yBAAPA,OAAO;gBAGxBwB,iBAAM,CAACC,WAAW,CAACF,OAAO,EAAE;kBAC3BF,KAAK,EAAE;gBACR,CAAC,CAAC;gBAEFG,iBAAM,CAACC,WAAW,CAACF,OAAO,EAAE;kBAC3BF,KAAK,EAAE;gBACR,CAAC,CAAC;gBAEF,IAAI,CAACN,wBAAwB,CAAC,YAAY,CAAC;gBAAA;gBAAA,OAErBf,OAAO;cAAA;gBAAvBC,OAAO;gBAEbuB,iBAAM,CAACE,OAAO,CAACzB,OAAO,CAAC0B,MAAM,CAAC;gBAExBC,KAAK,GAAG1B,gBAAQ,CAACC,gCAAgC,CACtD,4BAA4B,EAC5BF,OAAO,CAACG,KAAK,CACb;gBAEKyB,QAAQ,GAAGrB,0BAAQ,CAACsB,QAAQ,CAACF,KAAK,CAAC;gBAEzCJ,iBAAM,CAACC,WAAW,CACjBI,QAAQ,EACR,sDAAsD,CACtD;gBAEDL,iBAAM,CAACC,WAAW,CAACI,QAAQ,EAAE,oBAAoB,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAClD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,4HAED;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEC,IAAI,CAACE,YAAY,CAACC,WAAW,EAAE;gBAAA;gBAAA,OAEzB,IAAI,CAAChB,YAAY,EAAE;cAAA;gBAEnBiB,WAAW,GAAG,IAAI,CAACC,gBAAgB,CAACC,UAAU,CAAC,MAAM,CAAC;gBAAA,uCAEzCzC,2BAA2B;gBAAA;gBAAA;kBAAA;kBAAA;oBAAA;sBAAA;wBAAA;0BAAnC0C,IAAI;0BAAA;0BAAA,OACR,KAAI,CAACF,gBAAgB,CAACG,OAAO,CAAC;4BACnCC,QAAQ,EAAE,CACT;8BACC;8BACAC,IAAI,EAAEH,IAAI,CAACzC;4BACZ,CAAC;0BAEH,CAAC,CAAC;wBAAA;0BAAA;0BAAA,OAEuBsC,WAAW,CAACO,0BAA0B,EAAE;wBAAA;0BAA3DC,UAAU;0BAEhBjB,iBAAM,CAACkB,QAAQ,CACdD,UAAU,CAACE,IAAI,CAAC,iBAAc;4BAAA,IAAXvB,IAAI,SAAJA,IAAI;4BACtB,OAAOA,IAAI,KAAKgB,IAAI,CAACxC,SAAS;0BAC/B,CAAC,CAAC,CACF;wBAAA;wBAAA;0BAAA;sBAAA;oBAAA;kBAAA;gBAAA;gBAAA;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAEF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,gIAED;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAEC,IAAI,CAACmC,YAAY,CAACC,WAAW,EAAE;gBAAA,wCAEZtC,2BAA2B;gBAAA;gBAAA;kBAAA;kBAAA;oBAAA;sBAAA;wBAAA;0BAAnC0C,IAAI;0BACd,MAAI,CAACQ,GAAG,GAAGpC,0BAAQ,CAACqC,mBAAmB,EAAE;0BAAA;0BAAA,OACnC,MAAI,CAAC7B,YAAY,EAAE;wBAAA;0BAAA;0BAAA,OAGlB,MAAI,CAACM,wCAAwC,EAAE;wBAAA;0BAAA;0BAD9CC,OAAO,yBAAPA,OAAO;0BAAEvB,OAAO,yBAAPA,OAAO;0BAGlB4B,KAAK,GAAGL,OAAO,CAACoB,IAAI,CAAC,UAACG,CAAM;4BAAA,OAAKA,CAAC,CAACzB,KAAK,CAAC0B,QAAQ,CAACX,IAAI,CAACxC,SAAS,CAAC;0BAAA,EAAC;0BAExE4B,iBAAM,CAACkB,QAAQ,CAACd,KAAK,CAAC;0BAAA;0BAAA,OAEE,MAAI,CAACM,gBAAgB,CAACc,WAAW,CACxDZ,IAAI,CAACzC,WAAW,CAChB;wBAAA;0BAFGqD,WAAW;0BAGfxB,iBAAM,CAACyB,OAAO,CAACD,WAAW,CAAC;0BAAA;0BAAA,OAErB,MAAI,CAACpC,EAAE,CAACC,SAAS,CAACe,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEsB,KAAK,CAAC;wBAAA;0BAAA;0BAAA,OAE/BlD,OAAO;wBAAA;0BAAA;0BAAA,OAEO,MAAI,CAACkC,gBAAgB,CAACc,WAAW,CACpDZ,IAAI,CAACzC,WAAW,CAChB;wBAAA;0BAFDqD,WAAW;0BAGXxB,iBAAM,CAAC2B,MAAM,CAACH,WAAW,CAAC;wBAAA;wBAAA;0BAAA;sBAAA;oBAAA;kBAAA;gBAAA;gBAAA;cAAA;gBAAA;kBAAA;kBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;gBAAA;gBAAA;gBAAA;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAE3B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,oCAC4C;MAC3C,IAAMI,MAAM,GAAG,IAAI,CAACC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAiB;;MAE5D;MACA,IAAMC,MAAM,GAAGF,MAAM,CAACG,6BAA6B,CAClD;QACClC,KAAK,EAAE,MAAM;QACbD,IAAI,EAAE,cAAc;QACpBoC,IAAI,EAAE,IAAI,CAACjD,WAAW,CAAC,mBAAmB,CAAC;QAC3CkD,eAAe,EAAE;MAClB,CAAC,EACD,IAAI,CAAClD,WAAW,CAAC,MAAM,CAAC,CACxB;MAEDiB,iBAAM,CAACkC,OAAO,CAACJ,MAAM,CAACK,UAAU,EAAE,gBAAgB,CAAC;IACpD;EAAC;IAAA;IAAA;MAAA,uHAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,IAAI,CAACC,OAAO,CAAC,OAAO,CAAC,CAACC,KAAK,EAAE;cAAA;gBAAA;gBAAA,OAE7BrC,iBAAM,CAACsC,cAAc,CAC1B;kBAAA,OAAM,MAAI,CAACF,OAAO,CAAC,SAAS,CAAC,CAACG,OAAO,CAAC,WAAW,CAAC;gBAAA,GAClD,2CAAkC,CAClC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,iIAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,IAAI,CAACrD,uBAAuB,EAAE;cAAA;gBAAA;gBAAA,OAG7B,IAAI,CAACY,wCAAwC,EAAE;cAAA;gBAAA;gBAD9CC,OAAO,0BAAPA,OAAO;gBAAEvB,OAAO,0BAAPA,OAAO;gBAAA,wCAGDP,qBAAqB;gBAAA;kBAA5C,uDAA8C;oBAAnCuE,QAAQ;oBAClBxC,iBAAM,CAACC,WAAW,CAACF,OAAO,EAAE;sBAAEF,KAAK,EAAE2C;oBAAS,CAAC,CAAC;kBACjD;gBAAC;kBAAA;gBAAA;kBAAA;gBAAA;gBAED,IAAI,CAACjD,wBAAwB,CAAC,yCAAyC,CAAC;gBAAA,mCAEjE;kBAAEf,OAAO,EAAPA;gBAAQ,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAClB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,6GAED;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,IAAI,CAACgB,YAAY,EAAE;cAAA;gBAAA;gBAAA,OACnB,IAAI,CAACiD,aAAa,EAAE;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC1B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,mGAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOC,MAAM,GAAG,IAAI,CAACC,eAAe,CAAC,gBAAgB,CAAC;gBAC/CC,WAAW,GAAG,IAAI,CAAC7D,WAAW,CAAC,KAAK,CAAC;gBAAA;gBAAA,OAErCC,0BAAQ,CAAC6D,OAAO,CAACH,MAAM,EAAEE,WAAW,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC3C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,8HAED;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAC2B,IAAI,CAACzD,iCAAiC,EAAE;cAAA;gBAAA;gBAA1DX,OAAO,0BAAPA,OAAO;gBAETsE,IAAI,GAAG,IAAI,CAAC1D,EAAE,CAAC2D,iBAAiB,EAAE;gBAAA,iCACpBD,IAAI,CAACE,OAAO,CAACA,OAAO,yEAAI,CAAC,CAAC,EAAtCjD,OAAO,SAAPA,OAAO;gBAAA,mCAER;kBAAEvB,OAAO,EAAPA,OAAO;kBAAEuB,OAAO,EAAPA;gBAAQ,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAI3B;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,uHAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBACOvB,OAAO,GAAG,IAAI,CAACqD,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAACU,OAAO,CAAC;kBACrDU,IAAI,EAAE,YAAY;kBAClBC,YAAY,EAAE,sBAAsB;kBACpCC,SAAS,EAAE;gBACZ,CAAC,CAAC;gBAAA;gBAAA,OAEI,IAAI,CAAC7D,YAAY,EAAE;cAAA;gBAAA,mCAClB;kBAAEd,OAAO,EAAPA;gBAAQ,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAClB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;EAAA;AAAA,EA7N4D4E,6BAAgB;AAAA"}
@@ -73,7 +73,7 @@ var UpdateDependencies2Test = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testU
73
73
  path: 'dependencies.axios',
74
74
  value: '0.0.1'
75
75
  });
76
- skill = this.getFeatureInstaller().getFeature('skill');
76
+ skill = this.featureInstaller.getFeature('skill');
77
77
  skill.packageDependencies.push({
78
78
  name: 'axios',
79
79
  version: '0.21.3'
@@ -135,7 +135,7 @@ var UpdateDependencies2Test = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testU
135
135
  case 14:
136
136
  pkg = this.Service('pkg');
137
137
  _context3.next = 17;
138
- return this.getFeatureInstaller().getInstalledFeatures();
138
+ return this.featureInstaller.getInstalledFeatures();
139
139
  case 17:
140
140
  features = _context3.sent;
141
141
  _iterator = _createForOfIteratorHelper(features);
@@ -1 +1 @@
1
- {"version":3,"file":"UpdatingDependencies2.test.js","names":["UpdateDependencies2Test","test","action","Action","FeatureFixture","installCachedFeatures","Service","set","path","value","skill","getFeatureInstaller","getFeature","packageDependencies","push","name","version","passedArgs","CommandService","fakeCommand","code","callback","_","args","execute","assert","doesInclude","installRandomPackage","installRandomDevPackage","devName","blocked","blockRandomPackages","loadAllDependencies","allDeps","allDevDeps","pkg","getInstalledFeatures","features","feature","featureDependencies","deps","uniq","filter","d","isDev","map","n","stripLatest","devDeps","doesNotInclude","pkgJson","readPackage","Object","keys","dependencies","devDependencies","names","random","length","install","blockUpgrade","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport { random, uniq } from 'lodash'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { NpmPackage } from '../../../types/cli.types'\n\nexport default class UpdateDependencies2Test extends AbstractCliTest {\n\tprivate static action: UpdateDependenciesAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('node', 'updateDependencies')\n\t}\n\n\t@test()\n\tprotected static async locksVersionOfDependencyWhenDependencyAlreadyInPackageJson() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tthis.Service('pkg').set({ path: 'dependencies.axios', value: '0.0.1' })\n\n\t\tconst skill = this.getFeatureInstaller().getFeature('skill')\n\t\tskill.packageDependencies.push({\n\t\t\tname: 'axios',\n\t\t\tversion: '0.21.3',\n\t\t})\n\n\t\tconst passedArgs: string[] = []\n\n\t\tCommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tpassedArgs.push(...args)\n\t\t\t},\n\t\t})\n\n\t\tawait this.action.execute({})\n\n\t\tassert.doesInclude(passedArgs, 'axios@0.21.3')\n\t}\n\n\t@test()\n\tprotected static async runsAddForAllDependenciesInPkgJson() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst name = await this.installRandomPackage()\n\t\tconst devName = await this.installRandomDevPackage()\n\t\tconst blocked = this.blockRandomPackages()\n\n\t\tconst { allDeps, allDevDeps } = this.loadAllDependencies(name, devName)\n\n\t\tlet passedArgs: any[] = []\n\n\t\tCommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tpassedArgs.push(args)\n\t\t\t},\n\t\t})\n\n\t\tawait this.action.execute({})\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst features = await this.getFeatureInstaller().getInstalledFeatures()\n\n\t\tfor (const feature of features) {\n\t\t\tconst featureDependencies = feature.packageDependencies as NpmPackage[]\n\n\t\t\tconst deps = uniq(\n\t\t\t\t[\n\t\t\t\t\t...allDeps,\n\t\t\t\t\t...featureDependencies.filter((d) => !d.isDev).map((d) => d.name),\n\t\t\t\t]\n\t\t\t\t\t.map((n) => pkg.stripLatest(n))\n\t\t\t\t\t.filter((n) => n !== blocked)\n\t\t\t)\n\n\t\t\tconst devDeps = uniq(\n\t\t\t\t[\n\t\t\t\t\t...allDevDeps,\n\t\t\t\t\t...featureDependencies.filter((d) => d.isDev).map((d) => d.name),\n\t\t\t\t]\n\t\t\t\t\t.map((n) => pkg.stripLatest(n))\n\t\t\t\t\t.filter((n) => n !== blocked)\n\t\t\t)\n\n\t\t\tfor (const d of deps) {\n\t\t\t\tassert.doesInclude(passedArgs[0], d)\n\t\t\t}\n\n\t\t\tfor (const d of devDeps) {\n\t\t\t\tassert.doesInclude(passedArgs[1], d)\n\t\t\t}\n\t\t}\n\n\t\tassert.doesNotInclude(passedArgs[0], blocked)\n\t\tassert.doesNotInclude(passedArgs[1], blocked)\n\t}\n\n\tprivate static loadAllDependencies(name: string, devName: string) {\n\t\tconst pkg = this.Service('pkg')\n\t\tconst pkgJson = pkg.readPackage()\n\t\tconst allDeps = [...(Object.keys(pkgJson.dependencies) ?? []), name]\n\t\tconst allDevDeps = [\n\t\t\t...(Object.keys(pkgJson.devDependencies) ?? []),\n\t\t\tdevName,\n\t\t]\n\t\treturn { allDeps, allDevDeps }\n\t}\n\n\tprotected static async installRandomPackage() {\n\t\tconst names = ['moment', 'lodash']\n\t\tconst name = names[random(0, names.length - 1)]\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.install(name)\n\n\t\treturn name\n\t}\n\n\tprotected static async installRandomDevPackage() {\n\t\tconst names = ['chalk', 'axios']\n\t\tconst name = names[random(0, names.length - 1)]\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.install(name, { isDev: true })\n\n\t\treturn name\n\t}\n\n\tprotected static blockRandomPackages() {\n\t\tconst names = ['@sprucelabs/error', 'typescript']\n\t\tconst name = names[random(0, names.length - 1)]\n\n\t\tthis.action.blockUpgrade(name, this.Service('pkg'))\n\t\tthis.action.blockUpgrade('random', this.Service('pkg'))\n\n\t\treturn name\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UpdatingDependencies2.test.js","names":["UpdateDependencies2Test","test","action","Action","FeatureFixture","installCachedFeatures","Service","set","path","value","skill","featureInstaller","getFeature","packageDependencies","push","name","version","passedArgs","CommandService","fakeCommand","code","callback","_","args","execute","assert","doesInclude","installRandomPackage","installRandomDevPackage","devName","blocked","blockRandomPackages","loadAllDependencies","allDeps","allDevDeps","pkg","getInstalledFeatures","features","feature","featureDependencies","deps","uniq","filter","d","isDev","map","n","stripLatest","devDeps","doesNotInclude","pkgJson","readPackage","Object","keys","dependencies","devDependencies","names","random","length","install","blockUpgrade","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport { random, uniq } from 'lodash'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { NpmPackage } from '../../../types/cli.types'\n\nexport default class UpdateDependencies2Test extends AbstractCliTest {\n\tprivate static action: UpdateDependenciesAction\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.action = this.Action('node', 'updateDependencies')\n\t}\n\n\t@test()\n\tprotected static async locksVersionOfDependencyWhenDependencyAlreadyInPackageJson() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tthis.Service('pkg').set({ path: 'dependencies.axios', value: '0.0.1' })\n\n\t\tconst skill = this.featureInstaller.getFeature('skill')\n\t\tskill.packageDependencies.push({\n\t\t\tname: 'axios',\n\t\t\tversion: '0.21.3',\n\t\t})\n\n\t\tconst passedArgs: string[] = []\n\n\t\tCommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tpassedArgs.push(...args)\n\t\t\t},\n\t\t})\n\n\t\tawait this.action.execute({})\n\n\t\tassert.doesInclude(passedArgs, 'axios@0.21.3')\n\t}\n\n\t@test()\n\tprotected static async runsAddForAllDependenciesInPkgJson() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst name = await this.installRandomPackage()\n\t\tconst devName = await this.installRandomDevPackage()\n\t\tconst blocked = this.blockRandomPackages()\n\n\t\tconst { allDeps, allDevDeps } = this.loadAllDependencies(name, devName)\n\n\t\tlet passedArgs: any[] = []\n\n\t\tCommandService.fakeCommand(/(npm|yarn).*?(install|add)/, {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tpassedArgs.push(args)\n\t\t\t},\n\t\t})\n\n\t\tawait this.action.execute({})\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst features = await this.featureInstaller.getInstalledFeatures()\n\n\t\tfor (const feature of features) {\n\t\t\tconst featureDependencies = feature.packageDependencies as NpmPackage[]\n\n\t\t\tconst deps = uniq(\n\t\t\t\t[\n\t\t\t\t\t...allDeps,\n\t\t\t\t\t...featureDependencies.filter((d) => !d.isDev).map((d) => d.name),\n\t\t\t\t]\n\t\t\t\t\t.map((n) => pkg.stripLatest(n))\n\t\t\t\t\t.filter((n) => n !== blocked)\n\t\t\t)\n\n\t\t\tconst devDeps = uniq(\n\t\t\t\t[\n\t\t\t\t\t...allDevDeps,\n\t\t\t\t\t...featureDependencies.filter((d) => d.isDev).map((d) => d.name),\n\t\t\t\t]\n\t\t\t\t\t.map((n) => pkg.stripLatest(n))\n\t\t\t\t\t.filter((n) => n !== blocked)\n\t\t\t)\n\n\t\t\tfor (const d of deps) {\n\t\t\t\tassert.doesInclude(passedArgs[0], d)\n\t\t\t}\n\n\t\t\tfor (const d of devDeps) {\n\t\t\t\tassert.doesInclude(passedArgs[1], d)\n\t\t\t}\n\t\t}\n\n\t\tassert.doesNotInclude(passedArgs[0], blocked)\n\t\tassert.doesNotInclude(passedArgs[1], blocked)\n\t}\n\n\tprivate static loadAllDependencies(name: string, devName: string) {\n\t\tconst pkg = this.Service('pkg')\n\t\tconst pkgJson = pkg.readPackage()\n\t\tconst allDeps = [...(Object.keys(pkgJson.dependencies) ?? []), name]\n\t\tconst allDevDeps = [\n\t\t\t...(Object.keys(pkgJson.devDependencies) ?? []),\n\t\t\tdevName,\n\t\t]\n\t\treturn { allDeps, allDevDeps }\n\t}\n\n\tprotected static async installRandomPackage() {\n\t\tconst names = ['moment', 'lodash']\n\t\tconst name = names[random(0, names.length - 1)]\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.install(name)\n\n\t\treturn name\n\t}\n\n\tprotected static async installRandomDevPackage() {\n\t\tconst names = ['chalk', 'axios']\n\t\tconst name = names[random(0, names.length - 1)]\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.install(name, { isDev: true })\n\n\t\treturn name\n\t}\n\n\tprotected static blockRandomPackages() {\n\t\tconst names = ['@sprucelabs/error', 'typescript']\n\t\tconst name = names[random(0, names.length - 1)]\n\n\t\tthis.action.blockUpgrade(name, this.Service('pkg'))\n\t\tthis.action.blockUpgrade('random', this.Service('pkg'))\n\n\t\treturn name\n\t}\n}\n"],"mappings":"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"}
@@ -44,7 +44,7 @@ var UpgradingANodeModuleTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _test
44
44
  _context.next = 4;
45
45
  return this.FeatureFixture().installCachedFeatures('everythingInNode');
46
46
  case 4:
47
- featureInstaller = this.getFeatureInstaller();
47
+ featureInstaller = this.featureInstaller;
48
48
  featureInstaller.markAsPermanentlySkipped('skill');
49
49
  case 6:
50
50
  case "end":
@@ -77,7 +77,7 @@ var UpgradingANodeModuleTest = (_dec = (0, _testUtils.test)(), _dec2 = (0, _test
77
77
  code: 0
78
78
  });
79
79
  _context2.next = 5;
80
- return this.getEmitter().on('feature.did-execute', function () {
80
+ return this.emitter.on('feature.did-execute', function () {
81
81
  return {
82
82
  errors: undefined
83
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradingANodeModule.test.js","names":["UpgradingANodeModuleTest","test","FeatureFixture","installCachedFeatures","featureInstaller","getFeatureInstaller","markAsPermanentlySkipped","CommandService","fakeCommand","code","getEmitter","on","errors","undefined","Action","execute","results","assert","isTruthy","shouldNotBeFound","isFalsy","search","doesExist","diskUtil","doesFileExist","resolvePath","isFalse","file","tsConfig","writeFile","promise","uiAssert","assertRendersConfirmWriteFile","ui","isEqual","readFile","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\n\nexport default class UpgradingANodeModuleTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('everythingInNode')\n\n\t\tconst featureInstaller = this.getFeatureInstaller()\n\t\tfeatureInstaller.markAsPermanentlySkipped('skill')\n\t}\n\n\t@test()\n\tprotected static async buildErrorsGetPassedThroughToResults() {\n\t\tCommandService.fakeCommand(/yarn (add|install)/gis, { code: 0 })\n\t\tCommandService.fakeCommand(/yarn clean.build/gis, { code: 1 })\n\t\tCommandService.fakeCommand(/yarn build.dev/gis, { code: 0 })\n\n\t\tawait this.getEmitter().on('feature.did-execute', () => {\n\t\t\treturn {\n\t\t\t\terrors: undefined,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t}\n\n\t@test()\n\tprotected static async upgradingWritesExpectedFiles() {\n\t\tconst shouldNotBeFound = ['src/.spruce/skill.ts', 'src/.spruce/features']\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tfor (const search of shouldNotBeFound) {\n\t\t\tconst doesExist = diskUtil.doesFileExist(this.resolvePath(search))\n\t\t\tassert.isFalse(doesExist, `Should not have found ${search}`)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async shouldReWriteNodeDirsAndSkipIndx() {\n\t\tfor (const file of ['tsconfig.json', 'src/index.ts']) {\n\t\t\tconst tsConfig = this.resolvePath(file)\n\t\t\tdiskUtil.writeFile(tsConfig, 'beenChanged')\n\t\t}\n\n\t\tCommandService.fakeCommand(/yarn/gi, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait uiAssert.assertRendersConfirmWriteFile(this.ui)\n\n\t\tassert.isEqual(\n\t\t\tdiskUtil.readFile(this.resolvePath('src/index.ts')),\n\t\t\t'beenChanged'\n\t\t)\n\n\t\tawait promise\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UpgradingANodeModule.test.js","names":["UpgradingANodeModuleTest","test","FeatureFixture","installCachedFeatures","featureInstaller","markAsPermanentlySkipped","CommandService","fakeCommand","code","emitter","on","errors","undefined","Action","execute","results","assert","isTruthy","shouldNotBeFound","isFalsy","search","doesExist","diskUtil","doesFileExist","resolvePath","isFalse","file","tsConfig","writeFile","promise","uiAssert","assertRendersConfirmWriteFile","ui","isEqual","readFile","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts"],"sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test-utils'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\n\nexport default class UpgradingANodeModuleTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\n\t\tawait this.FeatureFixture().installCachedFeatures('everythingInNode')\n\n\t\tconst featureInstaller = this.featureInstaller\n\t\tfeatureInstaller.markAsPermanentlySkipped('skill')\n\t}\n\n\t@test()\n\tprotected static async buildErrorsGetPassedThroughToResults() {\n\t\tCommandService.fakeCommand(/yarn (add|install)/gis, { code: 0 })\n\t\tCommandService.fakeCommand(/yarn clean.build/gis, { code: 1 })\n\t\tCommandService.fakeCommand(/yarn build.dev/gis, { code: 0 })\n\n\t\tawait this.emitter.on('feature.did-execute', () => {\n\t\t\treturn {\n\t\t\t\terrors: undefined,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t}\n\n\t@test()\n\tprotected static async upgradingWritesExpectedFiles() {\n\t\tconst shouldNotBeFound = ['src/.spruce/skill.ts', 'src/.spruce/features']\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tfor (const search of shouldNotBeFound) {\n\t\t\tconst doesExist = diskUtil.doesFileExist(this.resolvePath(search))\n\t\t\tassert.isFalse(doesExist, `Should not have found ${search}`)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async shouldReWriteNodeDirsAndSkipIndx() {\n\t\tfor (const file of ['tsconfig.json', 'src/index.ts']) {\n\t\t\tconst tsConfig = this.resolvePath(file)\n\t\t\tdiskUtil.writeFile(tsConfig, 'beenChanged')\n\t\t}\n\n\t\tCommandService.fakeCommand(/yarn/gi, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait uiAssert.assertRendersConfirmWriteFile(this.ui)\n\n\t\tassert.isEqual(\n\t\t\tdiskUtil.readFile(this.resolvePath('src/index.ts')),\n\t\t\t'beenChanged'\n\t\t)\n\n\t\tawait promise\n\t}\n}\n"],"mappings":"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"}
@@ -119,7 +119,7 @@ var UpgradingASkill5Test = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtil
119
119
  description: 'this is so great!'
120
120
  });
121
121
  case 6:
122
- emitter = this.getEmitter();
122
+ emitter = this.emitter;
123
123
  wasHit = false;
124
124
  _context3.next = 10;
125
125
  return emitter.on('feature.will-execute', function (payload) {
@@ -264,7 +264,7 @@ var UpgradingASkill5Test = (_dec = (0, _testUtils.test)(), _dec2 = (0, _testUtil
264
264
  settings.setListenerCache({
265
265
  shouldBeDeleted: true
266
266
  });
267
- emitter = this.getEmitter();
267
+ emitter = this.emitter;
268
268
  void emitter.on('feature.will-execute', function () {
269
269
  throw new Error('Stop!');
270
270
  });
@@ -1 +1 @@
1
- {"version":3,"file":"UpgradingASkill5.test.js","names":["UpgradingASkill5Test","test","installSetListenerCacheAndBlockExecute","assert","doesThrowAsync","Action","execute","value","Settings","getListenerCache","isFalsy","isEqualDeep","shouldBeDeleted","shouldCreateSchema","FeatureFixture","installCachedFeatures","CommandService","fakeCommand","RegExp","code","nameReadable","namePascal","nameCamel","description","emitter","getEmitter","wasHit","on","payload","featureCode","actionCode","isTrue","moveDependencyToProd","moveDependencyToDev","wasMovedBackToDev","wasMovedBackToProd","callback","_","args","indexOf","isFalse","name","pkg","Service","uninstall","install","isDev","settings","setListenerCache","Error","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingASkill5Test extends AbstractCliTest {\n\t@test()\n\tprotected static async upgradeResetsEventCache() {\n\t\tawait this.installSetListenerCacheAndBlockExecute()\n\n\t\tawait assert.doesThrowAsync(() =>\n\t\t\tthis.Action('node', 'upgrade').execute({})\n\t\t)\n\n\t\tconst value = this.Settings().getListenerCache()\n\t\tassert.isFalsy(value)\n\t}\n\n\t@test()\n\tprotected static async doesNotResetEventCacheWithOtherAction() {\n\t\tawait this.installSetListenerCacheAndBlockExecute()\n\n\t\tawait assert.doesThrowAsync(() => this.Action('schema', 'sync').execute({}))\n\n\t\tconst value = this.Settings().getListenerCache()\n\t\tassert.isEqualDeep(value, { shouldBeDeleted: true })\n\t}\n\n\t@test('syncs schemas when schemas installed and schemas folder exists', true)\n\t@test(\n\t\t'does not syncs schemas when schemas installed but schemas folder does not exist',\n\t\tfalse\n\t)\n\tprotected static async shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists(\n\t\tshouldCreateSchema: boolean\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\n\t\tCommandService.fakeCommand(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tif (shouldCreateSchema) {\n\t\t\tawait this.Action('schema', 'create').execute({\n\t\t\t\tnameReadable: 'Test schema!',\n\t\t\t\tnamePascal: 'AnotherTest',\n\t\t\t\tnameCamel: 'anotherTest',\n\t\t\t\tdescription: 'this is so great!',\n\t\t\t})\n\t\t}\n\n\t\tconst emitter = this.getEmitter()\n\n\t\tlet wasHit = false\n\n\t\tawait emitter.on('feature.will-execute', (payload) => {\n\t\t\tif (payload.featureCode === 'schema' && payload.actionCode === 'sync') {\n\t\t\t\twasHit = true\n\t\t\t}\n\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTrue(wasHit === shouldCreateSchema)\n\t}\n\n\t@test()\n\tprotected static async modulesMovedFromDevToProdDependenciesStayThere() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tawait this.moveDependencyToProd('@sprucelabs/resolve-path-aliases')\n\t\tawait this.moveDependencyToDev('@sprucelabs/error')\n\n\t\tlet wasMovedBackToDev = false\n\t\tlet wasMovedBackToProd = false\n\n\t\tCommandService.fakeCommand(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tif (\n\t\t\t\t\targs.indexOf('-D') > -1 &&\n\t\t\t\t\targs.indexOf('@sprucelabs/resolve-path-aliases') > -1\n\t\t\t\t) {\n\t\t\t\t\twasMovedBackToDev = true\n\t\t\t\t} else if (\n\t\t\t\t\targs.indexOf('-D') === -1 &&\n\t\t\t\t\targs.indexOf('@sprucelabs/error') > -1\n\t\t\t\t) {\n\t\t\t\t\twasMovedBackToProd = true\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalse(wasMovedBackToDev, 'dependency moved back to dev')\n\t\tassert.isFalse(wasMovedBackToProd, 'dependency moved back to prod')\n\t}\n\n\tprivate static async moveDependencyToDev(name: string) {\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.uninstall(name)\n\t\tawait pkg.install(name, { isDev: true })\n\t}\n\tprivate static async moveDependencyToProd(name: string) {\n\t\tconst pkg = this.Service('pkg')\n\n\t\tawait pkg.uninstall(name)\n\t\tawait pkg.install(name)\n\t}\n\n\tprivate static async installSetListenerCacheAndBlockExecute() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst settings = this.Settings()\n\t\tsettings.setListenerCache({ shouldBeDeleted: true })\n\n\t\tconst emitter = this.getEmitter()\n\t\tvoid emitter.on('feature.will-execute', () => {\n\t\t\tthrow new Error('Stop!')\n\t\t})\n\t}\n\n\tprivate static Settings() {\n\t\treturn this.Service('eventSettings')\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"UpgradingASkill5.test.js","names":["UpgradingASkill5Test","test","installSetListenerCacheAndBlockExecute","assert","doesThrowAsync","Action","execute","value","Settings","getListenerCache","isFalsy","isEqualDeep","shouldBeDeleted","shouldCreateSchema","FeatureFixture","installCachedFeatures","CommandService","fakeCommand","RegExp","code","nameReadable","namePascal","nameCamel","description","emitter","wasHit","on","payload","featureCode","actionCode","isTrue","moveDependencyToProd","moveDependencyToDev","wasMovedBackToDev","wasMovedBackToProd","callback","_","args","indexOf","isFalse","name","pkg","Service","uninstall","install","isDev","settings","setListenerCache","Error","AbstractCliTest"],"sources":["../../../../src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts"],"sourcesContent":["import { test, assert } from '@sprucelabs/test-utils'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingASkill5Test extends AbstractCliTest {\n\t@test()\n\tprotected static async upgradeResetsEventCache() {\n\t\tawait this.installSetListenerCacheAndBlockExecute()\n\n\t\tawait assert.doesThrowAsync(() =>\n\t\t\tthis.Action('node', 'upgrade').execute({})\n\t\t)\n\n\t\tconst value = this.Settings().getListenerCache()\n\t\tassert.isFalsy(value)\n\t}\n\n\t@test()\n\tprotected static async doesNotResetEventCacheWithOtherAction() {\n\t\tawait this.installSetListenerCacheAndBlockExecute()\n\n\t\tawait assert.doesThrowAsync(() => this.Action('schema', 'sync').execute({}))\n\n\t\tconst value = this.Settings().getListenerCache()\n\t\tassert.isEqualDeep(value, { shouldBeDeleted: true })\n\t}\n\n\t@test('syncs schemas when schemas installed and schemas folder exists', true)\n\t@test(\n\t\t'does not syncs schemas when schemas installed but schemas folder does not exist',\n\t\tfalse\n\t)\n\tprotected static async shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists(\n\t\tshouldCreateSchema: boolean\n\t) {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\n\t\tCommandService.fakeCommand(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tif (shouldCreateSchema) {\n\t\t\tawait this.Action('schema', 'create').execute({\n\t\t\t\tnameReadable: 'Test schema!',\n\t\t\t\tnamePascal: 'AnotherTest',\n\t\t\t\tnameCamel: 'anotherTest',\n\t\t\t\tdescription: 'this is so great!',\n\t\t\t})\n\t\t}\n\n\t\tconst emitter = this.emitter\n\n\t\tlet wasHit = false\n\n\t\tawait emitter.on('feature.will-execute', (payload) => {\n\t\t\tif (payload.featureCode === 'schema' && payload.actionCode === 'sync') {\n\t\t\t\twasHit = true\n\t\t\t}\n\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTrue(wasHit === shouldCreateSchema)\n\t}\n\n\t@test()\n\tprotected static async modulesMovedFromDevToProdDependenciesStayThere() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tawait this.moveDependencyToProd('@sprucelabs/resolve-path-aliases')\n\t\tawait this.moveDependencyToDev('@sprucelabs/error')\n\n\t\tlet wasMovedBackToDev = false\n\t\tlet wasMovedBackToProd = false\n\n\t\tCommandService.fakeCommand(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t\tcallback: (_, args) => {\n\t\t\t\tif (\n\t\t\t\t\targs.indexOf('-D') > -1 &&\n\t\t\t\t\targs.indexOf('@sprucelabs/resolve-path-aliases') > -1\n\t\t\t\t) {\n\t\t\t\t\twasMovedBackToDev = true\n\t\t\t\t} else if (\n\t\t\t\t\targs.indexOf('-D') === -1 &&\n\t\t\t\t\targs.indexOf('@sprucelabs/error') > -1\n\t\t\t\t) {\n\t\t\t\t\twasMovedBackToProd = true\n\t\t\t\t}\n\t\t\t},\n\t\t})\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalse(wasMovedBackToDev, 'dependency moved back to dev')\n\t\tassert.isFalse(wasMovedBackToProd, 'dependency moved back to prod')\n\t}\n\n\tprivate static async moveDependencyToDev(name: string) {\n\t\tconst pkg = this.Service('pkg')\n\t\tawait pkg.uninstall(name)\n\t\tawait pkg.install(name, { isDev: true })\n\t}\n\tprivate static async moveDependencyToProd(name: string) {\n\t\tconst pkg = this.Service('pkg')\n\n\t\tawait pkg.uninstall(name)\n\t\tawait pkg.install(name)\n\t}\n\n\tprivate static async installSetListenerCacheAndBlockExecute() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst settings = this.Settings()\n\t\tsettings.setListenerCache({ shouldBeDeleted: true })\n\n\t\tconst emitter = this.emitter\n\t\tvoid emitter.on('feature.will-execute', () => {\n\t\t\tthrow new Error('Stop!')\n\t\t})\n\t}\n\n\tprivate static Settings() {\n\t\treturn this.Service('eventSettings')\n\t}\n}\n"],"mappings":"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"}