@sprucelabs/spruce-cli 14.29.28 → 14.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) 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/SettingUpSchemasForModuleDistribution.test.js +3 -3
  6. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  7. package/build/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.d.ts +10 -0
  8. package/build/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.js +298 -0
  9. package/build/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.js.map +1 -0
  10. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js +1 -1
  11. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  12. package/build/__tests__/implementation/PkgService.test.js +2 -2
  13. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  14. package/build/features/event/actions/ListenAction.d.ts +4 -0
  15. package/build/features/event/actions/ListenAction.js +228 -127
  16. package/build/features/event/actions/ListenAction.js.map +1 -1
  17. package/build/features/event/writers/EventWriter.d.ts +1 -3
  18. package/build/features/event/writers/EventWriter.js +20 -14
  19. package/build/features/event/writers/EventWriter.js.map +1 -1
  20. package/build/features/sandbox/SandboxFeature.js +1 -1
  21. package/build/features/sandbox/SandboxFeature.js.map +1 -1
  22. package/build/features/sandbox/actions/SetupAction.js +24 -12
  23. package/build/features/sandbox/actions/SetupAction.js.map +1 -1
  24. package/build/features/view/actions/CreateAction.js +1 -1
  25. package/build/features/view/actions/CreateAction.js.map +1 -1
  26. package/build/interfaces/SpyInterface.js +1 -1
  27. package/build/interfaces/SpyInterface.js.map +1 -1
  28. package/build/templateItemBuilders/EventTemplateItemBuilder.js +2 -1
  29. package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
  30. package/package.json +25 -25
  31. package/src/__tests__/behavioral/ListeningToCoreEvents.test.ts +26 -0
  32. package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +3 -3
  33. package/src/__tests__/behavioral/UpgradingWithSandboxFeatureInstalled.test.ts +74 -0
  34. package/src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts +1 -1
  35. package/src/__tests__/implementation/PkgService.test.ts +2 -2
  36. package/src/features/event/actions/ListenAction.ts +111 -58
  37. package/src/features/event/writers/EventWriter.ts +21 -35
  38. package/src/features/sandbox/SandboxFeature.ts +1 -1
  39. package/src/features/sandbox/actions/SetupAction.ts +6 -0
  40. package/src/features/view/actions/CreateAction.ts +1 -0
  41. package/src/interfaces/SpyInterface.ts +3 -1
  42. 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.0](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.31...v14.30.0) (2022-01-14)
