@sprucelabs/spruce-cli 14.29.30 → 14.30.2

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 (39) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/build/__tests__/behavioral/ListeningToCoreEvents.test.d.ts +6 -0
  3. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js +128 -0
  4. package/build/__tests__/behavioral/ListeningToCoreEvents.test.js.map +1 -0
  5. package/build/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.d.ts +10 -0
  6. package/build/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.js +298 -0
  7. package/build/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -0
  8. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js +1 -1
  9. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  10. package/build/features/event/actions/ListenAction.d.ts +4 -0
  11. package/build/features/event/actions/ListenAction.js +228 -127
  12. package/build/features/event/actions/ListenAction.js.map +1 -1
  13. package/build/features/event/writers/EventWriter.d.ts +1 -3
  14. package/build/features/event/writers/EventWriter.js +20 -14
  15. package/build/features/event/writers/EventWriter.js.map +1 -1
  16. package/build/features/sandbox/SandboxFeature.js +1 -1
  17. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  18. package/build/features/sandbox/actions/SetupAction.js +24 -12
  19. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  20. package/build/features/skill/SkillFeature.js +2 -1
  21. package/build/features/skill/SkillFeature.js.map +1 -1
  22. package/build/features/view/actions/CreateAction.js +1 -1
  23. package/build/features/view/actions/CreateAction.js.map +1 -1
  24. package/build/interfaces/SpyInterface.js +1 -1
  25. package/build/interfaces/SpyInterface.js.map +1 -1
  26. package/build/templateItemBuilders/EventTemplateItemBuilder.js +2 -1
  27. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  28. package/package.json +28 -28
  29. package/src/__tests__/behavioral/ListeningToCoreEvents.test.ts +26 -0
  30. package/src/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.ts +74 -0
  31. package/src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts +1 -1
  32. package/src/features/event/actions/ListenAction.ts +111 -58
  33. package/src/features/event/writers/EventWriter.ts +21 -35
  34. package/src/features/sandbox/SandboxFeature.ts +1 -1
  35. package/src/features/sandbox/actions/SetupAction.ts +6 -0
  36. package/src/features/skill/SkillFeature.ts +1 -1
  37. package/src/features/view/actions/CreateAction.ts +1 -0
  38. package/src/interfaces/SpyInterface.ts +3 -1
  39. package/src/templateItemBuilders/EventTemplateItemBuilder.ts +3 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,41 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [14.30.2](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.30.1...v14.30.2) (2022-01-15)
