@sprucelabs/spruce-cli 15.2.17 → 15.2.18

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 (50) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/build/.spruce/events/events.contract.d.ts +102 -4
  3. package/build/.spruce/events/events.contract.js +3 -1
  4. package/build/.spruce/events/events.contract.js.map +1 -1
  5. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.d.ts +15 -0
  6. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js +18 -3
  7. package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
  8. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.d.ts +21 -4
  9. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js +24 -7
  10. package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
  11. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.d.ts +18 -1
  12. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js +21 -4
  13. package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
  14. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.d.ts +39 -0
  15. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js +53 -0
  16. package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -0
  17. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.d.ts +11 -0
  18. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js +13 -2
  19. package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
  20. package/build/__tests__/behavioral/skill/UpgradingASkill.test.d.ts +0 -7
  21. package/build/__tests__/behavioral/skill/UpgradingASkill.test.js +38 -403
  22. package/build/__tests__/behavioral/skill/UpgradingASkill.test.js.map +1 -1
  23. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.d.ts +7 -15
  24. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js +218 -341
  25. package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js.map +1 -1
  26. package/build/__tests__/behavioral/skill/UpgradingASkill3.test.d.ts +16 -5
  27. package/build/__tests__/behavioral/skill/UpgradingASkill3.test.js +416 -141
  28. package/build/__tests__/behavioral/skill/UpgradingASkill3.test.js.map +1 -1
  29. package/build/__tests__/behavioral/skill/UpgradingASkill4.test.d.ts +5 -8
  30. package/build/__tests__/behavioral/skill/UpgradingASkill4.test.js +147 -205
  31. package/build/__tests__/behavioral/skill/UpgradingASkill4.test.js.map +1 -1
  32. package/build/__tests__/behavioral/skill/UpgradingASkill5.test.d.ts +11 -0
  33. package/build/__tests__/behavioral/skill/UpgradingASkill5.test.js +357 -0
  34. package/build/__tests__/behavioral/skill/UpgradingASkill5.test.js.map +1 -0
  35. package/build/__tests__/behavioral/tests/CreatingATest.test.d.ts +3 -0
  36. package/build/__tests__/behavioral/tests/CreatingATest.test.js +142 -45
  37. package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
  38. package/package.json +34 -34
  39. package/src/.spruce/events/events.contract.ts +6 -0
  40. package/src/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.ts +15 -0
  41. package/src/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.ts +21 -4
  42. package/src/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.ts +18 -1
  43. package/src/.spruce/events/heartwood/listViews.v2021_02_11.contract.ts +47 -0
  44. package/src/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.ts +11 -0
  45. package/src/__tests__/behavioral/skill/UpgradingASkill.test.ts +0 -184
  46. package/src/__tests__/behavioral/skill/UpgradingASkill2.test.ts +120 -157
  47. package/src/__tests__/behavioral/skill/UpgradingASkill3.test.ts +184 -78
  48. package/src/__tests__/behavioral/skill/UpgradingASkill4.test.ts +90 -91
  49. package/src/__tests__/behavioral/skill/UpgradingASkill5.test.ts +128 -0
  50. package/src/__tests__/behavioral/tests/CreatingATest.test.ts +29 -12
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/__tests__/behavioral/skill/UpgradingASkill3.test.ts"],"names":["UpgradingASkillTest","CommandService","setMockResponse","RegExp","code","FeatureFixture","installCachedFeatures","features","Service","process","cwd","get","pkg","checks","feat","nodeModule","path","resolveHashSprucePath","plugin","diskUtil","doesFileExist","undefined","push","check","unset","deleteFile","Action","execute","assert","isTruthy","isTrue","cli","skillFeature","getFeature","scripts","isEqual","assertSandboxListenerNotWritten","set","value","promise","waitForInput","last","ui","getLastInvocation","command","sendInput","isNotEqual","listeners","resolvePath","doesDirExist","matches","fsUtil","readdirSync","isLength","AbstractCliTest"],"mappings":"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","sourcesContent":["import fsUtil from 'fs'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../../services/CommandService'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\n\nexport default class UpgradingASkillTest extends AbstractCliTest {\n\tprotected static async beforeEach() {\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 restoresMissingPackagesAndPlugins() {\n\t\tawait this.FeatureFixture().installCachedFeatures('views')\n\n\t\tconst features = this.Service('pkg', process.cwd()).get(\n\t\t\t'testSkillCache.everything'\n\t\t)\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst checks: { nodeModule?: string; plugin?: string }[] = []\n\n\t\tfor (const feat of features) {\n\t\t\tconst { code } = feat\n\t\t\tconst nodeModule = `@sprucelabs/spruce-${code}-plugin`\n\t\t\tconst path = this.resolveHashSprucePath('features', `${code}.plugin.ts`)\n\t\t\tconst plugin = diskUtil.doesFileExist(path) ? path : undefined\n\n\t\t\tchecks.push({\n\t\t\t\tnodeModule: pkg.get(['dependencies', nodeModule])\n\t\t\t\t\t? nodeModule\n\t\t\t\t\t: undefined,\n\t\t\t\tplugin,\n\t\t\t})\n\t\t}\n\n\t\tfor (const check of checks) {\n\t\t\tif (check.nodeModule) {\n\t\t\t\tpkg.unset(['dependencies', check.nodeModule])\n\t\t\t}\n\t\t\tif (check.plugin) {\n\t\t\t\tdiskUtil.deleteFile(check.plugin)\n\t\t\t}\n\t\t}\n\n\t\tCommandService.setMockResponse(/yarn clean/, { code: 0 })\n\t\tCommandService.setMockResponse(/yarn build.dev/, { code: 0 })\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tfor (const check of checks) {\n\t\t\tif (check.nodeModule) {\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tpkg.get(['dependencies', check.nodeModule]),\n\t\t\t\t\t`${check.nodeModule} was not added back as a dependencies.`\n\t\t\t\t)\n\t\t\t}\n\t\t\tif (check.plugin) {\n\t\t\t\tassert.isTrue(\n\t\t\t\t\tdiskUtil.doesFileExist(check.plugin),\n\t\t\t\t\t`${check.plugin} was not rewritten.`\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async doesNotAskIfNewScriptsAreAddedToSkillFeature() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\n\t\tconst skillFeature = cli.getFeature('skill')\n\t\t//@ts-ignore\n\t\tskillFeature.scripts['taco'] = 'bravo'\n\n\t\tawait this.Action('node', 'upgrade').execute({})\n\n\t\tassert.isEqual(pkg.get(['scripts', 'taco']), 'bravo')\n\n\t\tthis.assertSandboxListenerNotWritten()\n\t}\n\n\t@test()\n\tprotected static async canOverwriteMultipleChangedScript() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: ['scripts', 'build.dev'], value: 'taco' })\n\t\tpkg.set({ path: ['scripts', 'watch.build.dev'], value: 'taco' })\n\n\t\tconst promise = this.Action('node', 'upgrade').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet last = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tlast = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(last.command, 'prompt')\n\t\tawait this.ui.sendInput('overwrite')\n\n\t\tawait promise\n\n\t\tassert.isNotEqual(pkg.get(['scripts', 'build.dev']), 'taco')\n\t\tassert.isNotEqual(pkg.get(['scripts', 'watch.build.dev']), 'taco')\n\t}\n\n\tprotected static assertSandboxListenerNotWritten() {\n\t\tconst listeners = this.resolvePath('src', 'listeners')\n\t\tif (!diskUtil.doesDirExist(listeners)) {\n\t\t\treturn\n\t\t}\n\t\tconst matches = fsUtil.readdirSync(listeners)\n\t\tassert.isLength(\n\t\t\tmatches,\n\t\t\t0,\n\t\t\t'A sandbox listeners was written and it should not have been.'\n\t\t)\n\t}\n}\n"],"file":"UpgradingASkill3.test.js"}
1
+ {"version":3,"sources":["../../../../src/__tests__/behavioral/skill/UpgradingASkill3.test.ts"],"names":["UpgradingASkill3Test","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 UpgradingASkill3Test 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":"UpgradingASkill3.test.js"}
@@ -1,11 +1,8 @@
1
1
  import AbstractCliTest from '../../../tests/AbstractCliTest';
2
2
  export default class UpgradingASkill4Test extends AbstractCliTest {
3
- protected static upgradeResetsEventCache(): Promise<void>;
4
- protected static doesNotResetEventCacheWithOtherAction(): Promise<void>;
5
- protected static shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists(shouldCreateSchema: boolean): Promise<void>;
6
- protected static modulesMovedFromDevToProdDependenciesStayThere(): Promise<void>;
7
- private static moveDependencyToDev;
8
- private static moveDependencyToProd;
9
- private static installSetListenerCacheAndBlockExecute;
10
- private static Settings;
3
+ protected static beforeEach(): Promise<void>;
4
+ protected static restoresMissingPackagesAndPlugins(): Promise<void>;
5
+ protected static doesNotAskIfNewScriptsAreAddedToSkillFeature(): Promise<void>;
6
+ protected static canOverwriteMultipleChangedScript(): Promise<void>;
7
+ protected static assertSandboxListenerNotWritten(): void;
11
8
  }
@@ -15,6 +15,8 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
15
15
 
16
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
17
 
18
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
19
+
18
20
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
21
 
20
22
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
@@ -23,19 +25,29 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
23
25
 
24
26
  var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
25
27
 
28
+ var _fs = _interopRequireDefault(require("fs"));
29
+
30
+ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
31
+
26
32
  var _test = require("@sprucelabs/test");
27
33
 
28
34
  var _CommandService = _interopRequireDefault(require("../../../services/CommandService"));
29
35
 
30
36
  var _AbstractCliTest2 = _interopRequireDefault(require("../../../tests/AbstractCliTest"));
31
37
 
32
- var _dec, _dec2, _dec3, _dec4, _dec5, _class;
38
+ var _dec, _dec2, _dec3, _class;
39
+
40
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
41
+
42
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
43
+
44
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
33
45
 
34
46
  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
47
 
36
48
  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
49
 
38
- var UpgradingASkill4Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)('syncs schemas when schemas installed and schemas folder exists', true), _dec4 = (0, _test.test)('does not syncs schemas when schemas installed but schemas folder does not exist', false), _dec5 = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
50
+ var UpgradingASkill4Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), (_class = /*#__PURE__*/function (_AbstractCliTest) {
39
51
  (0, _inherits2["default"])(UpgradingASkill4Test, _AbstractCliTest);
40
52
 
41
53
  var _super = _createSuper(UpgradingASkill4Test);
@@ -46,31 +58,22 @@ var UpgradingASkill4Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
46
58
  }
47
59
 
48
60
  (0, _createClass2["default"])(UpgradingASkill4Test, null, [{
49
- key: "upgradeResetsEventCache",
61
+ key: "beforeEach",
50
62
  value: function () {
51
- var _upgradeResetsEventCache = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
52
- var _this = this;
53
-
54
- var value;
63
+ var _beforeEach = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
55
64
  return _regenerator["default"].wrap(function _callee$(_context) {
56
65
  while (1) {
57
66
  switch (_context.prev = _context.next) {
58
67
  case 0:
59
68
  _context.next = 2;
60
- return this.installSetListenerCacheAndBlockExecute();
69
+ return (0, _get2["default"])((0, _getPrototypeOf2["default"])(UpgradingASkill4Test), "beforeEach", this).call(this);
61
70
 
62
71
  case 2:
63
- _context.next = 4;
64
- return _test.assert.doesThrowAsync(function () {
65
- return _this.Action('node', 'upgrade').execute({});
72
+ _CommandService["default"].setMockResponse(new RegExp(/yarn rebuild/gi), {
73
+ code: 0
66
74
  });
67
75
 
68
- case 4:
69
- value = this.Settings().getListenerCache();
70
-
71
- _test.assert.isFalsy(value);
72
-
73
- case 6:
76
+ case 3:
74
77
  case "end":
75
78
  return _context.stop();
76
79
  }
@@ -78,40 +81,86 @@ var UpgradingASkill4Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
78
81
  }, _callee, this);
79
82
  }));
80
83
 
81
- function upgradeResetsEventCache() {
82
- return _upgradeResetsEventCache.apply(this, arguments);
84
+ function beforeEach() {
85
+ return _beforeEach.apply(this, arguments);
83
86
  }
84
87
 
85
- return upgradeResetsEventCache;
88
+ return beforeEach;
86
89
  }()
87
90
  }, {
88
- key: "doesNotResetEventCacheWithOtherAction",
91
+ key: "restoresMissingPackagesAndPlugins",
89
92
  value: function () {
90
- var _doesNotResetEventCacheWithOtherAction = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
91
- var _this2 = this;
93
+ var _restoresMissingPackagesAndPlugins = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
94
+ var features, pkg, checks, _iterator, _step, feat, code, nodeModule, path, plugin, _i, _checks, check, _i2, _checks2, _check;
92
95
 
93
- var value;
94
96
  return _regenerator["default"].wrap(function _callee2$(_context2) {
95
97
  while (1) {
96
98
  switch (_context2.prev = _context2.next) {
97
99
  case 0:
98
100
  _context2.next = 2;
99
- return this.installSetListenerCacheAndBlockExecute();
101
+ return this.FeatureFixture().installCachedFeatures('views');
100
102
 
101
103
  case 2:
102
- _context2.next = 4;
103
- return _test.assert.doesThrowAsync(function () {
104
- return _this2.Action('schema', 'sync').execute({});
105
- });
104
+ features = this.Service('pkg', process.cwd()).get('testSkillCache.everything');
105
+ pkg = this.Service('pkg');
106
+ checks = [];
107
+ _iterator = _createForOfIteratorHelper(features);
108
+
109
+ try {
110
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
111
+ feat = _step.value;
112
+ code = feat.code;
113
+ nodeModule = "@sprucelabs/spruce-".concat(code, "-plugin");
114
+ path = this.resolveHashSprucePath('features', "".concat(code, ".plugin.ts"));
115
+ plugin = _spruceSkillUtils.diskUtil.doesFileExist(path) ? path : undefined;
116
+ checks.push({
117
+ nodeModule: pkg.get(['dependencies', nodeModule]) ? nodeModule : undefined,
118
+ plugin: plugin
119
+ });
120
+ }
121
+ } catch (err) {
122
+ _iterator.e(err);
123
+ } finally {
124
+ _iterator.f();
125
+ }
106
126
 
107
- case 4:
108
- value = this.Settings().getListenerCache();
127
+ for (_i = 0, _checks = checks; _i < _checks.length; _i++) {
128
+ check = _checks[_i];
129
+
130
+ if (check.nodeModule) {
131
+ pkg.unset(['dependencies', check.nodeModule]);
132
+ }
133
+
134
+ if (check.plugin) {
135
+ _spruceSkillUtils.diskUtil.deleteFile(check.plugin);
136
+ }
137
+ }
109
138
 
110
- _test.assert.isEqualDeep(value, {
111
- shouldBeDeleted: true
139
+ _CommandService["default"].setMockResponse(/yarn clean/, {
140
+ code: 0
141
+ });
142
+
143
+ _CommandService["default"].setMockResponse(/yarn build.dev/, {
144
+ code: 0
112
145
  });
113
146
 
114
- case 6:
147
+ _context2.next = 12;
148
+ return this.Action('node', 'upgrade').execute({});
149
+
150
+ case 12:
151
+ for (_i2 = 0, _checks2 = checks; _i2 < _checks2.length; _i2++) {
152
+ _check = _checks2[_i2];
153
+
154
+ if (_check.nodeModule) {
155
+ _test.assert.isTruthy(pkg.get(['dependencies', _check.nodeModule]), "".concat(_check.nodeModule, " was not added back as a dependencies."));
156
+ }
157
+
158
+ if (_check.plugin) {
159
+ _test.assert.isTrue(_spruceSkillUtils.diskUtil.doesFileExist(_check.plugin), "".concat(_check.plugin, " was not rewritten."));
160
+ }
161
+ }
162
+
163
+ case 13:
115
164
  case "end":
116
165
  return _context2.stop();
117
166
  }
@@ -119,62 +168,39 @@ var UpgradingASkill4Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
119
168
  }, _callee2, this);
120
169
  }));
121
170
 
122
- function doesNotResetEventCacheWithOtherAction() {
123
- return _doesNotResetEventCacheWithOtherAction.apply(this, arguments);
171
+ function restoresMissingPackagesAndPlugins() {
172
+ return _restoresMissingPackagesAndPlugins.apply(this, arguments);
124
173
  }
125
174
 
126
- return doesNotResetEventCacheWithOtherAction;
175
+ return restoresMissingPackagesAndPlugins;
127
176
  }()
128
177
  }, {
129
- key: "shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists",
178
+ key: "doesNotAskIfNewScriptsAreAddedToSkillFeature",
130
179
  value: function () {
131
- var _shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(shouldCreateSchema) {
132
- var emitter, wasHit;
180
+ var _doesNotAskIfNewScriptsAreAddedToSkillFeature = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3() {
181
+ var cli, pkg, skillFeature;
133
182
  return _regenerator["default"].wrap(function _callee3$(_context3) {
134
183
  while (1) {
135
184
  switch (_context3.prev = _context3.next) {
136
185
  case 0:
137
186
  _context3.next = 2;
138
- return this.FeatureFixture().installCachedFeatures('schemas');
187
+ return this.FeatureFixture().installCachedFeatures('skills');
139
188
 
140
189
  case 2:
141
- _CommandService["default"].setMockResponse(new RegExp(/yarn/gi), {
142
- code: 0
143
- });
144
-
145
- if (!shouldCreateSchema) {
146
- _context3.next = 6;
147
- break;
148
- }
190
+ cli = _context3.sent;
191
+ pkg = this.Service('pkg');
192
+ skillFeature = cli.getFeature('skill'); //@ts-ignore
149
193
 
150
- _context3.next = 6;
151
- return this.Action('schema', 'create').execute({
152
- nameReadable: 'Test schema!',
153
- namePascal: 'AnotherTest',
154
- nameCamel: 'anotherTest',
155
- description: 'this is so great!'
156
- });
194
+ skillFeature.scripts['taco'] = 'bravo';
195
+ _context3.next = 8;
196
+ return this.Action('node', 'upgrade').execute({});
157
197
 
158
- case 6:
159
- emitter = this.getEmitter();
160
- wasHit = false;
161
- _context3.next = 10;
162
- return emitter.on('feature.will-execute', function (payload) {
163
- if (payload.featureCode === 'schema' && payload.actionCode === 'sync') {
164
- wasHit = true;
165
- }
198
+ case 8:
199
+ _test.assert.isEqual(pkg.get(['scripts', 'taco']), 'bravo');
166
200
 
167
- return {};
168
- });
201
+ this.assertSandboxListenerNotWritten();
169
202
 
170
203
  case 10:
171
- _context3.next = 12;
172
- return this.Action('node', 'upgrade').execute({});
173
-
174
- case 12:
175
- _test.assert.isTrue(wasHit === shouldCreateSchema);
176
-
177
- case 13:
178
204
  case "end":
179
205
  return _context3.stop();
180
206
  }
@@ -182,17 +208,17 @@ var UpgradingASkill4Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
182
208
  }, _callee3, this);
183
209
  }));
184
210
 
185
- function shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists(_x) {
186
- return _shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists.apply(this, arguments);
211
+ function doesNotAskIfNewScriptsAreAddedToSkillFeature() {
212
+ return _doesNotAskIfNewScriptsAreAddedToSkillFeature.apply(this, arguments);
187
213
  }
188
214
 
189
- return shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists;
215
+ return doesNotAskIfNewScriptsAreAddedToSkillFeature;
190
216
  }()
191
217
  }, {
192
- key: "modulesMovedFromDevToProdDependenciesStayThere",
218
+ key: "canOverwriteMultipleChangedScript",
193
219
  value: function () {
194
- var _modulesMovedFromDevToProdDependenciesStayThere = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
195
- var wasMovedBackToDev, wasMovedBackToProd;
220
+ var _canOverwriteMultipleChangedScript = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4() {
221
+ var pkg, promise, last;
196
222
  return _regenerator["default"].wrap(function _callee4$(_context4) {
197
223
  while (1) {
198
224
  switch (_context4.prev = _context4.next) {
@@ -201,157 +227,73 @@ var UpgradingASkill4Test = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(),
201
227
  return this.FeatureFixture().installCachedFeatures('skills');
202
228
 
203
229
  case 2:
204
- _context4.next = 4;
205
- return this.moveDependencyToProd('@sprucelabs/resolve-path-aliases');
206
-
207
- case 4:
208
- _context4.next = 6;
209
- return this.moveDependencyToDev('@sprucelabs/error');
210
-
211
- case 6:
212
- wasMovedBackToDev = false;
213
- wasMovedBackToProd = false;
214
-
215
- _CommandService["default"].setMockResponse(new RegExp(/yarn/gi), {
216
- code: 0,
217
- callback: function callback(_, args) {
218
- if (args.indexOf('-D') > -1 && args.indexOf('@sprucelabs/resolve-path-aliases') > -1) {
219
- wasMovedBackToDev = true;
220
- } else if (args.indexOf('-D') === -1 && args.indexOf('@sprucelabs/error') > -1) {
221
- wasMovedBackToProd = true;
222
- }
223
- }
230
+ pkg = this.Service('pkg');
231
+ pkg.set({
232
+ path: ['scripts', 'build.dev'],
233
+ value: 'taco'
224
234
  });
235
+ pkg.set({
236
+ path: ['scripts', 'watch.build.dev'],
237
+ value: 'taco'
238
+ });
239
+ promise = this.Action('node', 'upgrade').execute({});
240
+ _context4.next = 8;
241
+ return this.waitForInput();
225
242
 
226
- _context4.next = 11;
227
- return this.Action('node', 'upgrade').execute({});
243
+ case 8:
244
+ last = this.ui.getLastInvocation();
228
245
 
229
- case 11:
230
- _test.assert.isFalse(wasMovedBackToDev, 'dependency moved back to dev');
246
+ _test.assert.isEqual(last.command, 'prompt');
231
247
 
232
- _test.assert.isFalse(wasMovedBackToProd, 'dependency moved back to prod');
248
+ _context4.next = 12;
249
+ return this.ui.sendInput('overwrite');
233
250
 
234
- case 13:
235
- case "end":
236
- return _context4.stop();
237
- }
238
- }
239
- }, _callee4, this);
240
- }));
241
-
242
- function modulesMovedFromDevToProdDependenciesStayThere() {
243
- return _modulesMovedFromDevToProdDependenciesStayThere.apply(this, arguments);
244
- }
245
-
246
- return modulesMovedFromDevToProdDependenciesStayThere;
247
- }()
248
- }, {
249
- key: "moveDependencyToDev",
250
- value: function () {
251
- var _moveDependencyToDev = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(name) {
252
- var pkg;
253
- return _regenerator["default"].wrap(function _callee5$(_context5) {
254
- while (1) {
255
- switch (_context5.prev = _context5.next) {
256
- case 0:
257
- pkg = this.Service('pkg');
258
- _context5.next = 3;
259
- return pkg.uninstall(name);
251
+ case 12:
252
+ last = this.ui.getLastInvocation();
260
253
 
261
- case 3:
262
- _context5.next = 5;
263
- return pkg.install(name, {
264
- isDev: true
265
- });
254
+ _test.assert.isEqual(last.command, 'prompt');
266
255
 
267
- case 5:
268
- case "end":
269
- return _context5.stop();
270
- }
271
- }
272
- }, _callee5, this);
273
- }));
256
+ _context4.next = 16;
257
+ return this.ui.sendInput('overwrite');
274
258
 
275
- function moveDependencyToDev(_x2) {
276
- return _moveDependencyToDev.apply(this, arguments);
277
- }
259
+ case 16:
260
+ _context4.next = 18;
261
+ return promise;
278
262
 
279
- return moveDependencyToDev;
280
- }()
281
- }, {
282
- key: "moveDependencyToProd",
283
- value: function () {
284
- var _moveDependencyToProd = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6(name) {
285
- var pkg;
286
- return _regenerator["default"].wrap(function _callee6$(_context6) {
287
- while (1) {
288
- switch (_context6.prev = _context6.next) {
289
- case 0:
290
- pkg = this.Service('pkg');
291
- _context6.next = 3;
292
- return pkg.uninstall(name);
263
+ case 18:
264
+ _test.assert.isNotEqual(pkg.get(['scripts', 'build.dev']), 'taco');
293
265
 
294
- case 3:
295
- _context6.next = 5;
296
- return pkg.install(name);
266
+ _test.assert.isNotEqual(pkg.get(['scripts', 'watch.build.dev']), 'taco');
297
267
 
298
- case 5:
268
+ case 20:
299
269
  case "end":
300
- return _context6.stop();
270
+ return _context4.stop();
301
271
  }
302
272
  }
303
- }, _callee6, this);
273
+ }, _callee4, this);
304
274
  }));
305
275
 
306
- function moveDependencyToProd(_x3) {
307
- return _moveDependencyToProd.apply(this, arguments);
276
+ function canOverwriteMultipleChangedScript() {
277
+ return _canOverwriteMultipleChangedScript.apply(this, arguments);
308
278
  }
309
279
 
310
- return moveDependencyToProd;
280
+ return canOverwriteMultipleChangedScript;
311
281
  }()
312
282
  }, {
313
- key: "installSetListenerCacheAndBlockExecute",
314
- value: function () {
315
- var _installSetListenerCacheAndBlockExecute = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee7() {
316
- var settings, emitter;
317
- return _regenerator["default"].wrap(function _callee7$(_context7) {
318
- while (1) {
319
- switch (_context7.prev = _context7.next) {
320
- case 0:
321
- _context7.next = 2;
322
- return this.FeatureFixture().installCachedFeatures('events');
283
+ key: "assertSandboxListenerNotWritten",
284
+ value: function assertSandboxListenerNotWritten() {
285
+ var listeners = this.resolvePath('src', 'listeners');
323
286
 
324
- case 2:
325
- settings = this.Settings();
326
- settings.setListenerCache({
327
- shouldBeDeleted: true
328
- });
329
- emitter = this.getEmitter();
330
- void emitter.on('feature.will-execute', function () {
331
- throw new Error('Stop!');
332
- });
333
-
334
- case 6:
335
- case "end":
336
- return _context7.stop();
337
- }
338
- }
339
- }, _callee7, this);
340
- }));
341
-
342
- function installSetListenerCacheAndBlockExecute() {
343
- return _installSetListenerCacheAndBlockExecute.apply(this, arguments);
287
+ if (!_spruceSkillUtils.diskUtil.doesDirExist(listeners)) {
288
+ return;
344
289
  }
345
290
 
346
- return installSetListenerCacheAndBlockExecute;
347
- }()
348
- }, {
349
- key: "Settings",
350
- value: function Settings() {
351
- return this.Service('eventSettings');
291
+ var matches = _fs["default"].readdirSync(listeners);
292
+
293
+ _test.assert.isLength(matches, 0, 'A sandbox listeners was written and it should not have been.');
352
294
  }
353
295
  }]);
