@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.
- package/CHANGELOG.md +12 -0
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js +1 -1
- package/build/__tests__/behavioral/RememberingUpgradeSelections.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +4 -4
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/WatchingSkillViews.test.js +3 -3
- package/build/__tests__/behavioral/WatchingSkillViews.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +2 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +118 -59
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.d.ts +17 -0
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js +137 -0
- package/build/__tests__/behavioral/events/EverythingInstalledInstaller.js.map +1 -0
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js +46 -45
- package/build/__tests__/behavioral/onboard/StartingOnboarding.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +1 -1
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +4 -4
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingANodeModule.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingASkill5.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js +2 -2
- package/build/__tests__/behavioral/upgrading/UpgradingWithListeners.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.d.ts +3 -3
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js +153 -156
- package/build/__tests__/behavioral/watchers/WatchingForChanges.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js +2 -2
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter2.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/FeatureInstaller.test.js +8 -4
- package/build/__tests__/implementation/FeatureInstaller.test.js.map +1 -1
- package/build/__tests__/implementation/GlobalEmitter.d.ts +1 -1
- package/build/__tests__/implementation/GlobalEmitter.js +9 -10
- package/build/__tests__/implementation/GlobalEmitter.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.d.ts +3 -1
- package/build/__tests__/implementation/SkillStore.test.js +67 -50
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js +1 -1
- package/build/__tests__/implementation/StoreFeature.test.js.map +1 -1
- package/build/cli.js +3 -3
- package/build/cli.js.map +1 -1
- package/build/features/AbstractAction.d.ts +2 -2
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.d.ts +22 -22
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionExecuter.d.ts +8 -8
- package/build/features/ActionExecuter.js.map +1 -1
- package/build/features/FeatureInstaller.d.ts +15 -2
- package/build/features/FeatureInstaller.js +36 -36
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/FeatureInstallerFactory.d.ts +12 -10
- package/build/features/FeatureInstallerFactory.js +2 -2
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/OverrideActionDecorator.js +4 -5
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/event/actions/ListenAction.js.map +1 -1
- package/build/features/event/actions/SetRemoteAction.d.ts +1 -0
- package/build/features/event/actions/SetRemoteAction.js +2 -1
- package/build/features/event/actions/SetRemoteAction.js.map +1 -1
- package/build/features/event/actions/SyncListenersAction.js.map +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/stores/SkillStore.d.ts +4 -1
- package/build/features/skill/stores/SkillStore.js +127 -100
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/watch/WatchFeature.js +1 -1
- package/build/features/watch/WatchFeature.js.map +1 -1
- package/build/interfaces/SpyInterface.d.ts +2 -0
- package/build/interfaces/SpyInterface.js +16 -4
- package/build/interfaces/SpyInterface.js.map +1 -1
- package/build/stores/AbstractStore.d.ts +9 -7
- package/build/stores/AbstractStore.js.map +1 -1
- package/build/stores/StoreFactory.d.ts +19 -13
- package/build/stores/StoreFactory.js +15 -13
- package/build/stores/StoreFactory.js.map +1 -1
- package/build/tests/AbstractCliTest.d.ts +9 -6
- package/build/tests/AbstractCliTest.js +53 -45
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/AbstractSchemaTest.js +18 -20
- package/build/tests/AbstractSchemaTest.js.map +1 -1
- package/build/utilities/action.utility.js +3 -1
- package/build/utilities/action.utility.js.map +1 -1
- package/node_modules/@typescript-eslint/parser/package.json +5 -5
- package/node_modules/@typescript-eslint/scope-manager/package.json +5 -5
- package/node_modules/@typescript-eslint/types/package.json +2 -2
- package/node_modules/@typescript-eslint/typescript-estree/package.json +5 -5
- package/node_modules/@typescript-eslint/visitor-keys/package.json +3 -3
- package/package.json +28 -86
- package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +1 -1
- package/src/__tests__/behavioral/RememberingUpgradeSelections.test.ts +1 -1
- package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +4 -4
- package/src/__tests__/behavioral/WatchingSkillViews.test.ts +3 -3
- package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +1 -1
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +41 -14
- package/src/__tests__/behavioral/events/EverythingInstalledInstaller.ts +46 -0
- package/src/__tests__/behavioral/onboard/StartingOnboarding.test.ts +10 -5
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +1 -1
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +4 -4
- package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingANodeModule.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingASkill5.test.ts +2 -2
- package/src/__tests__/behavioral/upgrading/UpgradingWithListeners.test.ts +2 -2
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +1 -1
- package/src/__tests__/behavioral/views/CreatingATheme.test.ts +1 -1
- package/src/__tests__/behavioral/watchers/WatchingForChanges.test.ts +35 -35
- package/src/__tests__/implementation/ActionExecuter.test.ts +2 -2
- package/src/__tests__/implementation/ActionExecuter2.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter4.test.ts +1 -1
- package/src/__tests__/implementation/FeatureInstaller.test.ts +8 -1
- package/src/__tests__/implementation/GlobalEmitter.ts +2 -4
- package/src/__tests__/implementation/SettingUpANodeModule.test.ts +1 -1
- package/src/__tests__/implementation/SkillStore.test.ts +23 -24
- package/src/__tests__/implementation/StoreFeature.test.ts +1 -1
- package/src/cli.ts +7 -3
- package/src/features/AbstractAction.ts +3 -3
- package/src/features/AbstractFeature.ts +26 -26
- package/src/features/ActionExecuter.ts +9 -9
- package/src/features/FeatureInstaller.ts +32 -12
- package/src/features/FeatureInstallerFactory.ts +17 -13
- package/src/features/OverrideActionDecorator.ts +2 -5
- package/src/features/event/actions/ListenAction.ts +1 -0
- package/src/features/event/actions/SetRemoteAction.ts +2 -1
- package/src/features/event/actions/SyncListenersAction.ts +0 -1
- package/src/features/node/NodeFeature.ts +3 -1
- package/src/features/skill/SkillFeature.ts +3 -3
- package/src/features/skill/stores/SkillStore.ts +18 -11
- package/src/features/watch/WatchFeature.ts +1 -1
- package/src/interfaces/SpyInterface.ts +10 -0
- package/src/stores/AbstractStore.ts +14 -8
- package/src/stores/StoreFactory.ts +56 -44
- package/src/tests/AbstractCliTest.ts +53 -45
- package/src/tests/AbstractSchemaTest.ts +1 -3
- 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
|
|
26
|
-
(0, _inherits2["default"])(
|
|
27
|
-
var _super = _createSuper(
|
|
28
|
-
function
|
|
29
|
-
(0, _classCallCheck2["default"])(this,
|
|
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"])(
|
|
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
|
|
41
|
+
return new SpyEmitter(_GlobalEmitter.globalContract);
|
|
41
42
|
}
|
|
42
43
|
}]);
|
|
43
|
-
return
|
|
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
|
-
|
|
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(
|
|
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 =
|
|
113
|
+
_context3.next = 5;
|
|
113
114
|
return this.waitForInput();
|
|
114
|
-
case
|
|
115
|
-
_context3.next =
|
|
115
|
+
case 5:
|
|
116
|
+
_context3.next = 7;
|
|
116
117
|
return this.ui.sendInput('\n');
|
|
117
|
-
case
|
|
118
|
-
_context3.next =
|
|
118
|
+
case 7:
|
|
119
|
+
_context3.next = 9;
|
|
119
120
|
return this.waitForInput();
|
|
120
|
-
case
|
|
121
|
-
_context3.next =
|
|
121
|
+
case 9:
|
|
122
|
+
_context3.next = 11;
|
|
122
123
|
return this.ui.sendInput('short');
|
|
123
|
-
case
|
|
124
|
-
_context3.next =
|
|
124
|
+
case 11:
|
|
125
|
+
_context3.next = 13;
|
|
125
126
|
return this.waitForInput();
|
|
126
|
-
case
|
|
127
|
-
_context3.next =
|
|
127
|
+
case 13:
|
|
128
|
+
_context3.next = 15;
|
|
128
129
|
return this.ui.sendInput('\n');
|
|
129
|
-
case
|
|
130
|
-
_context3.next =
|
|
130
|
+
case 15:
|
|
131
|
+
_context3.next = 17;
|
|
131
132
|
return onboardPromise;
|
|
132
|
-
case
|
|
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 =
|
|
140
|
+
_context3.next = 23;
|
|
140
141
|
return this.waitForInput();
|
|
141
|
-
case
|
|
142
|
-
_context3.next =
|
|
142
|
+
case 23:
|
|
143
|
+
_context3.next = 25;
|
|
143
144
|
return this.ui.sendInput('\n');
|
|
144
|
-
case
|
|
145
|
-
_context3.next =
|
|
145
|
+
case 25:
|
|
146
|
+
_context3.next = 27;
|
|
146
147
|
return this.wait(100);
|
|
147
|
-
case
|
|
148
|
-
_context3.next =
|
|
148
|
+
case 27:
|
|
149
|
+
_context3.next = 29;
|
|
149
150
|
return this.waitForInput();
|
|
150
|
-
case
|
|
151
|
-
_context3.next =
|
|
151
|
+
case 29:
|
|
152
|
+
_context3.next = 31;
|
|
152
153
|
return this.ui.sendInput('my new skill');
|
|
153
|
-
case
|
|
154
|
-
_context3.next =
|
|
154
|
+
case 31:
|
|
155
|
+
_context3.next = 33;
|
|
155
156
|
return this.waitForInput();
|
|
156
|
-
case
|
|
157
|
-
_context3.next =
|
|
157
|
+
case 33:
|
|
158
|
+
_context3.next = 35;
|
|
158
159
|
return this.ui.sendInput('a description');
|
|
159
|
-
case
|
|
160
|
-
_context3.next =
|
|
160
|
+
case 35:
|
|
161
|
+
_context3.next = 37;
|
|
161
162
|
return createPromise;
|
|
162
|
-
case
|
|
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
|
|
166
|
+
case 38:
|
|
166
167
|
case "end":
|
|
167
168
|
return _context3.stop();
|
|
168
169
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartingOnboarding.test.js","names":["
|
|
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":"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"}
|
|
@@ -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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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":"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"}
|
|
@@ -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.
|
|
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.
|
|
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","
|
|
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.
|
|
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.
|
|
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","
|
|
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.
|
|
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.
|
|
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","
|
|
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":";;;;;;;;;;;;;;;AAAA;AACA;AACA;AAA4D;AAAA;AAAA;AAAA,IAEvCA,oBAAoB,WACvC,IAAAC,eAAI,GAAE,UAYN,IAAAA,eAAI,GAAE,UAUN,IAAAA,eAAI,EAAC,gEAAgE,EAAE,IAAI,CAAC,UAC5E,IAAAA,eAAI,EACJ,iFAAiF,EACjF,KAAK,CACL,UAoCA,IAAAA,eAAI,GAAE;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;MAAA,6GA9DP;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACC,sCAAsC,EAAE;cAAA;gBAAA;gBAAA,OAE7CC,iBAAM,CAACC,cAAc,CAAC;kBAAA,OAC3B,KAAI,CAACC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAAA,EAC1C;cAAA;gBAEKC,KAAK,GAAG,IAAI,CAACC,QAAQ,EAAE,CAACC,gBAAgB,EAAE;gBAChDN,iBAAM,CAACO,OAAO,CAACH,KAAK,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACrB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,2HAED;QAAA;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACL,sCAAsC,EAAE;cAAA;gBAAA;gBAAA,OAE7CC,iBAAM,CAACC,cAAc,CAAC;kBAAA,OAAM,MAAI,CAACC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAAA,EAAC;cAAA;gBAEtEC,KAAK,GAAG,IAAI,CAACC,QAAQ,EAAE,CAACC,gBAAgB,EAAE;gBAChDN,iBAAM,CAACQ,WAAW,CAACJ,KAAK,EAAE;kBAAEK,eAAe,EAAE;gBAAK,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACpD;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,gJAED,kBAMCC,kBAA2B;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAErB,IAAI,CAACC,cAAc,EAAE,CAACC,qBAAqB,CAAC,SAAS,CAAC;cAAA;gBAE5DC,0BAAc,CAACC,WAAW,CAAC,IAAIC,MAAM,CAAC,QAAS,CAAC,EAAE;kBACjDC,IAAI,EAAE;gBACP,CAAC,CAAC;gBAAA,KAEEN,kBAAkB;kBAAA;kBAAA;gBAAA;gBAAA;gBAAA,OACf,IAAI,CAACR,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAACC,OAAO,CAAC;kBAC7Cc,YAAY,EAAE,cAAc;kBAC5BC,UAAU,EAAE,aAAa;kBACzBC,SAAS,EAAE,aAAa;kBACxBC,WAAW,EAAE;gBACd,CAAC,CAAC;cAAA;gBAGGC,OAAO,GAAG,IAAI,CAACA,OAAO;gBAExBC,MAAM,GAAG,KAAK;gBAAA;gBAAA,OAEZD,OAAO,CAACE,EAAE,CAAC,sBAAsB,EAAE,UAACC,OAAO,EAAK;kBACrD,IAAIA,OAAO,CAACC,WAAW,KAAK,QAAQ,IAAID,OAAO,CAACE,UAAU,KAAK,MAAM,EAAE;oBACtEJ,MAAM,GAAG,IAAI;kBACd;kBAEA,OAAO,CAAC,CAAC;gBACV,CAAC,CAAC;cAAA;gBAAA;gBAAA,OAEI,IAAI,CAACpB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAEhDH,iBAAM,CAAC2B,MAAM,CAACL,MAAM,KAAKZ,kBAAkB,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CAC5C;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,oIAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OAEO,IAAI,CAACC,cAAc,EAAE,CAACC,qBAAqB,CAAC,QAAQ,CAAC;cAAA;gBAAA;gBAAA,OAErD,IAAI,CAACgB,oBAAoB,CAAC,kCAAkC,CAAC;cAAA;gBAAA;gBAAA,OAC7D,IAAI,CAACC,mBAAmB,CAAC,mBAAmB,CAAC;cAAA;gBAE/CC,iBAAiB,GAAG,KAAK;gBACzBC,kBAAkB,GAAG,KAAK;gBAE9BlB,0BAAc,CAACC,WAAW,CAAC,IAAIC,MAAM,CAAC,QAAS,CAAC,EAAE;kBACjDC,IAAI,EAAE,CAAC;kBACPgB,QAAQ,EAAE,kBAACC,CAAC,EAAEC,IAAI,EAAK;oBACtB,IACCA,IAAI,CAACC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IACvBD,IAAI,CAACC,OAAO,CAAC,kCAAkC,CAAC,GAAG,CAAC,CAAC,EACpD;sBACDL,iBAAiB,GAAG,IAAI;oBACzB,CAAC,MAAM,IACNI,IAAI,CAACC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IACzBD,IAAI,CAACC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EACrC;sBACDJ,kBAAkB,GAAG,IAAI;oBAC1B;kBACD;gBACD,CAAC,CAAC;gBAAA;gBAAA,OAEI,IAAI,CAAC7B,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAACC,OAAO,CAAC,CAAC,CAAC,CAAC;cAAA;gBAEhDH,iBAAM,CAACoC,OAAO,CAACN,iBAAiB,EAAE,8BAA8B,CAAC;gBACjE9B,iBAAM,CAACoC,OAAO,CAACL,kBAAkB,EAAE,+BAA+B,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACnE;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,yGAED,kBAAyCM,IAAY;QAAA;QAAA;UAAA;YAAA;cAAA;gBAC9CC,GAAG,GAAG,IAAI,CAACC,OAAO,CAAC,KAAK,CAAC;gBAAA;gBAAA,OACzBD,GAAG,CAACE,SAAS,CAACH,IAAI,CAAC;cAAA;gBAAA;gBAAA,OACnBC,GAAG,CAACG,OAAO,CAACJ,IAAI,EAAE;kBAAEK,KAAK,EAAE;gBAAK,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACxC;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,0GACD,kBAA0CL,IAAY;QAAA;QAAA;UAAA;YAAA;cAAA;gBAC/CC,GAAG,GAAG,IAAI,CAACC,OAAO,CAAC,KAAK,CAAC;gBAAA;gBAAA,OAEzBD,GAAG,CAACE,SAAS,CAACH,IAAI,CAAC;cAAA;gBAAA;gBAAA,OACnBC,GAAG,CAACG,OAAO,CAACJ,IAAI,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACvB;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA;MAAA,4HAED;QAAA;QAAA;UAAA;YAAA;cAAA;gBAAA;gBAAA,OACO,IAAI,CAAC1B,cAAc,EAAE,CAACC,qBAAqB,CAAC,QAAQ,CAAC;cAAA;gBAErD+B,QAAQ,GAAG,IAAI,CAACtC,QAAQ,EAAE;gBAChCsC,QAAQ,CAACC,gBAAgB,CAAC;kBAAEnC,eAAe,EAAE;gBAAK,CAAC,CAAC;gBAE9CY,OAAO,GAAG,IAAI,CAACA,OAAO;gBAC5B,KAAKA,OAAO,CAACE,EAAE,CAAC,sBAAsB,EAAE,YAAM;kBAC7C,MAAM,IAAIsB,KAAK,CAAC,OAAO,CAAC;gBACzB,CAAC,CAAC;cAAA;cAAA;gBAAA;YAAA;UAAA;QAAA;MAAA,CACF;MAAA;QAAA;MAAA;MAAA;IAAA;EAAA;IAAA;IAAA,OAED,oBAA0B;MACzB,OAAO,IAAI,CAACN,OAAO,CAAC,eAAe,CAAC;IACrC;EAAC;EAAA;AAAA,EA1HgDO,4BAAe;AAAA"}
|