7
+
8
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
9
+
10
+
11
+
12
+
13
+
14
+ ## [14.30.1](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.30.0...v14.30.1) (2022-01-15)
15
+
16
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
17
+
18
+
19
+
20
+
21
+
22
+ # [14.30.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.31...v14.30.0) (2022-01-14)
23
+
24
+
25
+ ### Features
26
+
27
+ * calendar can now be selected when creating a view ([b47a375](https://github.com/sprucelabsai/spruce-cli-workspace/commit/b47a375))
28
+
29
+
30
+
31
+
32
+
33
+ ## [14.29.31](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.30...v14.29.31) (2022-01-13)
34
+
35
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
36
+
37
+
38
+
39
+
40
+
6
41
  ## [14.29.30](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.29...v14.29.30) (2022-01-12)
7
42
 
8
43
  **Note:** Version bump only for package @sprucelabs/spruce-cli
@@ -0,0 +1,6 @@
1
+ import AbstractSkillTest from '../../tests/AbstractSkillTest';
2
+ export default class ListeningToCoreEventsTest extends AbstractSkillTest {
3
+ protected static skillCacheKey: string;
4
+ protected static canListenToDidInstallWithoutErroring(): Promise<void>;
5
+ protected static canBootASkillWithACoreListener(): Promise<void>;
6
+ }
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
+
20
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
+
22
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
+
24
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
+
26
+ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
27
+
28
+ var _test = require("@sprucelabs/test");
29
+
30
+ var _AbstractSkillTest2 = _interopRequireDefault(require("../../tests/AbstractSkillTest"));
31
+
32
+ var _dec, _dec2, _class, _class2, _temp;
33
+
34
+ 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); }; }
35
+
36
+ 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; } }
37
+
38
+ var ListeningToCoreEventsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), (_class = (_temp = _class2 = /*#__PURE__*/function (_AbstractSkillTest) {
39
+ (0, _inherits2["default"])(ListeningToCoreEventsTest, _AbstractSkillTest);
40
+
41
+ var _super = _createSuper(ListeningToCoreEventsTest);
42
+
43
+ function ListeningToCoreEventsTest() {
44
+ (0, _classCallCheck2["default"])(this, ListeningToCoreEventsTest);
45
+ return _super.apply(this, arguments);
46
+ }
47
+
48
+ (0, _createClass2["default"])(ListeningToCoreEventsTest, null, [{
49
+ key: "canListenToDidInstallWithoutErroring",
50
+ value: function () {
51
+ var _canListenToDidInstallWithoutErroring = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
52
+ var _results$errors;
53
+
54
+ var results;
55
+ return _regenerator["default"].wrap(function _callee$(_context) {
56
+ while (1) {
57
+ switch (_context.prev = _context.next) {
58
+ case 0:
59
+ _context.next = 2;
60
+ return this.Action('event', 'listen').execute({
61
+ eventName: 'did-install',
62
+ namespace: 'mercury',
63
+ version: 'v2020_12_25'
64
+ });
65
+
66
+ case 2:
67
+ results = _context.sent;
68
+
69
+ _test.assert.isFalsy((_results$errors = results.errors) === null || _results$errors === void 0 ? void 0 : _results$errors[0]);
70
+
71
+ case 4:
72
+ case "end":
73
+ return _context.stop();
74
+ }
75
+ }
76
+ }, _callee, this);
77
+ }));
78
+
79
+ function canListenToDidInstallWithoutErroring() {
80
+ return _canListenToDidInstallWithoutErroring.apply(this, arguments);
81
+ }
82
+
83
+ return canListenToDidInstallWithoutErroring;
84
+ }()
85
+ }, {
86
+ key: "canBootASkillWithACoreListener",
87
+ value: function () {
88
+ var _canBootASkillWithACoreListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
89
+ var response;
90
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
91
+ while (1) {
92
+ switch (_context2.prev = _context2.next) {
93
+ case 0:
94
+ _context2.next = 2;
95
+ return this.getSkillFixture().registerCurrentSkill({
96
+ name: 'global listen test'
97
+ });
98
+
99
+ case 2:
100
+ _context2.next = 4;
101
+ return this.Action('skill', 'boot').execute({
102
+ local: true
103
+ });
104
+
105
+ case 4:
106
+ response = _context2.sent;
107
+
108
+ _test.assert.isFalsy(response.errors);
109
+
110
+ case 6:
111
+ case "end":
112
+ return _context2.stop();
113
+ }
114
+ }
115
+ }, _callee2, this);
116
+ }));
117
+
118
+ function canBootASkillWithACoreListener() {
119
+ return _canBootASkillWithACoreListener.apply(this, arguments);
120
+ }
121
+
122
+ return canBootASkillWithACoreListener;
123
+ }()
124
+ }]);
125
+ return ListeningToCoreEventsTest;
126
+ }(_AbstractSkillTest2["default"]), (0, _defineProperty2["default"])(_class2, "skillCacheKey", 'events'), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "canListenToDidInstallWithoutErroring", [_dec], Object.getOwnPropertyDescriptor(_class, "canListenToDidInstallWithoutErroring"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canBootASkillWithACoreListener", [_dec2], Object.getOwnPropertyDescriptor(_class, "canBootASkillWithACoreListener"), _class)), _class));
127
+ exports["default"] = ListeningToCoreEventsTest;
128
+ //# sourceMappingURL=ListeningToCoreEvents.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/ListeningToCoreEvents.test.ts"],"names":["ListeningToCoreEventsTest","Action","execute","eventName","namespace","version","results","assert","isFalsy","errors","getSkillFixture","registerCurrentSkill","name","local","response","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;;;IAEqBA,yB,WAGnB,iB,UAWA,iB;;;;;;;;;;;;;gIAXD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5DC,kBAAAA,SAAS,EAAE,aADiD;AAE5DC,kBAAAA,SAAS,EAAE,SAFiD;AAG5DC,kBAAAA,OAAO,EAAE;AAHmD,iBAAvC,CAFvB;;AAAA;AAEOC,gBAAAA,OAFP;;AAQCC,6BAAOC,OAAP,oBAAeF,OAAO,CAACG,MAAvB,oDAAe,gBAAiB,CAAjB,CAAf;;AARD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0HAWA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,eAAL,GAAuBC,oBAAvB,CAA4C;AACjDC,kBAAAA,IAAI,EAAE;AAD2C,iBAA5C,CAFP;;AAAA;AAAA;AAAA,uBAKwB,KAAKX,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC;AAAEW,kBAAAA,KAAK,EAAE;AAAT,iBAArC,CALxB;;AAAA;AAKOC,gBAAAA,QALP;;AAMCP,6BAAOC,OAAP,CAAeM,QAAQ,CAACL,MAAxB;;AAND;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAdsDM,8B,8DACrB,Q","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class ListeningToCoreEventsTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'events'\n\n\t@test()\n\tprotected static async canListenToDidInstallWithoutErroring() {\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\teventName: 'did-install',\n\t\t\tnamespace: 'mercury',\n\t\t\tversion: 'v2020_12_25',\n\t\t})\n\n\t\tassert.isFalsy(results.errors?.[0])\n\t}\n\n\t@test()\n\tprotected static async canBootASkillWithACoreListener() {\n\t\tawait this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'global listen test',\n\t\t})\n\t\tconst response = await this.Action('skill', 'boot').execute({ local: true })\n\t\tassert.isFalsy(response.errors)\n\t}\n}\n"],"file":"ListeningToCoreEvents.test.js"}
@@ -0,0 +1,10 @@
1
+ import AbstractCliTest from '../../tests/AbstractCliTest';
2
+ export default class UpgradingWithSandboxFeatureInstalledTest extends AbstractCliTest {
3
+ protected static beforeEach(): Promise<void>;
4
+ protected static doesNotAskForVersionWhenSettingUpSandboxWithCoreListener(): Promise<void>;
5
+ protected static usesTodaysVersionEvenWithCoreListene(): Promise<void>;
6
+ protected static overwritesExistingWillBoot(): Promise<void>;
7
+ private static setupAndGetListenerPath;
8
+ private static setup;
9
+ private static listenToDidInstallInthePast;
10
+ }
@@ -0,0 +1,298 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
26
+ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
27
+
28
+ var _path = _interopRequireDefault(require("path"));
29
+
30
+ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
31
+
32
+ var _test = require("@sprucelabs/test");
33
+
34
+ var _AbstractCliTest2 = _interopRequireDefault(require("../../tests/AbstractCliTest"));
35
+
36
+ var _test2 = _interopRequireDefault(require("../../tests/utilities/test.utility"));
37
+
38
+ var _dec, _dec2, _dec3, _class;
39
+
40
+ 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); }; }
41
+
42
+ 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; } }
43
+
44
+ var UpgradingWithSandboxFeatureInstalledTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
45
+ (0, _inherits2["default"])(UpgradingWithSandboxFeatureInstalledTest, _AbstractCliTest);
46
+
47
+ var _super = _createSuper(UpgradingWithSandboxFeatureInstalledTest);
48
+
49
+ function UpgradingWithSandboxFeatureInstalledTest() {
50
+ (0, _classCallCheck2["default"])(this, UpgradingWithSandboxFeatureInstalledTest);
51
+ return _super.apply(this, arguments);
52
+ }
53
+
54
+ (0, _createClass2["default"])(UpgradingWithSandboxFeatureInstalledTest, null, [{
55
+ key: "beforeEach",
56
+ value: function () {
57
+ var _beforeEach = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
58
+ return _regenerator["default"].wrap(function _callee$(_context) {
59
+ while (1) {
60
+ switch (_context.prev = _context.next) {
61
+ case 0:
62
+ _context.next = 2;
63
+ return (0, _get2["default"])((0, _getPrototypeOf2["default"])(UpgradingWithSandboxFeatureInstalledTest), "beforeEach", this).call(this);
64
+
65
+ case 2:
66
+ _context.next = 4;
67
+ return this.FeatureFixture().installCachedFeatures('sandbox');
68
+
69
+ case 4:
70
+ _context.next = 6;
71
+ return this.listenToDidInstallInthePast();
72
+
73
+ case 6:
74
+ case "end":
75
+ return _context.stop();
76
+ }
77
+ }
78
+ }, _callee, this);
79
+ }));
80
+
81
+ function beforeEach() {
82
+ return _beforeEach.apply(this, arguments);
83
+ }
84
+
85
+ return beforeEach;
86
+ }()
87
+ }, {
88
+ key: "doesNotAskForVersionWhenSettingUpSandboxWithCoreListener",
89
+ value: function () {
90
+ var _doesNotAskForVersionWhenSettingUpSandboxWithCoreListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
91
+ return _regenerator["default"].wrap(function _callee2$(_context2) {
92
+ while (1) {
93
+ switch (_context2.prev = _context2.next) {
94
+ case 0:
95
+ _context2.next = 2;
96
+ return this.setup();
97
+
98
+ case 2:
99
+ case "end":
100
+ return _context2.stop();
101
+ }
102
+ }
103
+ }, _callee2, this);
104
+ }));
105
+
106
+ function doesNotAskForVersionWhenSettingUpSandboxWithCoreListener() {
107
+ return _doesNotAskForVersionWhenSettingUpSandboxWithCoreListener.apply(this, arguments);
108
+ }
109
+
110
+ return doesNotAskForVersionWhenSettingUpSandboxWithCoreListener;
111
+ }()
112
+ }, {
113
+ key: "usesTodaysVersionEvenWithCoreListene",
114
+ value: function () {
115
+ var _usesTodaysVersionEvenWithCoreListene = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
116
+ var match, fileName, expected;
117
+ return _regenerator["default"].wrap(function _callee3$(_context3) {
118
+ while (1) {
119
+ switch (_context3.prev = _context3.next) {
120
+ case 0:
121
+ _context3.next = 2;
122
+ return this.setupAndGetListenerPath();
123
+
124
+ case 2:
125
+ match = _context3.sent;
126
+ fileName = _path["default"].basename(match);
127
+ expected = "will-boot.".concat(_spruceSkillUtils.versionUtil.generateVersion().dirValue, ".listener.ts");
128
+
129
+ _test.assert.isEqual(fileName, expected);
130
+
131
+ case 6:
132
+ case "end":
133
+ return _context3.stop();
134
+ }
135
+ }
136
+ }, _callee3, this);
137
+ }));
138
+
139
+ function usesTodaysVersionEvenWithCoreListene() {
140
+ return _usesTodaysVersionEvenWithCoreListene.apply(this, arguments);
141
+ }
142
+
143
+ return usesTodaysVersionEvenWithCoreListene;
144
+ }()
145
+ }, {
146
+ key: "overwritesExistingWillBoot",
147
+ value: function () {
148
+ var _overwritesExistingWillBoot = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
149
+ var expected, match, syncResults, secondMatch, name;
150
+ return _regenerator["default"].wrap(function _callee4$(_context4) {
151
+ while (1) {
152
+ switch (_context4.prev = _context4.next) {
153
+ case 0:
154
+ expected = "will-boot.v2010_01_10.listener.ts";
155
+ _context4.next = 3;
156
+ return this.setupAndGetListenerPath();
157
+
158
+ case 3:
159
+ match = _context4.sent;
160
+
161
+ _spruceSkillUtils.diskUtil.deleteFile(match);
162
+
163
+ _spruceSkillUtils.diskUtil.writeFile(this.resolvePath(_path["default"].dirname(match), expected), 'export default async () => {}');
164
+
165
+ _context4.next = 8;
166
+ return this.Action('event', 'syncListeners').execute({});
167
+
168
+ case 8:
169
+ syncResults = _context4.sent;
170
+
171
+ _test.assert.isFalsy(syncResults.errors);
172
+
173
+ _context4.next = 12;
174
+ return this.setupAndGetListenerPath();
175
+
176
+ case 12:
177
+ secondMatch = _context4.sent;
178
+ name = _path["default"].basename(secondMatch);
179
+
180
+ _test.assert.isEqual(name, expected);
181
+
182
+ case 15:
183
+ case "end":
184
+ return _context4.stop();
185
+ }
186
+ }
187
+ }, _callee4, this);
188
+ }));
189
+
190
+ function overwritesExistingWillBoot() {
191
+ return _overwritesExistingWillBoot.apply(this, arguments);
192
+ }
193
+
194
+ return overwritesExistingWillBoot;
195
+ }()
196
+ }, {
197
+ key: "setupAndGetListenerPath",
198
+ value: function () {
199
+ var _setupAndGetListenerPath = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5() {
200
+ var results, match;
201
+ return _regenerator["default"].wrap(function _callee5$(_context5) {
202
+ while (1) {
203
+ switch (_context5.prev = _context5.next) {
204
+ case 0:
205
+ _context5.next = 2;
206
+ return this.setup();
207
+
208
+ case 2:
209
+ results = _context5.sent;
210
+ match = _test2["default"].assertFileByNameInGeneratedFiles(/will-boot/gi, results.files);
211
+ return _context5.abrupt("return", match);
212
+
213
+ case 5:
214
+ case "end":
215
+ return _context5.stop();
216
+ }
217
+ }
218
+ }, _callee5, this);
219
+ }));
220
+
221
+ function setupAndGetListenerPath() {
222
+ return _setupAndGetListenerPath.apply(this, arguments);
223
+ }
224
+
225
+ return setupAndGetListenerPath;
226
+ }()
227
+ }, {
228
+ key: "setup",
229
+ value: function () {
230
+ var _setup = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
231
+ var results;
232
+ return _regenerator["default"].wrap(function _callee6$(_context6) {
233
+ while (1) {
234
+ switch (_context6.prev = _context6.next) {
235
+ case 0:
236
+ _context6.next = 2;
237
+ return this.Action('sandbox', 'setup').execute({});
238
+
239
+ case 2:
240
+ results = _context6.sent;
241
+
242
+ _test.assert.isFalsy(results.errors);
243
+
244
+ return _context6.abrupt("return", results);
245
+
246
+ case 5:
247
+ case "end":
248
+ return _context6.stop();
249
+ }
250
+ }
251
+ }, _callee6, this);
252
+ }));
253
+
254
+ function setup() {
255
+ return _setup.apply(this, arguments);
256
+ }
257
+
258
+ return setup;
259
+ }()
260
+ }, {
261
+ key: "listenToDidInstallInthePast",
262
+ value: function () {
263
+ var _listenToDidInstallInthePast = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
264
+ var results;
265
+ return _regenerator["default"].wrap(function _callee7$(_context7) {
266
+ while (1) {
267
+ switch (_context7.prev = _context7.next) {
268
+ case 0:
269
+ _context7.next = 2;
270
+ return this.Action('event', 'listen').execute({
271
+ namespace: 'mercury',
272
+ eventName: 'did-install::v2020_12_25'
273
+ });
274
+
275
+ case 2:
276
+ results = _context7.sent;
277
+
278
+ _test.assert.isFalsy(results.errors);
279
+
280
+ case 4:
281
+ case "end":
282
+ return _context7.stop();
283
+ }
284
+ }
285
+ }, _callee7, this);
286
+ }));
287
+
288
+ function listenToDidInstallInthePast() {
289
+ return _listenToDidInstallInthePast.apply(this, arguments);
290
+ }
291
+
292
+ return listenToDidInstallInthePast;
293
+ }()
294
+ }]);
295
+ return UpgradingWithSandboxFeatureInstalledTest;
296
+ }(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "doesNotAskForVersionWhenSettingUpSandboxWithCoreListener", [_dec], Object.getOwnPropertyDescriptor(_class, "doesNotAskForVersionWhenSettingUpSandboxWithCoreListener"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "usesTodaysVersionEvenWithCoreListene", [_dec2], Object.getOwnPropertyDescriptor(_class, "usesTodaysVersionEvenWithCoreListene"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "overwritesExistingWillBoot", [_dec3], Object.getOwnPropertyDescriptor(_class, "overwritesExistingWillBoot"), _class)), _class));
297
+ exports["default"] = UpgradingWithSandboxFeatureInstalledTest;
298
+ //# sourceMappingURL=UpgradingWithSandboxFeatureInstalled.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.ts"],"names":["UpgradingWithSandboxFeatureInstalledTest","FeatureFixture","installCachedFeatures","listenToDidInstallInthePast","setup","setupAndGetListenerPath","match","fileName","pathUtil","basename","expected","versionUtil","generateVersion","dirValue","assert","isEqual","diskUtil","deleteFile","writeFile","resolvePath","dirname","Action","execute","syncResults","isFalsy","errors","secondMatch","name","results","testUtil","assertFileByNameInGeneratedFiles","files","namespace","eventName","AbstractCliTest"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class UpgradingWithSandboxFeatureInstalledTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tawait this.FeatureFixture().installCachedFeatures('sandbox')\n\t\tawait this.listenToDidInstallInthePast()\n\t}\n\n\t@test()\n\tprotected static async doesNotAskForVersionWhenSettingUpSandboxWithCoreListener() {\n\t\tawait this.setup()\n\t}\n\n\t@test()\n\tprotected static async usesTodaysVersionEvenWithCoreListene() {\n\t\tconst match = await this.setupAndGetListenerPath()\n\n\t\tconst fileName = pathUtil.basename(match)\n\t\tconst expected = `will-boot.${\n\t\t\tversionUtil.generateVersion().dirValue\n\t\t}.listener.ts`\n\t\tassert.isEqual(fileName, expected)\n\t}\n\n\t@test()\n\tprotected static async overwritesExistingWillBoot() {\n\t\tconst expected = `will-boot.v2010_01_10.listener.ts`\n\n\t\tconst match = await this.setupAndGetListenerPath()\n\n\t\tdiskUtil.deleteFile(match)\n\t\tdiskUtil.writeFile(\n\t\t\tthis.resolvePath(pathUtil.dirname(match), expected),\n\t\t\t'export default async () => {}'\n\t\t)\n\n\t\tconst syncResults = await this.Action('event', 'syncListeners').execute({})\n\t\tassert.isFalsy(syncResults.errors)\n\n\t\tconst secondMatch = await this.setupAndGetListenerPath()\n\t\tconst name = pathUtil.basename(secondMatch)\n\n\t\tassert.isEqual(name, expected)\n\t}\n\n\tprivate static async setupAndGetListenerPath() {\n\t\tconst results = await this.setup()\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/will-boot/gi,\n\t\t\tresults.files\n\t\t)\n\t\treturn match\n\t}\n\n\tprivate static async setup() {\n\t\tconst results = await this.Action('sandbox', 'setup').execute({})\n\t\tassert.isFalsy(results.errors)\n\t\treturn results\n\t}\n\n\tprivate static async listenToDidInstallInthePast() {\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'mercury',\n\t\t\teventName: 'did-install::v2020_12_25',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t}\n}\n"],"file":"UpgradingWithSandboxFeatureInstalled.test.js"}
@@ -419,7 +419,7 @@ var CreatingANewSchemaBuilderTest = (_dec = (0, _test.test)(), _dec2 = (0, _test
419
419
  }
420
420
 
421
421
  return assertAnswersFirstTime;
422
- }() // should only have 2 options, none of which one "new version" since that was created in secondAnswers
422
+ }() // should only have 2 options, none of which are "new version" since that was created in secondAnswers
423
423
 