354
296
  return UpgradingASkill4Test;
355
- }(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "upgradeResetsEventCache", [_dec], Object.getOwnPropertyDescriptor(_class, "upgradeResetsEventCache"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "doesNotResetEventCacheWithOtherAction", [_dec2], Object.getOwnPropertyDescriptor(_class, "doesNotResetEventCacheWithOtherAction"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists", [_dec3, _dec4], Object.getOwnPropertyDescriptor(_class, "shouldSyncSchemasIfSchemasIsInstalledAndSchemaFolderExists"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "modulesMovedFromDevToProdDependenciesStayThere", [_dec5], Object.getOwnPropertyDescriptor(_class, "modulesMovedFromDevToProdDependenciesStayThere"), _class)), _class));
297
+ }(_AbstractCliTest2["default"]), ((0, _applyDecoratedDescriptor2["default"])(_class, "restoresMissingPackagesAndPlugins", [_dec], Object.getOwnPropertyDescriptor(_class, "restoresMissingPackagesAndPlugins"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "doesNotAskIfNewScriptsAreAddedToSkillFeature", [_dec2], Object.getOwnPropertyDescriptor(_class, "doesNotAskIfNewScriptsAreAddedToSkillFeature"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "canOverwriteMultipleChangedScript", [_dec3], Object.getOwnPropertyDescriptor(_class, "canOverwriteMultipleChangedScript"), _class)), _class));
356
298
  exports["default"] = UpgradingASkill4Test;
357
299
  //# sourceMappingURL=UpgradingASkill4.test.js.map