7
+
8
+
9
+ ### Features
10
+
11
+ * calendar can now be selected when creating a view ([b47a375](https://github.com/sprucelabsai/spruce-cli-workspace/commit/b47a375))
12
+
13
+
14
+
15
+
16
+
17
+ ## [14.29.31](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.30...v14.29.31) (2022-01-13)
18
+
19
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
20
+
21
+
22
+
23
+
24
+
25
+ ## [14.29.30](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.29...v14.29.30) (2022-01-12)
26
+
27
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
28
+
29
+
30
+
31
+
32
+
33
+ ## [14.29.29](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.28...v14.29.29) (2022-01-12)
34
+
35
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
36
+
37
+
38
+
39
+
40
+
6
41
  ## [14.29.28](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.27...v14.29.28) (2022-01-10)
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"}
@@ -55,7 +55,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
55
55
 
56
56
  var LOCAL_NAMESPACE = 'TestingSchemas';
57
57
  var REMOTE_NAMESPACE = 'RemoteSchemas';
58
- var REMOTE_MODULE = '@sprucelabs/spruce-calendar-utils';
58
+ var REMOTE_MODULE = '@sprucelabs/calendar-utils';
59
59
  var REMOTE_MODULE2 = '@sprucelabs/spruce-templates';
60
60
  var SettingUpSchemasForModuleDistributionTest = (_dec = (0, _test.test)('can specify importFromModuleWhenRemote 1', 'CalendarEvent', REMOTE_MODULE, '1'), _dec2 = (0, _test.test)('can specify importFromModuleWhenRemote 2', 'CalendarEvent2', REMOTE_MODULE2, '2'), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), _dec5 = (0, _test.test)('should ask about missing module and cancel install', ['schema1'], [REMOTE_MODULE], false), _dec6 = (0, _test.test)('should ask about missing module and do install', ['schema1'], [REMOTE_MODULE], true), _dec7 = (0, _test.test)('should ask about missing module and do install', ['schema1', 'schema2'], [REMOTE_MODULE, REMOTE_MODULE2], true), _dec8 = (0, _test.test)('does not return the same module twice', ['schema1', 'schema1b', 'schema2'], [REMOTE_MODULE, REMOTE_MODULE2], true), _dec9 = (0, _test.test)('schemas are imported from one module', ['schema1']), _dec10 = (0, _test.test)('schemas are imported from two modules', ['schema1', 'schema2']), _dec11 = (0, _test.test)('can reference impored from another module', ["import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'"]), _dec12 = (0, _test.test)('can reference impored from another module with two importsWhenLocal', ["import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'", "import * as HeartwoodTypesLocal2 from '@sprucelabs/heartwood-view-controllers'"]), _dec13 = (0, _test.test)(), _dec14 = (0, _test.test)(), _dec15 = (0, _test.test)(), (_class = (_temp = _class2 = /*#__PURE__*/function (_AbstractSkillTest) {
61
61
  (0, _inherits2["default"])(SettingUpSchemasForModuleDistributionTest, _AbstractSkillTest);
@@ -797,7 +797,7 @@ var SettingUpSchemasForModuleDistributionTest = (_dec = (0, _test.test)('can spe
797
797
  imported = _test2["default"].assertFileByNameInGeneratedFiles('calendarEvent.schema.ts', results.files);
798
798
  calendarEventContents = _spruceSkillUtils.diskUtil.readFile(imported);
799
799
 
800
- _test.assert.isEqual(calendarEventContents.trim(), "export { calendarEventSchema as default } from '@sprucelabs/spruce-calendar-utils'");
800
+ _test.assert.isEqual(calendarEventContents.trim(), "export { calendarEventSchema as default } from '@sprucelabs/calendar-utils'");
801
801
 
802
802
  case 4:
803
803
  case "end":
@@ -874,7 +874,7 @@ var SettingUpSchemasForModuleDistributionTest = (_dec = (0, _test.test)('can spe
874
874
  version: 'v2021_09_20',
875
875
  namespace: 'TestingSchemas',
876
876
  name: 'Schema imported as module',
877
- moduleToImportFromWhenRemote: '@sprucelabs/spruce-calendar-utils',
877
+ moduleToImportFromWhenRemote: '@sprucelabs/calendar-utils',
878
878
  fields: {
879
879
  fieldName1: {
880
880
  label: 'First Field',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts"],"names":["LOCAL_NAMESPACE","REMOTE_NAMESPACE","REMOTE_MODULE","REMOTE_MODULE2","SettingUpSchemasForModuleDistributionTest","namePascal","remoteModule","count","nameCamel","namesUtil","toCamel","promise","Action","execute","nameReadable","moduleToImportFromWhenRemote","wait","ui","isWaitingForInput","sendInput","versionUtil","generateVersion","constValue","results","assert","isFalsy","errors","builderFile","testUtil","assertFileByNameInGeneratedFiles","files","Service","importDefault","builder","isEqual","schemaFile","schema","id","templateItems","generateTemplateItems","templateItem","importFrom","isFalse","schemaNames","expectedModules","shouldConfirmInstall","reInstallSkill","Store","setCurrentSkillsNamespace","schemas","map","name","getEmitter","on","SyncAction","waitForInput","secondToLast","invocations","length","options","headline","expected","doesInclude","lines","pkg","isTrue","isInstalled","isTruthy","errorAssertUtil","assertError","push","shouldInstallMissingDependencies","assertCalendarEventSchemaIsImported","doesThrow","importsWhenRemote","mySchema","fields","calendarEvent","type","schema1","namespace","version","localSchemaFile","localSchema","isEqualDeep","assertValidTypesFileWhenAddingRemoteImport","importGeneratedFile","completedFormBuilder","isRequired","personId","values","isArray","valueType","builderForm","dateDeleted","schemaId","itemBuilder","SchemaTemplateItemBuilder","buildTemplateItems","TestSkill","find","r","schemaIds","dirValue","schema2","schemaTypesFile","check","optionOverrides","fileName","imported","calendarEventContents","diskUtil","readFile","trim","builder1","nestedSchema","firstName","resolveHashSprucePath","typesContent","writeFile","AbstractSkillTest","fieldName1","label","fieldName2","hint"],"mappings":"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","sourcesContent":["import { Schema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport { FeatureActionResponse } from '../../features/features.types'\nimport SchemaTemplateItemBuilder from '../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst LOCAL_NAMESPACE = 'TestingSchemas'\nconst REMOTE_NAMESPACE = 'RemoteSchemas'\n\nconst REMOTE_MODULE = '@sprucelabs/spruce-calendar-utils'\nconst REMOTE_MODULE2 = '@sprucelabs/spruce-templates'\n\nexport default class SettingUpSchemasForModuleDistributionTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'schemas'\n\tprivate static builder1: Schema\n\tprivate static schema1: Schema = {\n\t\tid: 'calendarEvent',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/spruce-calendar-utils',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\t//@ts-ignore\n\tprivate static schema1b: Schema\n\tprivate static schema2: Schema = {\n\t\tid: 'calendarEvent2',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/spruce-templates',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 1',\n\t\t'CalendarEvent',\n\t\tREMOTE_MODULE,\n\t\t'1'\n\t)\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 2',\n\t\t'CalendarEvent2',\n\t\tREMOTE_MODULE2,\n\t\t'2'\n\t)\n\tprotected static async canSpecifyModuleToImportFromWhenRemote(\n\t\tnamePascal: string,\n\t\tremoteModule: string,\n\t\tcount: '1' | '2'\n\t) {\n\t\tconst nameCamel = namesUtil.toCamel(namePascal)\n\t\tconst promise = this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal,\n\t\t\tnameCamel,\n\t\t\tmoduleToImportFromWhenRemote: remoteModule,\n\t\t})\n\n\t\tawait this.wait(10)\n\n\t\tif (this.ui.isWaitingForInput()) {\n\t\t\tawait this.ui.sendInput(versionUtil.generateVersion().constValue)\n\t\t}\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst builderFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst builder = await this.Service('import').importDefault(builderFile)\n\t\tassert.isEqual(builder.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`builder${count}`] = builder\n\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.schema.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('import').importDefault(schemaFile)\n\t\tassert.isEqual(schema.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`schema${count}`] = schema\n\t\t//@ts-ignore\n\t\tthis[`schema${count}b`] = { ...schema, id: `schema${count}B` }\n\t}\n\n\t@test()\n\tprotected static async templateItemGeneratorHonorsModuleToImportWhenRemoteWhenInRemoteNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(REMOTE_NAMESPACE)\n\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isEqual(templateItem.importFrom, REMOTE_MODULE)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async moduleToImportWhenRemoteIgnoredWhenInSameNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(LOCAL_NAMESPACE)\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isFalse('importFrom' in templateItem)\n\t\t}\n\t}\n\n\t@test(\n\t\t'should ask about missing module and cancel install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\tfalse\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\ttrue\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\t@test(\n\t\t'does not return the same module twice',\n\t\t['schema1', 'schema1b', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\tprotected static async asksIfModuleShouldBeInstalled(\n\t\tschemaNames: ('schema1' | 'schema2')[],\n\t\texpectedModules: string[],\n\t\tshouldConfirmInstall: boolean\n\t) {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas = schemaNames.map((name) => this[name])\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst promise = this.SyncAction().execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst secondToLast = this.ui.invocations[this.ui.invocations.length - 2]\n\n\t\tassert.isEqual(\n\t\t\tsecondToLast.options.headline,\n\t\t\t`Missing ${expectedModules.length} module${\n\t\t\t\texpectedModules.length === 1 ? '' : 's'\n\t\t\t}`\n\t\t)\n\n\t\tfor (const expected of expectedModules) {\n\t\t\tassert.doesInclude(secondToLast.options.lines, expected)\n\t\t}\n\n\t\tawait this.ui.sendInput(shouldConfirmInstall ? 'y' : 'n')\n\n\t\tconst results = await promise\n\n\t\tif (shouldConfirmInstall) {\n\t\t\tassert.isFalsy(results.errors)\n\t\t\tconst pkg = this.Service('pkg')\n\t\t\tfor (const expected of expectedModules) {\n\t\t\t\tassert.isTrue(pkg.isInstalled(expected))\n\t\t\t}\n\t\t} else {\n\t\t\tassert.isTruthy(results.errors)\n\t\t\terrorAssertUtil.assertError(results.errors[0], 'ACTION_CANCELLED')\n\t\t}\n\t}\n\n\t@test('schemas are imported from one module', ['schema1'])\n\t@test('schemas are imported from two modules', ['schema1', 'schema2'])\n\tprotected static async schemasAreImportedFromModuleWhenSyncedFromDifferentNamespace(\n\t\tschemaNames: ('schema1' | 'schema2')[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas: Schema[] = []\n\n\t\tfor (const name of schemaNames) {\n\t\t\tschemas.push(this[name])\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\n\t\tassert.doesThrow(() =>\n\t\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t'schemas.types.ts',\n\t\t\t\tresults.files\n\t\t\t)\n\t\t)\n\t}\n\n\t@test('can reference impored from another module', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\t@test('can reference impored from another module with two importsWhenLocal', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t\t`import * as HeartwoodTypesLocal2 from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\tprotected static async canReferenceSchemaImportedFromAnotherModule(\n\t\timportsWhenRemote: string[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst mySchema = {\n\t\t\tid: 'localSchema',\n\t\t\timportsWhenRemote,\n\t\t\tfields: {\n\t\t\t\tcalendarEvent: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t...this.schema1,\n\t\t\t\t\t\t\tnamespace: 'CalendarUtils',\n\t\t\t\t\t\t\tversion: 'v2021_05_19',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [mySchema],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tconst localSchemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'localSchema.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst localSchema = await this.Service('import').importDefault(\n\t\t\tlocalSchemaFile\n\t\t)\n\n\t\tassert.isEqualDeep(localSchema.importsWhenRemote, importsWhenRemote)\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\t\tawait this.assertValidTypesFileWhenAddingRemoteImport(results)\n\t}\n\n\t@test()\n\tprotected static async canSetImportFromModuleWithNestedSchemasWhenRemoteWhenSyncing() {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal: 'CalandarEvent',\n\t\t\tnameCamel: 'calendarEvent',\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tmoduleToImportFromWhenRemote: REMOTE_MODULE,\n\t\t})\n\n\t\tthis.schema1 = (await this.importGeneratedFile(\n\t\t\tresults,\n\t\t\t`calendarEvent.schema.ts`\n\t\t)) as Schema\n\n\t\tassert.isEqual(this.schema1.moduleToImportFromWhenRemote, REMOTE_MODULE)\n\t}\n\n\t@test()\n\tprotected static async canHandleFormBuilderImportExportObject() {\n\t\tconst version = versionUtil.generateVersion().constValue\n\n\t\tconst completedFormBuilder = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst builderForm = {\n\t\t\tid: 'builtForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tdateDeleted: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t},\n\t\t\t\tcompletedFormBuilder: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaId: {\n\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\tid: 'fullCompletedForm',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder('TestSkill')\n\n\t\tconst results = itemBuilder.buildTemplateItems({\n\t\t\t//@ts-ignore\n\t\t\tTestSkill: [completedFormBuilder, builderForm],\n\t\t})\n\n\t\tassert.isFalsy(\n\t\t\t(\n\t\t\t\tresults.find((r) => r.id === 'builtForm')?.schema.fields\n\t\t\t\t\t?.completedFormBuilder?.options as any\n\t\t\t)?.schemaIds?.[0]?.moduleToImportFromWhenRemote\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async importedSchemasDoNotShowUpInSchemaTypes() {\n\t\t// await this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schema1 = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tnamespace: 'Heartwood',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\timportsWhenRemote: ['import * from bananarama'],\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst schema2 = {\n\t\t\tid: 'localCompleted',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [schema1, schema2],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n\n\tprivate static SyncAction() {\n\t\treturn this.Action('schema', 'sync', {\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {},\n\t\t\t},\n\t\t})\n\t}\n\n\tprivate static async importGeneratedFile(\n\t\tresults: FeatureActionResponse,\n\t\tfileName: string\n\t) {\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tfileName,\n\t\t\tresults.files\n\t\t)\n\n\t\treturn await this.Service('import').importDefault(schemaFile)\n\t}\n\n\tprivate static async assertCalendarEventSchemaIsImported(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst imported = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'calendarEvent.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst calendarEventContents = diskUtil.readFile(imported)\n\n\t\tassert.isEqual(\n\t\t\tcalendarEventContents.trim(),\n\t\t\t`export { calendarEventSchema as default } from '@sprucelabs/spruce-calendar-utils'`\n\t\t)\n\t}\n\n\tprivate static generateTemplateItems(namespace: string) {\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder(namespace)\n\t\tconst templateItems = itemBuilder.buildTemplateItems(\n\t\t\t{\n\t\t\t\t[LOCAL_NAMESPACE]: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...this.builder1,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t...this.builder1.fields,\n\t\t\t\t\t\t\tnestedSchema: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\tid: 'nested',\n\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\tfirstName: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tthis.resolveHashSprucePath('schemas')\n\t\t)\n\t\treturn templateItems as SchemaTemplateItem[]\n\t}\n\n\tprivate static async assertValidTypesFileWhenAddingRemoteImport(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst typesContent = `import '${REMOTE_MODULE}'\\n\\n${diskUtil.readFile(\n\t\t\tschemaTypesFile\n\t\t)}`\n\t\tdiskUtil.writeFile(schemaTypesFile, typesContent)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n}\n"],"file":"SettingUpSchemasForModuleDistribution.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts"],"names":["LOCAL_NAMESPACE","REMOTE_NAMESPACE","REMOTE_MODULE","REMOTE_MODULE2","SettingUpSchemasForModuleDistributionTest","namePascal","remoteModule","count","nameCamel","namesUtil","toCamel","promise","Action","execute","nameReadable","moduleToImportFromWhenRemote","wait","ui","isWaitingForInput","sendInput","versionUtil","generateVersion","constValue","results","assert","isFalsy","errors","builderFile","testUtil","assertFileByNameInGeneratedFiles","files","Service","importDefault","builder","isEqual","schemaFile","schema","id","templateItems","generateTemplateItems","templateItem","importFrom","isFalse","schemaNames","expectedModules","shouldConfirmInstall","reInstallSkill","Store","setCurrentSkillsNamespace","schemas","map","name","getEmitter","on","SyncAction","waitForInput","secondToLast","invocations","length","options","headline","expected","doesInclude","lines","pkg","isTrue","isInstalled","isTruthy","errorAssertUtil","assertError","push","shouldInstallMissingDependencies","assertCalendarEventSchemaIsImported","doesThrow","importsWhenRemote","mySchema","fields","calendarEvent","type","schema1","namespace","version","localSchemaFile","localSchema","isEqualDeep","assertValidTypesFileWhenAddingRemoteImport","importGeneratedFile","completedFormBuilder","isRequired","personId","values","isArray","valueType","builderForm","dateDeleted","schemaId","itemBuilder","SchemaTemplateItemBuilder","buildTemplateItems","TestSkill","find","r","schemaIds","dirValue","schema2","schemaTypesFile","check","optionOverrides","fileName","imported","calendarEventContents","diskUtil","readFile","trim","builder1","nestedSchema","firstName","resolveHashSprucePath","typesContent","writeFile","AbstractSkillTest","fieldName1","label","fieldName2","hint"],"mappings":"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","sourcesContent":["import { Schema, SchemaTemplateItem } from '@sprucelabs/schema'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport { FeatureActionResponse } from '../../features/features.types'\nimport SchemaTemplateItemBuilder from '../../templateItemBuilders/SchemaTemplateItemBuilder'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst LOCAL_NAMESPACE = 'TestingSchemas'\nconst REMOTE_NAMESPACE = 'RemoteSchemas'\n\nconst REMOTE_MODULE = '@sprucelabs/calendar-utils'\nconst REMOTE_MODULE2 = '@sprucelabs/spruce-templates'\n\nexport default class SettingUpSchemasForModuleDistributionTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'schemas'\n\tprivate static builder1: Schema\n\tprivate static schema1: Schema = {\n\t\tid: 'calendarEvent',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/calendar-utils',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\t//@ts-ignore\n\tprivate static schema1b: Schema\n\tprivate static schema2: Schema = {\n\t\tid: 'calendarEvent2',\n\t\tversion: 'v2021_09_20',\n\t\tnamespace: 'TestingSchemas',\n\t\tname: 'Schema imported as module',\n\t\tmoduleToImportFromWhenRemote: '@sprucelabs/spruce-templates',\n\t\tfields: {\n\t\t\tfieldName1: { label: 'First Field', type: 'text', isRequired: true },\n\t\t\tfieldName2: {\n\t\t\t\tlabel: 'Second Field',\n\t\t\t\ttype: 'number',\n\t\t\t\tisRequired: true,\n\t\t\t\thint: 'A hint',\n\t\t\t},\n\t\t},\n\t}\n\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 1',\n\t\t'CalendarEvent',\n\t\tREMOTE_MODULE,\n\t\t'1'\n\t)\n\t@test(\n\t\t'can specify importFromModuleWhenRemote 2',\n\t\t'CalendarEvent2',\n\t\tREMOTE_MODULE2,\n\t\t'2'\n\t)\n\tprotected static async canSpecifyModuleToImportFromWhenRemote(\n\t\tnamePascal: string,\n\t\tremoteModule: string,\n\t\tcount: '1' | '2'\n\t) {\n\t\tconst nameCamel = namesUtil.toCamel(namePascal)\n\t\tconst promise = this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal,\n\t\t\tnameCamel,\n\t\t\tmoduleToImportFromWhenRemote: remoteModule,\n\t\t})\n\n\t\tawait this.wait(10)\n\n\t\tif (this.ui.isWaitingForInput()) {\n\t\t\tawait this.ui.sendInput(versionUtil.generateVersion().constValue)\n\t\t}\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst builderFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst builder = await this.Service('import').importDefault(builderFile)\n\t\tassert.isEqual(builder.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`builder${count}`] = builder\n\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${nameCamel}.schema.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('import').importDefault(schemaFile)\n\t\tassert.isEqual(schema.moduleToImportFromWhenRemote, remoteModule)\n\n\t\t//@ts-ignore\n\t\tthis[`schema${count}`] = schema\n\t\t//@ts-ignore\n\t\tthis[`schema${count}b`] = { ...schema, id: `schema${count}B` }\n\t}\n\n\t@test()\n\tprotected static async templateItemGeneratorHonorsModuleToImportWhenRemoteWhenInRemoteNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(REMOTE_NAMESPACE)\n\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isEqual(templateItem.importFrom, REMOTE_MODULE)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async moduleToImportWhenRemoteIgnoredWhenInSameNamespace() {\n\t\tconst templateItems = this.generateTemplateItems(LOCAL_NAMESPACE)\n\t\tfor (const templateItem of templateItems) {\n\t\t\tassert.isEqual(\n\t\t\t\ttemplateItem.schema.moduleToImportFromWhenRemote,\n\t\t\t\tREMOTE_MODULE\n\t\t\t)\n\t\t\tassert.isFalse('importFrom' in templateItem)\n\t\t}\n\t}\n\n\t@test(\n\t\t'should ask about missing module and cancel install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\tfalse\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1'],\n\t\t[REMOTE_MODULE],\n\t\ttrue\n\t)\n\t@test(\n\t\t'should ask about missing module and do install',\n\t\t['schema1', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\t@test(\n\t\t'does not return the same module twice',\n\t\t['schema1', 'schema1b', 'schema2'],\n\t\t[REMOTE_MODULE, REMOTE_MODULE2],\n\t\ttrue\n\t)\n\tprotected static async asksIfModuleShouldBeInstalled(\n\t\tschemaNames: ('schema1' | 'schema2')[],\n\t\texpectedModules: string[],\n\t\tshouldConfirmInstall: boolean\n\t) {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas = schemaNames.map((name) => this[name])\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst promise = this.SyncAction().execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tconst secondToLast = this.ui.invocations[this.ui.invocations.length - 2]\n\n\t\tassert.isEqual(\n\t\t\tsecondToLast.options.headline,\n\t\t\t`Missing ${expectedModules.length} module${\n\t\t\t\texpectedModules.length === 1 ? '' : 's'\n\t\t\t}`\n\t\t)\n\n\t\tfor (const expected of expectedModules) {\n\t\t\tassert.doesInclude(secondToLast.options.lines, expected)\n\t\t}\n\n\t\tawait this.ui.sendInput(shouldConfirmInstall ? 'y' : 'n')\n\n\t\tconst results = await promise\n\n\t\tif (shouldConfirmInstall) {\n\t\t\tassert.isFalsy(results.errors)\n\t\t\tconst pkg = this.Service('pkg')\n\t\t\tfor (const expected of expectedModules) {\n\t\t\t\tassert.isTrue(pkg.isInstalled(expected))\n\t\t\t}\n\t\t} else {\n\t\t\tassert.isTruthy(results.errors)\n\t\t\terrorAssertUtil.assertError(results.errors[0], 'ACTION_CANCELLED')\n\t\t}\n\t}\n\n\t@test('schemas are imported from one module', ['schema1'])\n\t@test('schemas are imported from two modules', ['schema1', 'schema2'])\n\tprotected static async schemasAreImportedFromModuleWhenSyncedFromDifferentNamespace(\n\t\tschemaNames: ('schema1' | 'schema2')[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schemas: Schema[] = []\n\n\t\tfor (const name of schemaNames) {\n\t\t\tschemas.push(this[name])\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas,\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\n\t\tassert.doesThrow(() =>\n\t\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t'schemas.types.ts',\n\t\t\t\tresults.files\n\t\t\t)\n\t\t)\n\t}\n\n\t@test('can reference impored from another module', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\t@test('can reference impored from another module with two importsWhenLocal', [\n\t\t`import * as HeartwoodTypesLocal from '@sprucelabs/heartwood-view-controllers'`,\n\t\t`import * as HeartwoodTypesLocal2 from '@sprucelabs/heartwood-view-controllers'`,\n\t])\n\tprotected static async canReferenceSchemaImportedFromAnotherModule(\n\t\timportsWhenRemote: string[]\n\t) {\n\t\tawait this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst mySchema = {\n\t\t\tid: 'localSchema',\n\t\t\timportsWhenRemote,\n\t\t\tfields: {\n\t\t\t\tcalendarEvent: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t...this.schema1,\n\t\t\t\t\t\t\tnamespace: 'CalendarUtils',\n\t\t\t\t\t\t\tversion: 'v2021_05_19',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [mySchema],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tconst localSchemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'localSchema.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst localSchema = await this.Service('import').importDefault(\n\t\t\tlocalSchemaFile\n\t\t)\n\n\t\tassert.isEqualDeep(localSchema.importsWhenRemote, importsWhenRemote)\n\n\t\tawait this.assertCalendarEventSchemaIsImported(results)\n\t\tawait this.assertValidTypesFileWhenAddingRemoteImport(results)\n\t}\n\n\t@test()\n\tprotected static async canSetImportFromModuleWithNestedSchemasWhenRemoteWhenSyncing() {\n\t\tawait this.reInstallSkill()\n\n\t\tawait this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Schema imported as module',\n\t\t\tnamePascal: 'CalandarEvent',\n\t\t\tnameCamel: 'calendarEvent',\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tmoduleToImportFromWhenRemote: REMOTE_MODULE,\n\t\t})\n\n\t\tthis.schema1 = (await this.importGeneratedFile(\n\t\t\tresults,\n\t\t\t`calendarEvent.schema.ts`\n\t\t)) as Schema\n\n\t\tassert.isEqual(this.schema1.moduleToImportFromWhenRemote, REMOTE_MODULE)\n\t}\n\n\t@test()\n\tprotected static async canHandleFormBuilderImportExportObject() {\n\t\tconst version = versionUtil.generateVersion().constValue\n\n\t\tconst completedFormBuilder = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst builderForm = {\n\t\t\tid: 'builtForm',\n\t\t\tversion,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tdateDeleted: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t},\n\t\t\t\tcompletedFormBuilder: {\n\t\t\t\t\ttype: 'schema',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tschemaId: {\n\t\t\t\t\t\t\tversion,\n\t\t\t\t\t\t\tid: 'fullCompletedForm',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder('TestSkill')\n\n\t\tconst results = itemBuilder.buildTemplateItems({\n\t\t\t//@ts-ignore\n\t\t\tTestSkill: [completedFormBuilder, builderForm],\n\t\t})\n\n\t\tassert.isFalsy(\n\t\t\t(\n\t\t\t\tresults.find((r) => r.id === 'builtForm')?.schema.fields\n\t\t\t\t\t?.completedFormBuilder?.options as any\n\t\t\t)?.schemaIds?.[0]?.moduleToImportFromWhenRemote\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async importedSchemasDoNotShowUpInSchemaTypes() {\n\t\t// await this.reInstallSkill()\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('TestingTwo')\n\n\t\tconst schema1 = {\n\t\t\tid: 'fullCompletedForm',\n\t\t\tnamespace: 'Heartwood',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tmoduleToImportFromWhenRemote: '@sprucelabs/heartwood-view-controllers',\n\t\t\timportsWhenRemote: ['import * from bananarama'],\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tconst schema2 = {\n\t\t\tid: 'localCompleted',\n\t\t\tversion: versionUtil.generateVersion().dirValue,\n\t\t\tfields: {\n\t\t\t\tid: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tpersonId: {\n\t\t\t\t\ttype: 'id',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tvalues: {\n\t\t\t\t\ttype: 'raw',\n\t\t\t\t\tisArray: true,\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tvalueType: 'Record<string, any>',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}\n\n\t\tawait this.getEmitter().on('schema.did-fetch-schemas', async () => {\n\t\t\treturn {\n\t\t\t\tschemas: [schema1, schema2],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.SyncAction().execute({\n\t\t\tshouldInstallMissingDependencies: true,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n\n\tprivate static SyncAction() {\n\t\treturn this.Action('schema', 'sync', {\n\t\t\toptionOverrides: {\n\t\t\t\t'sync.schemas': {},\n\t\t\t},\n\t\t})\n\t}\n\n\tprivate static async importGeneratedFile(\n\t\tresults: FeatureActionResponse,\n\t\tfileName: string\n\t) {\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tfileName,\n\t\t\tresults.files\n\t\t)\n\n\t\treturn await this.Service('import').importDefault(schemaFile)\n\t}\n\n\tprivate static async assertCalendarEventSchemaIsImported(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst imported = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'calendarEvent.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst calendarEventContents = diskUtil.readFile(imported)\n\n\t\tassert.isEqual(\n\t\t\tcalendarEventContents.trim(),\n\t\t\t`export { calendarEventSchema as default } from '@sprucelabs/calendar-utils'`\n\t\t)\n\t}\n\n\tprivate static generateTemplateItems(namespace: string) {\n\t\tconst itemBuilder = new SchemaTemplateItemBuilder(namespace)\n\t\tconst templateItems = itemBuilder.buildTemplateItems(\n\t\t\t{\n\t\t\t\t[LOCAL_NAMESPACE]: [\n\t\t\t\t\t{\n\t\t\t\t\t\t...this.builder1,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t...this.builder1.fields,\n\t\t\t\t\t\t\tnestedSchema: {\n\t\t\t\t\t\t\t\ttype: 'schema',\n\t\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\t\tschema: {\n\t\t\t\t\t\t\t\t\t\tid: 'nested',\n\t\t\t\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\t\t\t\tfirstName: {\n\t\t\t\t\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tthis.resolveHashSprucePath('schemas')\n\t\t)\n\t\treturn templateItems as SchemaTemplateItem[]\n\t}\n\n\tprivate static async assertValidTypesFileWhenAddingRemoteImport(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst schemaTypesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'schemas.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst typesContent = `import '${REMOTE_MODULE}'\\n\\n${diskUtil.readFile(\n\t\t\tschemaTypesFile\n\t\t)}`\n\t\tdiskUtil.writeFile(schemaTypesFile, typesContent)\n\n\t\tawait this.Service('typeChecker').check(schemaTypesFile)\n\t}\n}\n"],"file":"SettingUpSchemasForModuleDistribution.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
+ }