424
424
  }, {
425
425
  key: "assertAnswersSecondTime",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts"],"names":["CreatingANewSchemaBuilderTest","Cli","assert","doesThrowAsync","Action","execute","nameReadable","namePascal","nameCamel","description","err","errorAssertUtil","assertError","syncSchemasAndGetCreateAction","createSchema","response","isFalsy","errors","expectedDestination","versionUtil","resolveNewLatestPath","cwd","isEqual","files","path","cacheKey","syncSchemas","buildTestSchema","checker","Service","check","schemaTypesFile","builderMatch","testUtil","assertFileByNameInGeneratedFiles","schemaMatch","schemaContents","diskUtil","readFile","doesInclude","action","version","results","isTruthy","message","firstResponse","validateSchemaFiles","secondResponse","newVersion","generateVersion","assertAnswersFirstTime","assertAnswersSecondTime","createPromise","wait","last","ui","invocations","length","command","isLength","options","choices","isEqualDeep","value","dirValue","label","sendInput","term","createResults","expectedFileName","expectedVersion","expectedSchemaInterfaceName","isUndefined","schemaFile","fail","friendlyMessage","RegExp","AbstractSchemaTest"],"mappings":"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","sourcesContent":["import { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport {\n\tFeatureActionResponse,\n\tFeatureAction,\n} from '../../../features/features.types'\nimport SpyInterface from '../../../interfaces/SpyInterface'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingANewSchemaBuilderTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async failsWhenASkillIsNotInstalled() {\n\t\tawait this.Cli()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.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\terrorAssertUtil.assertError(err, 'FEATURE_NOT_INSTALLED')\n\t}\n\n\t@test()\n\tprotected static async canBuildFileWithoutCrashing() {\n\t\tconst createSchema = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await createSchema.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'Test',\n\t\t\tnameCamel: 'test',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isFalsy(response.errors)\n\n\t\tconst expectedDestination = versionUtil.resolveNewLatestPath(\n\t\t\tthis.cwd,\n\t\t\t'src',\n\t\t\t'schemas',\n\t\t\t'{{@latest}}',\n\t\t\t'test.builder.ts'\n\t\t)\n\n\t\tassert.isEqual(response.files?.[0].path, expectedDestination)\n\t}\n\n\tprivate static async syncSchemasAndGetCreateAction(cacheKey?: string) {\n\t\tawait this.syncSchemas(cacheKey)\n\t\tconst createSchema = this.Action('schema', 'create')\n\n\t\treturn createSchema\n\t}\n\n\t@test()\n\tprotected static async builderAndSchemaFilesValidate() {\n\t\tconst response = await this.buildTestSchema()\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tawait checker.check(response.files?.[0].path ?? '')\n\t\tawait checker.check(this.schemaTypesFile)\n\n\t\tconst builderMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.builder.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(builderMatch)\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.schema.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(schemaMatch)\n\n\t\tconst schemaContents = diskUtil.readFile(schemaMatch)\n\t\tassert.doesInclude(schemaContents, `namespace: 'TestingSchemas'`)\n\t}\n\n\t@test()\n\tprotected static async errorsWithBadVersion() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst results = await action.execute({\n\t\t\tnameReadable: 'Bad schema version!',\n\t\t\tnamePascal: 'BadSchemaVersion',\n\t\t\tnameCamel: 'badSchemaVersion',\n\t\t\tversion: 'v1',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].message, /must be in the form/i)\n\t}\n\n\t@test()\n\tprotected static async canBuild2SpecificVersions() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst firstResponse = await action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_10',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tfirstResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\n\t\tconst secondResponse = await action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'secondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t\tversion: 'v2020_01_11',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'secondSchema.schema.ts',\n\t\t\t'v2020_01_11',\n\t\t\t'SecondSchema'\n\t\t)\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionOnSecondSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst newVersion = versionUtil.generateVersion()\n\n\t\t// create old version first\n\t\tawait action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_01',\n\t\t})\n\n\t\tawait this.assertAnswersFirstTime(action, newVersion)\n\t\tawait this.assertAnswersSecondTime(action, newVersion)\n\t}\n\n\t// should ask if we want to use the old version we created above or a New Version\n\tprivate static async assertAnswersFirstTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'SecondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst last = this.ui.invocations[this.ui.invocations.length - 1]\n\n\t\tassert.isEqual(last?.command, 'prompt')\n\t\tassert.isLength(last?.options?.options?.choices, 2)\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: 'New Version',\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\tawait this.ui.sendInput(newVersion.dirValue)\n\t\tawait createPromise\n\t}\n\n\t// should only have 2 options, none of which one \"new version\" since that was created in secondAnswers\n\tprivate static async assertAnswersSecondTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Third schema',\n\t\t\tnamePascal: 'ThirdSchema',\n\t\t\tnameCamel: 'thirdSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst term = this.ui as SpyInterface\n\t\tconst last = term.invocations[term.invocations.length - 1]\n\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: newVersion.dirValue,\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.ui.sendInput(newVersion.dirValue)\n\n\t\tconst createResults = await createPromise\n\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'secondSchema.schema.ts',\n\t\t\tcreateResults.files\n\t\t)\n\n\t\tassert.doesInclude(schemaMatch, newVersion.dirValue)\n\t}\n\n\tprivate static validateSchemaFiles(\n\t\tresponse: FeatureActionResponse,\n\t\texpectedFileName: string,\n\t\texpectedVersion: string,\n\t\texpectedSchemaInterfaceName: string\n\t) {\n\t\tassert.isUndefined(response.errors)\n\n\t\tlet schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\texpectedFileName,\n\t\t\tresponse.files\n\t\t)\n\n\t\tconst errors = response.errors ?? []\n\t\tif (errors.length > 0) {\n\t\t\tassert.fail(errors[0].friendlyMessage())\n\t\t}\n\n\t\tassert.doesInclude(schemaFile, expectedVersion)\n\t\tconst schemaContents = diskUtil.readFile(schemaFile)\n\n\t\tassert.doesInclude(schemaContents, `version: '${expectedVersion}'`)\n\n\t\tassert.doesInclude(\n\t\t\tschemaContents,\n\t\t\tnew RegExp(\n\t\t\t\t'SpruceSchemas.TestingSchemas.' +\n\t\t\t\t\texpectedVersion +\n\t\t\t\t\t'.*?' +\n\t\t\t\t\texpectedSchemaInterfaceName,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\t}\n\n\tprivate static async buildTestSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await action.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'AnotherTest',\n\t\t\tnameCamel: 'anotherTest',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isUndefined(response.errors)\n\n\t\treturn response\n\t}\n}\n"],"file":"CreatingANewSchemaBuilder.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts"],"names":["CreatingANewSchemaBuilderTest","Cli","assert","doesThrowAsync","Action","execute","nameReadable","namePascal","nameCamel","description","err","errorAssertUtil","assertError","syncSchemasAndGetCreateAction","createSchema","response","isFalsy","errors","expectedDestination","versionUtil","resolveNewLatestPath","cwd","isEqual","files","path","cacheKey","syncSchemas","buildTestSchema","checker","Service","check","schemaTypesFile","builderMatch","testUtil","assertFileByNameInGeneratedFiles","schemaMatch","schemaContents","diskUtil","readFile","doesInclude","action","version","results","isTruthy","message","firstResponse","validateSchemaFiles","secondResponse","newVersion","generateVersion","assertAnswersFirstTime","assertAnswersSecondTime","createPromise","wait","last","ui","invocations","length","command","isLength","options","choices","isEqualDeep","value","dirValue","label","sendInput","term","createResults","expectedFileName","expectedVersion","expectedSchemaInterfaceName","isUndefined","schemaFile","fail","friendlyMessage","RegExp","AbstractSchemaTest"],"mappings":"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","sourcesContent":["import { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport {\n\tFeatureActionResponse,\n\tFeatureAction,\n} from '../../../features/features.types'\nimport SpyInterface from '../../../interfaces/SpyInterface'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingANewSchemaBuilderTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async failsWhenASkillIsNotInstalled() {\n\t\tawait this.Cli()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.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\terrorAssertUtil.assertError(err, 'FEATURE_NOT_INSTALLED')\n\t}\n\n\t@test()\n\tprotected static async canBuildFileWithoutCrashing() {\n\t\tconst createSchema = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await createSchema.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'Test',\n\t\t\tnameCamel: 'test',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isFalsy(response.errors)\n\n\t\tconst expectedDestination = versionUtil.resolveNewLatestPath(\n\t\t\tthis.cwd,\n\t\t\t'src',\n\t\t\t'schemas',\n\t\t\t'{{@latest}}',\n\t\t\t'test.builder.ts'\n\t\t)\n\n\t\tassert.isEqual(response.files?.[0].path, expectedDestination)\n\t}\n\n\tprivate static async syncSchemasAndGetCreateAction(cacheKey?: string) {\n\t\tawait this.syncSchemas(cacheKey)\n\t\tconst createSchema = this.Action('schema', 'create')\n\n\t\treturn createSchema\n\t}\n\n\t@test()\n\tprotected static async builderAndSchemaFilesValidate() {\n\t\tconst response = await this.buildTestSchema()\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tawait checker.check(response.files?.[0].path ?? '')\n\t\tawait checker.check(this.schemaTypesFile)\n\n\t\tconst builderMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.builder.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(builderMatch)\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.schema.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(schemaMatch)\n\n\t\tconst schemaContents = diskUtil.readFile(schemaMatch)\n\t\tassert.doesInclude(schemaContents, `namespace: 'TestingSchemas'`)\n\t}\n\n\t@test()\n\tprotected static async errorsWithBadVersion() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst results = await action.execute({\n\t\t\tnameReadable: 'Bad schema version!',\n\t\t\tnamePascal: 'BadSchemaVersion',\n\t\t\tnameCamel: 'badSchemaVersion',\n\t\t\tversion: 'v1',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].message, /must be in the form/i)\n\t}\n\n\t@test()\n\tprotected static async canBuild2SpecificVersions() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst firstResponse = await action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_10',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tfirstResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\n\t\tconst secondResponse = await action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'secondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t\tversion: 'v2020_01_11',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'secondSchema.schema.ts',\n\t\t\t'v2020_01_11',\n\t\t\t'SecondSchema'\n\t\t)\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionOnSecondSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst newVersion = versionUtil.generateVersion()\n\n\t\t// create old version first\n\t\tawait action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_01',\n\t\t})\n\n\t\tawait this.assertAnswersFirstTime(action, newVersion)\n\t\tawait this.assertAnswersSecondTime(action, newVersion)\n\t}\n\n\t// should ask if we want to use the old version we created above or a New Version\n\tprivate static async assertAnswersFirstTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'SecondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst last = this.ui.invocations[this.ui.invocations.length - 1]\n\n\t\tassert.isEqual(last?.command, 'prompt')\n\t\tassert.isLength(last?.options?.options?.choices, 2)\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: 'New Version',\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\tawait this.ui.sendInput(newVersion.dirValue)\n\t\tawait createPromise\n\t}\n\n\t// should only have 2 options, none of which are \"new version\" since that was created in secondAnswers\n\tprivate static async assertAnswersSecondTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Third schema',\n\t\t\tnamePascal: 'ThirdSchema',\n\t\t\tnameCamel: 'thirdSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst term = this.ui as SpyInterface\n\t\tconst last = term.invocations[term.invocations.length - 1]\n\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: newVersion.dirValue,\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.ui.sendInput(newVersion.dirValue)\n\n\t\tconst createResults = await createPromise\n\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'secondSchema.schema.ts',\n\t\t\tcreateResults.files\n\t\t)\n\n\t\tassert.doesInclude(schemaMatch, newVersion.dirValue)\n\t}\n\n\tprivate static validateSchemaFiles(\n\t\tresponse: FeatureActionResponse,\n\t\texpectedFileName: string,\n\t\texpectedVersion: string,\n\t\texpectedSchemaInterfaceName: string\n\t) {\n\t\tassert.isUndefined(response.errors)\n\n\t\tlet schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\texpectedFileName,\n\t\t\tresponse.files\n\t\t)\n\n\t\tconst errors = response.errors ?? []\n\t\tif (errors.length > 0) {\n\t\t\tassert.fail(errors[0].friendlyMessage())\n\t\t}\n\n\t\tassert.doesInclude(schemaFile, expectedVersion)\n\t\tconst schemaContents = diskUtil.readFile(schemaFile)\n\n\t\tassert.doesInclude(schemaContents, `version: '${expectedVersion}'`)\n\n\t\tassert.doesInclude(\n\t\t\tschemaContents,\n\t\t\tnew RegExp(\n\t\t\t\t'SpruceSchemas.TestingSchemas.' +\n\t\t\t\t\texpectedVersion +\n\t\t\t\t\t'.*?' +\n\t\t\t\t\texpectedSchemaInterfaceName,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\t}\n\n\tprivate static async buildTestSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await action.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'AnotherTest',\n\t\t\tnameCamel: 'anotherTest',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isUndefined(response.errors)\n\n\t\treturn response\n\t}\n}\n"],"file":"CreatingANewSchemaBuilder.test.js"}
@@ -7,6 +7,10 @@ export default class ListenAction extends AbstractAction<OptionsSchema> {
7
7
  invocationMessage: string;
8
8
  commandAliases: string[];
9
9
  execute(options: SpruceSchemas.SpruceCli.v2020_07_22.ListenEventOptions): Promise<FeatureActionResponse>;
10
+ private fetchEventContracts;
11
+ private syncEvents;
12
+ private writeListener;
13
+ private assertIsValidChoice;
10
14
  private syncListeners;
11
15
  private collectEvent;
12
16
  private collectNamespace;