@sprucelabs/spruce-cli 14.28.5 → 14.28.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js +26 -13
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js.map +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js +1 -1
- package/build/__tests__/behavioral/events/KeepingEventsInSync2.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill2.test.d.ts +1 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js +10 -20
- package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js.map +1 -1
- package/build/__tests__/behavioral/{CreatingADataStore.test.d.ts → stores/CreatingADataStore.test.d.ts} +2 -1
- package/build/__tests__/behavioral/{CreatingADataStore.test.js → stores/CreatingADataStore.test.js} +84 -57
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -0
- package/build/__tests__/behavioral/{KeepingDataStoresInSync.test.d.ts → stores/KeepingDataStoresInSync.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{KeepingDataStoresInSync.test.js → stores/KeepingDataStoresInSync.test.js} +2 -2
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -0
- package/build/cli.d.ts +1 -1
- package/build/cli.js +1 -1
- package/build/cli.js.map +1 -1
- package/build/features/node/NodeFeature.js +6 -11
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/store/actions/SyncAction.js +11 -10
- package/build/features/store/actions/SyncAction.js.map +1 -1
- package/build/features/store/writers/StoreWriter.d.ts +6 -0
- package/build/features/store/writers/StoreWriter.js +78 -8
- package/build/features/store/writers/StoreWriter.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/behavioral/BootingWithBadFiles.test.ts +8 -3
- package/src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts +1 -1
- package/src/__tests__/behavioral/skill/UpgradingASkill2.test.ts +1 -10
- package/src/__tests__/behavioral/{CreatingADataStore.test.ts → stores/CreatingADataStore.test.ts} +12 -6
- package/src/__tests__/behavioral/{KeepingDataStoresInSync.test.ts → stores/KeepingDataStoresInSync.test.ts} +2 -2
- package/src/cli.ts +2 -2
- package/src/features/node/NodeFeature.ts +0 -3
- package/src/features/store/actions/SyncAction.ts +2 -1
- package/src/features/store/writers/StoreWriter.ts +30 -0
- package/build/__tests__/behavioral/CreatingADataStore.test.js.map +0 -1
- package/build/__tests__/behavioral/KeepingDataStoresInSync.test.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
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.28.6](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.28.5...v14.28.6) (2021-12-05)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [14.28.5](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.28.4...v14.28.5) (2021-12-04)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
@@ -57,16 +57,20 @@ var BootingWithBadFilesTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)
|
|
|
57
57
|
switch (_context.prev = _context.next) {
|
|
58
58
|
case 0:
|
|
59
59
|
_context.next = 2;
|
|
60
|
-
return this.
|
|
60
|
+
return this.FeatureFixture().installCachedFeatures('schemas');
|
|
61
61
|
|
|
62
62
|
case 2:
|
|
63
|
+
_context.next = 4;
|
|
64
|
+
return this.breakSchemaAndBoot();
|
|
65
|
+
|
|
66
|
+
case 4:
|
|
63
67
|
bootResults = _context.sent;
|
|
64
68
|
|
|
65
69
|
_test.assert.isTruthy(bootResults.errors);
|
|
66
70
|
|
|
67
71
|
_test.assert.doesInclude(bootResults.errors[0].message, 'location.schema.ts');
|
|
68
72
|
|
|
69
|
-
case
|
|
73
|
+
case 7:
|
|
70
74
|
case "end":
|
|
71
75
|
return _context.stop();
|
|
72
76
|
}
|
|
@@ -84,18 +88,31 @@ var BootingWithBadFilesTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)
|
|
|
84
88
|
key: "disablesSchemaCheckingWithFlag",
|
|
85
89
|
value: function () {
|
|
86
90
|
var _disablesSchemaCheckingWithFlag = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
91
|
+
var bootResults;
|
|
87
92
|
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
88
93
|
while (1) {
|
|
89
94
|
switch (_context2.prev = _context2.next) {
|
|
90
95
|
case 0:
|
|
91
|
-
|
|
96
|
+
_context2.next = 2;
|
|
97
|
+
return this.FeatureFixture().installCachedFeatures('schemas');
|
|
98
|
+
|
|
99
|
+
case 2:
|
|
100
|
+
_spruceSkillUtils.diskUtil.writeFile(this.resolvePath('.env'), 'SHOULD_VALIDATE_SCHEMAS_ON_BOOT=false');
|
|
101
|
+
|
|
102
|
+
_context2.next = 5;
|
|
103
|
+
return this.breakSchemaAndBoot();
|
|
104
|
+
|
|
105
|
+
case 5:
|
|
106
|
+
bootResults = _context2.sent;
|
|
92
107
|
|
|
93
|
-
|
|
108
|
+
_test.assert.isFalsy(bootResults.errors);
|
|
109
|
+
|
|
110
|
+
case 7:
|
|
94
111
|
case "end":
|
|
95
112
|
return _context2.stop();
|
|
96
113
|
}
|
|
97
114
|
}
|
|
98
|
-
}, _callee2);
|
|
115
|
+
}, _callee2, this);
|
|
99
116
|
}));
|
|
100
117
|
|
|
101
118
|
function disablesSchemaCheckingWithFlag() {
|
|
@@ -114,28 +131,24 @@ var BootingWithBadFilesTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)
|
|
|
114
131
|
switch (_context3.prev = _context3.next) {
|
|
115
132
|
case 0:
|
|
116
133
|
_context3.next = 2;
|
|
117
|
-
return this.FeatureFixture().installCachedFeatures('schemas');
|
|
118
|
-
|
|
119
|
-
case 2:
|
|
120
|
-
_context3.next = 4;
|
|
121
134
|
return this.Action('schema', 'sync').execute({});
|
|
122
135
|
|
|
123
|
-
case
|
|
136
|
+
case 2:
|
|
124
137
|
results = _context3.sent;
|
|
125
138
|
match = _test2["default"].assertFileByNameInGeneratedFiles('location.schema.ts', results.files);
|
|
126
139
|
|
|
127
140
|
_spruceSkillUtils.diskUtil.writeFile(match, '');
|
|
128
141
|
|
|
129
|
-
_context3.next =
|
|
142
|
+
_context3.next = 7;
|
|
130
143
|
return this.Action('skill', 'boot').execute({
|
|
131
144
|
local: true
|
|
132
145
|
});
|
|
133
146
|
|
|
134
|
-
case
|
|
147
|
+
case 7:
|
|
135
148
|
bootResults = _context3.sent;
|
|
136
149
|
return _context3.abrupt("return", bootResults);
|
|
137
150
|
|
|
138
|
-
case
|
|
151
|
+
case 9:
|
|
139
152
|
case "end":
|
|
140
153
|
return _context3.stop();
|
|
141
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/behavioral/BootingWithBadFiles.test.ts"],"names":["BootingWithBadFilesTest","breakSchemaAndBoot","bootResults","assert","isTruthy","errors","doesInclude","message","
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/behavioral/BootingWithBadFiles.test.ts"],"names":["BootingWithBadFilesTest","FeatureFixture","installCachedFeatures","breakSchemaAndBoot","bootResults","assert","isTruthy","errors","doesInclude","message","diskUtil","writeFile","resolvePath","isFalsy","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","local","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,uB,WACnB,iB,UAQA,iB;;;;;;;;;;;;;iJARD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,cAAL,GAAsBC,qBAAtB,CAA4C,SAA5C,CAFP;;AAAA;AAAA;AAAA,uBAG2B,KAAKC,kBAAL,EAH3B;;AAAA;AAGOC,gBAAAA,WAHP;;AAICC,6BAAOC,QAAP,CAAgBF,WAAW,CAACG,MAA5B;;AACAF,6BAAOG,WAAP,CAAmBJ,WAAW,CAACG,MAAZ,CAAmB,CAAnB,EAAsBE,OAAzC,EAAkD,oBAAlD;;AALD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0HAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKR,cAAL,GAAsBC,qBAAtB,CAA4C,SAA5C,CAFP;;AAAA;AAGCQ,2CAASC,SAAT,CACC,KAAKC,WAAL,CAAiB,MAAjB,CADD,EAEC,uCAFD;;AAHD;AAAA,uBAO2B,KAAKT,kBAAL,EAP3B;;AAAA;AAOOC,gBAAAA,WAPP;;AAQCC,6BAAOQ,OAAP,CAAeT,WAAW,CAACG,MAA3B;;AARD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;8GAWA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACuB,KAAKO,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsC,EAAtC,CADvB;;AAAA;AACOC,gBAAAA,OADP;AAGOC,gBAAAA,KAHP,GAGeC,kBAASC,gCAAT,CACb,oBADa,EAEbH,OAAO,CAACI,KAFK,CAHf;;AAQCV,2CAASC,SAAT,CAAmBM,KAAnB,EAA0B,EAA1B;;AARD;AAAA,uBAU2B,KAAKH,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC;AAC9DM,kBAAAA,KAAK,EAAE;AADuD,iBAArC,CAV3B;;AAAA;AAUOjB,gBAAAA,WAVP;AAAA,kDAcQA,WAdR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EApBoDkB,4B","sourcesContent":["import { diskUtil } 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 BootingWithBadFilesTest extends AbstractCliTest {\n\t@test()\n\tprotected static async bootingWithAEmptySchemaThrowsErrorWithNameOfBadSchema() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst bootResults = await this.breakSchemaAndBoot()\n\t\tassert.isTruthy(bootResults.errors)\n\t\tassert.doesInclude(bootResults.errors[0].message, 'location.schema.ts')\n\t}\n\n\t@test()\n\tprotected static async disablesSchemaCheckingWithFlag() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tdiskUtil.writeFile(\n\t\t\tthis.resolvePath('.env'),\n\t\t\t'SHOULD_VALIDATE_SCHEMAS_ON_BOOT=false'\n\t\t)\n\t\tconst bootResults = await this.breakSchemaAndBoot()\n\t\tassert.isFalsy(bootResults.errors)\n\t}\n\n\tprivate static async breakSchemaAndBoot() {\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'location.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, '')\n\n\t\tconst bootResults = await this.Action('skill', 'boot').execute({\n\t\t\tlocal: true,\n\t\t})\n\n\t\treturn bootResults\n\t}\n}\n"],"file":"BootingWithBadFiles.test.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","test","skip","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","results2","isTruthy","errors","doesThrow","assertCorePayloadSchemasAreCreated","cli","isFalsy","Service","build","checkHealth","isRunningLocally","health","skill","event","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","skill2","eventName","todaysVersion","constValue","fqen","slug","registerEventContract","eventSignatures","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","name","permissions","defaults","guest","listenPermissionContract","add","namespace","dirValue","doesInclude","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","eventContractUtil","getSignatureByName","payload","options","schema","orgFixture","org","seedDemoSkill","skill3","installSkillAtOrganization","set","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","isFalse","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","skillEventContractTypesFile","builder","resolvePath","uninstall","signature","registerEventAndSync","filename","getSkillFixture","stamp","Date","getTime","version","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","resolveHashSprucePath","doesExist","AbstractEventTest"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport {\n\tbuildPermissionContract,\n\tEventContract,\n\tEventSignature,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\t@test.skip('find how to simulate connection errors')\n\tprotected static async syncingSchemasWithDisconnectedStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait client.disconnect()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ isRunningLocally: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\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\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\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})\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').set([\n\t\t\t{\n\t\t\t\tid: skill2.id,\n\t\t\t\tnamespace: skill2.slug,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: skill3.id,\n\t\t\t\tnamespace: skill3.slug,\n\t\t\t},\n\t\t])\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\treturn { results, filename }\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"file":"KeepingEventsInSync2.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/KeepingEventsInSync2.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","KeepingEventsInSyncTest","test","skip","versionUtil","generateVersion","FeatureFixture","installCachedFeatures","syncCoreEventsPretendingToBeMercuryTypes","Action","execute","results","match","testUtil","assertFileByNameInGeneratedFiles","files","assert","isTrue","diskUtil","doesFileExist","getMercuryFixture","connectToApi","shouldAuthAsCurrentSkill","client","disconnect","results2","isTruthy","errors","doesThrow","assertCorePayloadSchemasAreCreated","cli","isFalsy","Service","build","checkHealth","shouldRunOnSourceFiles","health","skill","event","isEqual","status","contracts","isAbove","length","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","skill2","eventName","todaysVersion","constValue","fqen","slug","registerEventContract","eventSignatures","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","onlyField","type","responsePayloadSchema","emitPermissionContract","name","permissions","defaults","guest","listenPermissionContract","add","namespace","dirValue","doesInclude","namesUtil","toCamel","pathUtil","sep","importDefault","contract","sig","eventContractUtil","getSignatureByName","payload","options","schema","orgFixture","org","seedDemoSkill","skill3","installSkillAtOrganization","set","check","eventName2","randomVersion","seedSkillsAndRegisterAndSyncEvents","syncResults","contractFileName","assertValidActionResponseFiles","unRegisterEvents","shouldUnregisterAll","eventContract","isFalse","dirname","doesDirExist","registerCurrentSkillAndInstallToOrg","nameReadable","nameKebab","nameCamel","file","perms","writeFile","contractFile","Object","keys","shouldSyncOnlyCoreEvents","eventBuilderFile","skillEventContractTypesFile","builder","resolvePath","uninstall","signature","registerEventAndSync","filename","getSkillFixture","stamp","Date","getTime","version","shouldHaveWritten","filesToCheck","path","MERCURY_API_NAMESPACE","assertFilesWereGenerated","expected","resolveHashSprucePath","doesExist","AbstractEventTest"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport {\n\tbuildPermissionContract,\n\tEventContract,\n\tEventSignature,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { generateEventContractFileName } from '../../../features/event/writers/EventWriter'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\n\nconst EVENT_NAME_READABLE = 'my permission amazing event'\nconst EVENT_NAME = 'my-permission-amazing-event'\nconst EVENT_CAMEL = 'myPermissionAmazingEvent'\n\nexport default class KeepingEventsInSyncTest extends AbstractEventTest {\n\tprivate static randomVersion = 'v2020_01_01'\n\n\tprivate static get todaysVersion() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\t@test.skip('find how to simulate connection errors')\n\tprotected static async syncingSchemasWithDisconnectedStopsWithError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tawait this.syncCoreEventsPretendingToBeMercuryTypes()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'sendMessageEmitPayload.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\n\t\tconst client = await this.getMercuryFixture().connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait client.disconnect()\n\n\t\tconst results2 = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTruthy(results2.errors)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(match))\n\t}\n\n\t@test()\n\tprotected static async syncingSchemasDoesNotSyncEventSchemasIfEventsNotInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.doesThrow(() => this.assertCorePayloadSchemasAreCreated(results))\n\t}\n\n\t@test()\n\tprotected static async canGetNumberOfEventsBackFromHealthCheck() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.Service('build').build()\n\n\t\tconst health = await cli.checkHealth({ shouldRunOnSourceFiles: false })\n\n\t\tassert.isTruthy(health.skill)\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\t\tassert.isEqual(health.event.status, 'passed')\n\t\tassert.isTruthy(health.event.contracts)\n\n\t\tassert.isAbove(health.event.contracts.length, 0)\n\t}\n\n\t@test()\n\tprotected static async syncsEventsFromOtherSkills() {\n\t\tconst { skillFixture, skill2 } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst fqen = `${skill2.slug}.my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayloadId',\n\t\t\t\t\t\t\tfields: { onlyField: { type: 'text' } },\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'myNewEventResponsePayloadId',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t},\n\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventEmitPermissionContract',\n\t\t\t\t\t\tname: 'My new event emit permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-emit',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\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\tlistenPermissionContract: buildPermissionContract({\n\t\t\t\t\t\tid: 'myNewEventListenPermissionContract',\n\t\t\t\t\t\tname: 'My new event listen permissionContract',\n\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tid: 'can-listen',\n\t\t\t\t\t\t\t\tname: 'Can emit my new event',\n\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\tguest: {\n\t\t\t\t\t\t\t\t\t\tdefault: true,\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})\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`myNewEvent.${this.todaysVersion.dirValue}.contract.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\t`${namesUtil.toCamel(skill2.slug)}${pathUtil.sep}myNewEvent.${\n\t\t\t\tthis.todaysVersion.dirValue\n\t\t\t}.contract.ts`\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(match)) as any\n\t\tconst sig = eventContractUtil.getSignatureByName(contract, fqen)\n\n\t\tassert.isTruthy(sig.emitPayloadSchema)\n\t\tassert.isTruthy(\n\t\t\t//@ts-ignore\n\t\t\tsig.emitPayloadSchema.fields?.payload?.options?.schema?.id,\n\t\t\t'myNewEventEmitPayloadId'\n\t\t)\n\t\tassert.isTruthy(\n\t\t\tsig.responsePayloadSchema?.id,\n\t\t\t'myNewEventResponsePayloadId'\n\t\t)\n\n\t\tassert.isTruthy(sig.emitPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract.id,\n\t\t\t'myNewEventEmitPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.emitPermissionContract.permissions[0].id, 'can-emit')\n\t\tassert.isTruthy(sig.listenPermissionContract)\n\t\tassert.isEqual(\n\t\t\tsig.listenPermissionContract.id,\n\t\t\t'myNewEventListenPermissionContract'\n\t\t)\n\t\tassert.isEqual(sig.listenPermissionContract.permissions[0].id, 'can-listen')\n\t}\n\n\t@test()\n\tprotected static async twoSkillsWithSameEventCanBeSynced() {\n\t\tconst { skill2, skillFixture, orgFixture, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst skill3 = await skillFixture.seedDemoSkill({ name: 'a third skill' })\n\n\t\tawait orgFixture.installSkillAtOrganization(skill3.id, org.id)\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill3, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').set([\n\t\t\t{\n\t\t\t\tid: skill2.id,\n\t\t\t\tnamespace: skill2.slug,\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: skill3.id,\n\t\t\t\tnamespace: skill3.slug,\n\t\t\t},\n\t\t])\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async skillWithSameEventNameButDifferentVersionsCanBeSynced() {\n\t\tconst { skill2, skillFixture } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = `my-new-event::${this.todaysVersion.constValue}`\n\t\tconst eventName2 = `my-new-event::${this.randomVersion}`\n\n\t\tawait skillFixture.registerEventContract(skill2, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t\t[eventName2]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\tconst contract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(contract)\n\t}\n\n\t@test()\n\tprotected static async unRegisteredEventsAreRemoved() {\n\t\tconst { skillFixture, syncResults, skill2, contractFileName } =\n\t\t\tawait this.seedSkillsAndRegisterAndSyncEvents()\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\n\t\tawait skillFixture.unRegisterEvents(skill2, {\n\t\t\tshouldUnregisterAll: true,\n\t\t})\n\n\t\tconst eventContract = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tcontractFileName,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(eventContract))\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(eventContract))\n\n\t\tconst dirname = pathUtil.dirname(eventContract)\n\t\tassert.isFalse(diskUtil.doesDirExist(dirname))\n\t}\n\n\t@test()\n\tprotected static async emptyPermissionsAreNotAddedToContract() {\n\t\tawait this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tfor (const file of [\n\t\t\t'emitPermissions.builder.ts',\n\t\t\t'listenPermissions.builder.ts',\n\t\t]) {\n\t\t\tconst perms = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfile,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tdiskUtil.writeFile(\n\t\t\t\tperms,\n\t\t\t\t`import {\n\t\t\t\tbuildPermissionContract\n\t\t\t} from '@sprucelabs/mercury-types'\n\t\t\t\n\t\t\tconst myFantasticallyAmazingEventEmitPermissions = buildPermissionContract({\n\t\t\t\tid: 'myFantasticallyAmazingEventEmitPermissions',\n\t\t\t\tname: 'my fantastically amazing event',\n\t\t\t\tdescription: undefined,\n\t\t\t\trequireAllPermissions: false,\n\t\t\t\tpermissions: []\n\t\t\t})\n\t\t\t\n\t\t\texport default myFantasticallyAmazingEventEmitPermissions\n\t\t\t`\n\t\t\t)\n\t\t}\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tconst contractFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/myPermissionAmazingEvent\\..*?\\.contract\\.ts/,\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst contract = (await this.Service('import').importDefault(\n\t\t\tcontractFile\n\t\t)) as EventContract\n\n\t\tconst fqen = Object.keys(contract.eventSignatures)[0]\n\t\tassert.isFalsy(contract.eventSignatures[fqen].emitPermissionContract)\n\t\tassert.isFalsy(contract.eventSignatures[fqen].listenPermissionContract)\n\t}\n\n\tprivate static async syncCoreEventsPretendingToBeMercuryTypes() {\n\t\tconst results = await this.Action('event', 'sync').execute({\n\t\t\tshouldSyncOnlyCoreEvents: true,\n\t\t\teventBuilderFile: '../../../builder',\n\t\t\tskillEventContractTypesFile: '../../builder',\n\t\t})\n\n\t\tconst builder = `\nexport function buildEventContract(..._: any[]):any { return _[0] }\nexport function buildPermissionContract(..._: any[]):any { return _[0] }\n`\n\n\t\tdiskUtil.writeFile(this.resolvePath('src', 'builder.ts'), builder)\n\t\tawait this.Service('pkg').uninstall([\n\t\t\t'@sprucelabs/mercury-types',\n\t\t\t'@sprucelabs/mercury-client',\n\t\t\t'@sprucelabs/spruce-event-plugin',\n\t\t])\n\t\treturn results\n\t}\n\n\tprivate static async seedSkillsAndRegisterAndSyncEvents(\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst { skill2, skillFixture, cli } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tconst { results, filename } = await this.registerEventAndSync(\n\t\t\tskill2,\n\t\t\tsignature\n\t\t)\n\n\t\treturn {\n\t\t\tskillFixture,\n\t\t\tsyncResults: results,\n\t\t\tcli,\n\t\t\tskill2,\n\t\t\tcontractFileName: filename,\n\t\t}\n\t}\n\n\tprivate static async registerEventAndSync(\n\t\tskill: RegisteredSkill,\n\t\tsignature?: EventSignature\n\t) {\n\t\tconst skillFixture = this.getSkillFixture()\n\t\tconst stamp = new Date().getTime()\n\t\tconst eventName = `cleanup-event-test-${stamp}::${this.todaysVersion.constValue}`\n\t\tconst filename = generateEventContractFileName({\n\t\t\tnameCamel: `cleanupEventTest${stamp}`,\n\t\t\tversion: this.todaysVersion.constValue,\n\t\t})\n\n\t\tawait skillFixture.registerEventContract(skill, {\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]: {\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName,\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t}),\n\t\t\t\t\t...signature,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\n\t\tawait this.Service('dependency').add({\n\t\t\tid: skill.id,\n\t\t\tnamespace: skill.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'sync').execute({})\n\n\t\treturn { results, filename }\n\t}\n\n\tprivate static assertCorePayloadSchemasAreCreated(\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tconst filesToCheck = [\n\t\t\t{\n\t\t\t\tname: `unregisterListenersEmitTargetAndPayload.schema.ts`,\n\t\t\t\tpath: `schemas${pathUtil.sep}${MERCURY_API_NAMESPACE}`,\n\t\t\t},\n\t\t]\n\n\t\tthis.assertFilesWereGenerated(filesToCheck, results, shouldHaveWritten)\n\t}\n\n\tprivate static assertFilesWereGenerated(\n\t\tfilesToCheck: { name: string; path: string }[],\n\t\tresults: FeatureActionResponse,\n\t\tshouldHaveWritten = true\n\t) {\n\t\tfor (const file of filesToCheck) {\n\t\t\tconst expected = this.resolveHashSprucePath(\n\t\t\t\t'schemas/mercury/v2020_12_25',\n\t\t\t\tfile.name\n\t\t\t)\n\t\t\tconst doesExist = diskUtil.doesFileExist(expected)\n\n\t\t\tif (shouldHaveWritten) {\n\t\t\t\tassert.isTrue(doesExist, `Expected to find ${file} on the filesystem.`)\n\t\t\t} else {\n\t\t\t\tassert.isFalse(doesExist, `Should not have written ${file}.`)\n\t\t\t}\n\t\t}\n\t}\n}\n"],"file":"KeepingEventsInSync2.test.js"}
|
|
@@ -6,7 +6,7 @@ export default class UpgradingASkill2Test extends AbstractCliTest {
|
|
|
6
6
|
protected static featuresNotEnabledDontInstall(): Promise<void>;
|
|
7
7
|
protected static upgradingSkillSyncsEvents(): Promise<void>;
|
|
8
8
|
protected static upgradeCallsUpdateDependencies(): Promise<void>;
|
|
9
|
-
protected static
|
|
9
|
+
protected static callsCleanFixAndBuildDev(): Promise<void>;
|
|
10
10
|
protected static writesViewPlugin(): Promise<void>;
|
|
11
11
|
protected static upgradeSyncsErrors(isInstalled?: boolean): Promise<void>;
|
|
12
12
|
protected static resetsErrorPluginInSkill(): Promise<void>;
|
|
@@ -256,10 +256,10 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
|
|
|
256
256
|
return upgradeCallsUpdateDependencies;
|
|
257
257
|
}()
|
|
258
258
|
}, {
|
|
259
|
-
key: "
|
|
259
|
+
key: "callsCleanFixAndBuildDev",
|
|
260
260
|
value: function () {
|
|
261
|
-
var
|
|
262
|
-
var wasCleanBuildCalled,
|
|
261
|
+
var _callsCleanFixAndBuildDev = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
|
|
262
|
+
var wasCleanBuildCalled, wasBuildDevCalled, results;
|
|
263
263
|
return _regenerator["default"].wrap(function _callee7$(_context7) {
|
|
264
264
|
while (1) {
|
|
265
265
|
switch (_context7.prev = _context7.next) {
|
|
@@ -283,7 +283,6 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
|
|
|
283
283
|
}
|
|
284
284
|
}, _callee6);
|
|
285
285
|
}));
|
|
286
|
-
wasFixLintCalled = false;
|
|
287
286
|
|
|
288
287
|
_CommandService["default"].setMockResponse('yarn clean.build', {
|
|
289
288
|
code: 0,
|
|
@@ -292,13 +291,6 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
|
|
|
292
291
|
}
|
|
293
292
|
});
|
|
294
293
|
|
|
295
|
-
_CommandService["default"].setMockResponse('yarn fix.lint', {
|
|
296
|
-
code: 0,
|
|
297
|
-
callback: function callback() {
|
|
298
|
-
wasFixLintCalled = true;
|
|
299
|
-
}
|
|
300
|
-
});
|
|
301
|
-
|
|
302
294
|
wasBuildDevCalled = false;
|
|
303
295
|
|
|
304
296
|
_CommandService["default"].setMockResponse('yarn build.dev', {
|
|
@@ -308,10 +300,10 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
|
|
|
308
300
|
}
|
|
309
301
|
});
|
|
310
302
|
|
|
311
|
-
_context7.next =
|
|
303
|
+
_context7.next = 9;
|
|
312
304
|
return this.Action('node', 'upgrade').execute({});
|
|
313
305
|
|
|
314
|
-
case
|
|
306
|
+
case 9:
|
|
315
307
|
results = _context7.sent;
|
|
316
308
|
|
|
317
309
|
_test.assert.isFalsy(results.errors);
|
|
@@ -320,9 +312,7 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
|
|
|
320
312
|
|
|
321
313
|
_test.assert.isTrue(wasBuildDevCalled);
|
|
322
314
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
case 16:
|
|
315
|
+
case 13:
|
|
326
316
|
case "end":
|
|
327
317
|
return _context7.stop();
|
|
328
318
|
}
|
|
@@ -330,11 +320,11 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
|
|
|
330
320
|
}, _callee7, this);
|
|
331
321
|
}));
|
|
332
322
|
|
|
333
|
-
function
|
|
334
|
-
return
|
|
323
|
+
function callsCleanFixAndBuildDev() {
|
|
324
|
+
return _callsCleanFixAndBuildDev.apply(this, arguments);
|
|
335
325
|
}
|
|
336
326
|
|
|
337
|
-
return
|
|
327
|
+
return callsCleanFixAndBuildDev;
|
|
338
328
|
}()
|
|
339
329
|
}, {
|
|
340
330
|
key: "writesViewPlugin",
|
|
@@ -579,6 +569,6 @@ var UpgradingASkill2Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
|
|
|
579
569
|
}
|
|
580
570
|
}]);
|
|
581
571
|
return UpgradingASkill2Test;
|
|
582
|
-
}(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "originalErrorSyncExecute", void 0), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "doesNotAddResolvePathAliasesToDependenciesAfterUpgrade", [_dec], Object.getOwnPropertyDescriptor(_class, "doesNotAddResolvePathAliasesToDependenciesAfterUpgrade"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "featuresNotEnabledDontInstall", [_dec2], Object.getOwnPropertyDescriptor(_class, "featuresNotEnabledDontInstall"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradingSkillSyncsEvents", [_dec3], Object.getOwnPropertyDescriptor(_class, "upgradingSkillSyncsEvents"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradeCallsUpdateDependencies", [_dec4], Object.getOwnPropertyDescriptor(_class, "upgradeCallsUpdateDependencies"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "
|
|
572
|
+
}(_AbstractCliTest2["default"]), (0, _defineProperty2["default"])(_class2, "originalErrorSyncExecute", void 0), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "doesNotAddResolvePathAliasesToDependenciesAfterUpgrade", [_dec], Object.getOwnPropertyDescriptor(_class, "doesNotAddResolvePathAliasesToDependenciesAfterUpgrade"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "featuresNotEnabledDontInstall", [_dec2], Object.getOwnPropertyDescriptor(_class, "featuresNotEnabledDontInstall"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradingSkillSyncsEvents", [_dec3], Object.getOwnPropertyDescriptor(_class, "upgradingSkillSyncsEvents"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradeCallsUpdateDependencies", [_dec4], Object.getOwnPropertyDescriptor(_class, "upgradeCallsUpdateDependencies"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "callsCleanFixAndBuildDev", [_dec5], Object.getOwnPropertyDescriptor(_class, "callsCleanFixAndBuildDev"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "writesViewPlugin", [_dec6], Object.getOwnPropertyDescriptor(_class, "writesViewPlugin"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "upgradeSyncsErrors", [_dec7, _dec8], Object.getOwnPropertyDescriptor(_class, "upgradeSyncsErrors"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "resetsErrorPluginInSkill", [_dec9], Object.getOwnPropertyDescriptor(_class, "resetsErrorPluginInSkill"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "resetsErrorPluginWhenErrorInstalled", [_dec10], Object.getOwnPropertyDescriptor(_class, "resetsErrorPluginWhenErrorInstalled"), _class)), _class));
|
|
583
573
|
exports["default"] = UpgradingASkill2Test;
|
|
584
574
|
//# sourceMappingURL=UpgradingASkill2.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/skill/UpgradingASkill2.test.ts"],"names":["UpgradingASkill2Test","originalErrorSyncExecute","SyncAction","prototype","execute","CommandService","setMockResponse","RegExp","code","clearMockResponses","FeatureFixture","installCachedFeatures","Action","dependencies","Service","get","assert","isFalsy","results","doesThrow","testUtil","assertFileByNameInGeneratedFiles","files","assertViewPluginNotWritten","events","eventDiskUtil","resolveCombinedEventsContractFile","cwd","isTrue","diskUtil","doesFileExist","UpdateDependenciesAction","Error","isTruthy","errors","doesInclude","message","wasCleanBuildCalled","wasFixLintCalled","callback","wasBuildDevCalled","plugin","getViewsPluginPath","deleteFile","isFalse","isInstalled","wasHit","disableCleanBuildAndYarnAdd","isEqual","destroyErrorPlugin","expectedContents","promise","upgradeMode","waitForInput","ui","sendInput","actualContents","readFile","nameReadable","nameCamel","disableCleanAndBuild","resolveHashSprucePath","writeFile","AbstractCliTest"],"mappings":"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","sourcesContent":["import { eventDiskUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport SyncAction from '../../../features/error/actions/SyncAction'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nexport default class UpgradingASkill2Test extends AbstractCliTest {\n\tprivate static originalErrorSyncExecute: any\n\tprotected static async beforeEach() {\n\t\tif (!this.originalErrorSyncExecute) {\n\t\t\tthis.originalErrorSyncExecute = SyncAction.prototype.execute\n\t\t} else {\n\t\t\tSyncAction.prototype.execute = this.originalErrorSyncExecute\n\t\t}\n\n\t\tawait super.beforeEach()\n\t\tCommandService.setMockResponse(new RegExp(/yarn rebuild/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async doesNotAddResolvePathAliasesToDependenciesAfterUpgrade() {\n\t\tCommandService.clearMockResponses()\n\t\tawait this.FeatureFixture().installCachedFeatures('views')\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tconst dependencies = this.Service('pkg').get('dependencies')\n\n\t\tassert.isFalsy(dependencies['@sprucelabs/resolve-path-aliases'])\n\t}\n\n\t@test()\n\tprotected static async featuresNotEnabledDontInstall() {\n\t\tCommandService.clearMockResponses()\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tconst dependencies = this.Service('pkg').get('dependencies')\n\n\t\tassert.isFalsy(dependencies['@sprucelabs/resolve-path-aliases'])\n\n\t\tassert.doesThrow(() =>\n\t\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t'events.contract.ts',\n\t\t\t\tresults.files\n\t\t\t)\n\t\t)\n\n\t\tthis.assertViewPluginNotWritten()\n\t}\n\n\t@test()\n\tprotected static async upgradingSkillSyncsEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\t\tconst events = eventDiskUtil.resolveCombinedEventsContractFile(this.cwd)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(events))\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async upgradeCallsUpdateDependencies() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tUpdateDependenciesAction.prototype.execute = () => {\n\t\t\tthrow new Error('baaaaad')\n\t\t}\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].message, 'baaaaad')\n\t}\n\n\t@test()\n\tprotected static async callsCleanFixLintAndBuildDev() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tlet wasCleanBuildCalled = false\n\t\tUpdateDependenciesAction.prototype.execute = async () => {\n\t\t\treturn {}\n\t\t}\n\n\t\tlet wasFixLintCalled = false\n\t\tCommandService.setMockResponse('yarn clean.build', {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\twasCleanBuildCalled = true\n\t\t\t},\n\t\t})\n\n\t\tCommandService.setMockResponse('yarn fix.lint', {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\twasFixLintCalled = true\n\t\t\t},\n\t\t})\n\n\t\tlet wasBuildDevCalled = false\n\n\t\tCommandService.setMockResponse('yarn build.dev', {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\twasBuildDevCalled = true\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTrue(wasCleanBuildCalled)\n\t\tassert.isTrue(wasBuildDevCalled)\n\t\tassert.isTrue(wasFixLintCalled)\n\t}\n\n\t@test()\n\tprotected static async writesViewPlugin() {\n\t\tawait this.FeatureFixture().installCachedFeatures('views')\n\n\t\tconst plugin = this.getViewsPluginPath()\n\t\tassert.isTrue(diskUtil.doesFileExist(plugin))\n\n\t\tdiskUtil.deleteFile(plugin)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(plugin))\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTrue(diskUtil.doesFileExist(plugin))\n\t}\n\n\t@test('sync with errors installed')\n\t@test('sync with errors not installed', false)\n\tprotected static async upgradeSyncsErrors(isInstalled = true) {\n\t\tawait this.FeatureFixture().installCachedFeatures(\n\t\t\tisInstalled ? 'errors' : 'schemas'\n\t\t)\n\n\t\tlet wasHit = false\n\n\t\tSyncAction.prototype.execute = async () => {\n\t\t\twasHit = true\n\t\t\treturn {}\n\t\t}\n\n\t\tthis.disableCleanBuildAndYarnAdd()\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isEqual(wasHit, isInstalled)\n\t}\n\n\t@test()\n\tprotected static async resetsErrorPluginInSkill() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst { plugin, expectedContents } = this.destroyErrorPlugin()\n\n\t\tawait this.disableCleanBuildAndYarnAdd()\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tawait promise\n\n\t\tconst actualContents = diskUtil.readFile(plugin)\n\n\t\tassert.isEqual(actualContents, expectedContents)\n\t}\n\n\t@test()\n\tprotected static async resetsErrorPluginWhenErrorInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('errors')\n\n\t\tawait this.Action('error', 'create').execute({\n\t\t\tnameReadable: 'Test pass',\n\t\t\tnameCamel: 'testPass',\n\t\t})\n\n\t\tconst { plugin, expectedContents } = this.destroyErrorPlugin()\n\n\t\tthis.disableCleanAndBuild()\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\tconst actualContents = diskUtil.readFile(plugin)\n\n\t\tassert.isEqual(actualContents, expectedContents)\n\t}\n\n\tprivate static destroyErrorPlugin() {\n\t\tconst plugin = this.resolveHashSprucePath('errors', 'options.types.ts')\n\t\tconst expectedContents = diskUtil.readFile(plugin)\n\n\t\tdiskUtil.writeFile(plugin, 'waka')\n\t\treturn { plugin, expectedContents }\n\t}\n\n\tprivate static getViewsPluginPath() {\n\t\treturn this.resolveHashSprucePath('features', 'view.plugin.ts')\n\t}\n\n\tprotected static assertViewPluginNotWritten() {\n\t\tassert.isFalse(diskUtil.doesFileExist(this.getViewsPluginPath()))\n\t}\n\n\tprivate static disableCleanBuildAndYarnAdd() {\n\t\tthis.disableCleanAndBuild()\n\n\t\tCommandService.setMockResponse(/yarn.*?add/gis, {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\tprivate static disableCleanAndBuild() {\n\t\tCommandService.setMockResponse('yarn clean.build', {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tCommandService.setMockResponse('yarn build.dev', {\n\t\t\tcode: 0,\n\t\t})\n\t}\n}\n"],"file":"UpgradingASkill2.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/skill/UpgradingASkill2.test.ts"],"names":["UpgradingASkill2Test","originalErrorSyncExecute","SyncAction","prototype","execute","CommandService","setMockResponse","RegExp","code","clearMockResponses","FeatureFixture","installCachedFeatures","Action","dependencies","Service","get","assert","isFalsy","results","doesThrow","testUtil","assertFileByNameInGeneratedFiles","files","assertViewPluginNotWritten","events","eventDiskUtil","resolveCombinedEventsContractFile","cwd","isTrue","diskUtil","doesFileExist","UpdateDependenciesAction","Error","isTruthy","errors","doesInclude","message","wasCleanBuildCalled","callback","wasBuildDevCalled","plugin","getViewsPluginPath","deleteFile","isFalse","isInstalled","wasHit","disableCleanBuildAndYarnAdd","isEqual","destroyErrorPlugin","expectedContents","promise","upgradeMode","waitForInput","ui","sendInput","actualContents","readFile","nameReadable","nameCamel","disableCleanAndBuild","resolveHashSprucePath","writeFile","AbstractCliTest"],"mappings":"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","sourcesContent":["import { eventDiskUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport SyncAction from '../../../features/error/actions/SyncAction'\nimport UpdateDependenciesAction from '../../../features/node/actions/UpdateDependenciesAction'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nexport default class UpgradingASkill2Test extends AbstractCliTest {\n\tprivate static originalErrorSyncExecute: any\n\tprotected static async beforeEach() {\n\t\tif (!this.originalErrorSyncExecute) {\n\t\t\tthis.originalErrorSyncExecute = SyncAction.prototype.execute\n\t\t} else {\n\t\t\tSyncAction.prototype.execute = this.originalErrorSyncExecute\n\t\t}\n\n\t\tawait super.beforeEach()\n\t\tCommandService.setMockResponse(new RegExp(/yarn rebuild/gis), {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async doesNotAddResolvePathAliasesToDependenciesAfterUpgrade() {\n\t\tCommandService.clearMockResponses()\n\t\tawait this.FeatureFixture().installCachedFeatures('views')\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tconst dependencies = this.Service('pkg').get('dependencies')\n\n\t\tassert.isFalsy(dependencies['@sprucelabs/resolve-path-aliases'])\n\t}\n\n\t@test()\n\tprotected static async featuresNotEnabledDontInstall() {\n\t\tCommandService.clearMockResponses()\n\t\tawait this.FeatureFixture().installCachedFeatures('schemas')\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tconst dependencies = this.Service('pkg').get('dependencies')\n\n\t\tassert.isFalsy(dependencies['@sprucelabs/resolve-path-aliases'])\n\n\t\tassert.doesThrow(() =>\n\t\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t'events.contract.ts',\n\t\t\t\tresults.files\n\t\t\t)\n\t\t)\n\n\t\tthis.assertViewPluginNotWritten()\n\t}\n\n\t@test()\n\tprotected static async upgradingSkillSyncsEvents() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\t\tconst events = eventDiskUtil.resolveCombinedEventsContractFile(this.cwd)\n\n\t\tassert.isTrue(diskUtil.doesFileExist(events))\n\n\t\ttestUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'events.contract.ts',\n\t\t\tresults.files\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async upgradeCallsUpdateDependencies() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tUpdateDependenciesAction.prototype.execute = () => {\n\t\t\tthrow new Error('baaaaad')\n\t\t}\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].message, 'baaaaad')\n\t}\n\n\t@test()\n\tprotected static async callsCleanFixAndBuildDev() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tlet wasCleanBuildCalled = false\n\t\tUpdateDependenciesAction.prototype.execute = async () => {\n\t\t\treturn {}\n\t\t}\n\n\t\tCommandService.setMockResponse('yarn clean.build', {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\twasCleanBuildCalled = true\n\t\t\t},\n\t\t})\n\n\t\tlet wasBuildDevCalled = false\n\n\t\tCommandService.setMockResponse('yarn build.dev', {\n\t\t\tcode: 0,\n\t\t\tcallback: () => {\n\t\t\t\twasBuildDevCalled = true\n\t\t\t},\n\t\t})\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTrue(wasCleanBuildCalled)\n\t\tassert.isTrue(wasBuildDevCalled)\n\t}\n\n\t@test()\n\tprotected static async writesViewPlugin() {\n\t\tawait this.FeatureFixture().installCachedFeatures('views')\n\n\t\tconst plugin = this.getViewsPluginPath()\n\t\tassert.isTrue(diskUtil.doesFileExist(plugin))\n\n\t\tdiskUtil.deleteFile(plugin)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(plugin))\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isTrue(diskUtil.doesFileExist(plugin))\n\t}\n\n\t@test('sync with errors installed')\n\t@test('sync with errors not installed', false)\n\tprotected static async upgradeSyncsErrors(isInstalled = true) {\n\t\tawait this.FeatureFixture().installCachedFeatures(\n\t\t\tisInstalled ? 'errors' : 'schemas'\n\t\t)\n\n\t\tlet wasHit = false\n\n\t\tSyncAction.prototype.execute = async () => {\n\t\t\twasHit = true\n\t\t\treturn {}\n\t\t}\n\n\t\tthis.disableCleanBuildAndYarnAdd()\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isEqual(wasHit, isInstalled)\n\t}\n\n\t@test()\n\tprotected static async resetsErrorPluginInSkill() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst { plugin, expectedContents } = this.destroyErrorPlugin()\n\n\t\tawait this.disableCleanBuildAndYarnAdd()\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tawait promise\n\n\t\tconst actualContents = diskUtil.readFile(plugin)\n\n\t\tassert.isEqual(actualContents, expectedContents)\n\t}\n\n\t@test()\n\tprotected static async resetsErrorPluginWhenErrorInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('errors')\n\n\t\tawait this.Action('error', 'create').execute({\n\t\t\tnameReadable: 'Test pass',\n\t\t\tnameCamel: 'testPass',\n\t\t})\n\n\t\tconst { plugin, expectedContents } = this.destroyErrorPlugin()\n\n\t\tthis.disableCleanAndBuild()\n\n\t\tconst results = await this.Action('node', 'upgrade').execute({\n\t\t\tupgradeMode: 'askForChanged',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\t\tconst actualContents = diskUtil.readFile(plugin)\n\n\t\tassert.isEqual(actualContents, expectedContents)\n\t}\n\n\tprivate static destroyErrorPlugin() {\n\t\tconst plugin = this.resolveHashSprucePath('errors', 'options.types.ts')\n\t\tconst expectedContents = diskUtil.readFile(plugin)\n\n\t\tdiskUtil.writeFile(plugin, 'waka')\n\t\treturn { plugin, expectedContents }\n\t}\n\n\tprivate static getViewsPluginPath() {\n\t\treturn this.resolveHashSprucePath('features', 'view.plugin.ts')\n\t}\n\n\tprotected static assertViewPluginNotWritten() {\n\t\tassert.isFalse(diskUtil.doesFileExist(this.getViewsPluginPath()))\n\t}\n\n\tprivate static disableCleanBuildAndYarnAdd() {\n\t\tthis.disableCleanAndBuild()\n\n\t\tCommandService.setMockResponse(/yarn.*?add/gis, {\n\t\t\tcode: 0,\n\t\t})\n\t}\n\n\tprivate static disableCleanAndBuild() {\n\t\tCommandService.setMockResponse('yarn clean.build', {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tCommandService.setMockResponse('yarn build.dev', {\n\t\t\tcode: 0,\n\t\t})\n\t}\n}\n"],"file":"UpgradingASkill2.test.js"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import '@sprucelabs/spruce-store-plugin';
|
|
2
|
-
import AbstractSkillTest from '
|
|
2
|
+
import AbstractSkillTest from '../../../tests/AbstractSkillTest';
|
|
3
3
|
export default class CreatingDataStoresTest extends AbstractSkillTest {
|
|
4
4
|
protected static skillCacheKey: string;
|
|
5
5
|
protected static hasCreateStoreAction(): Promise<void>;
|
|
6
6
|
protected static getsNoStoresBackFromHealthCheck(): Promise<void>;
|
|
7
7
|
protected static generatesValidStoreFile(): Promise<void>;
|
|
8
|
+
protected static generatesAMapFile(): Promise<void>;
|
|
8
9
|
protected static getsOneStoresBackFromHealthCheck(): Promise<void>;
|
|
9
10
|
protected static canGenerateASecondStoreFile(): Promise<void>;
|
|
10
11
|
protected static getsSecondStoresBackFromHealthCheck(): Promise<void>;
|