@sprucelabs/spruce-cli 14.28.3 → 14.28.7
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 +32 -0
- package/build/__tests__/behavioral/BootingWithBadFiles.test.d.ts +2 -0
- package/build/__tests__/behavioral/BootingWithBadFiles.test.js +84 -17
- 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 +31 -31
- package/src/__tests__/behavioral/BootingWithBadFiles.test.ts +17 -2
- 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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/behavioral/CreatingADataStore.test.ts"],"names":["CreatingDataStoresTest","assert","isFunction","Action","execute","cli","checkHealth","isRunningLocally","health","isFalsy","skill","errors","isTruthy","store","isArray","stores","isLength","nameReadable","nameReadablePlural","namePascal","results","path","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","isEqual","name","errorAssertUtil","assertError","storeContents","diskUtil","readFile","replace","writeFile","testFile","resolveTestPath","testContents","dest","resolvePath","isFalse","doesFileExist","getAbstractTestPath","CommandService","setMockResponse","code","storesFile","resolveHashSprucePath","deleteFile","isTrue","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport '@sprucelabs/spruce-store-plugin'\nimport CommandService from '../../services/CommandService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class CreatingDataStoresTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'stores'\n\n\t@test()\n\tprotected static async hasCreateStoreAction() {\n\t\tassert.isFunction(this.Action('store', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async getsNoStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ isRunningLocally: true })\n\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.store)\n\t\tassert.isFalsy(health.store.errors)\n\t\tassert.isArray(health.store.stores)\n\t\tassert.isLength(health.store.stores, 0)\n\t}\n\n\t@test()\n\tprotected static async generatesValidStoreFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Person',\n\t\t\tnameReadablePlural: 'People',\n\t\t\tnamePascal: 'Person',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'People.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(path)\n\t}\n\n\t@test()\n\tprotected static async getsOneStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ isRunningLocally: true })\n\t\tassert.isTruthy(health.store)\n\t\tassert.isFalsy(health.store.errors)\n\t\tassert.isLength(health.store.stores, 1)\n\t\tassert.isEqual(health.store.stores[0].name, 'People')\n\t}\n\n\t@test()\n\tprotected static async canGenerateASecondStoreFile() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Bids.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(path)\n\t}\n\n\t@test()\n\tprotected static async getsSecondStoresBackFromHealthCheck() {\n\t\tconst health = await this.cli.checkHealth({ isRunningLocally: true })\n\n\t\tassert.isTruthy(health.store)\n\t\tassert.isFalsy(health.store.errors)\n\t\tassert.isLength(health.store.stores, 2)\n\t\tassert.isEqual(health.store.stores[0].name, 'Bids')\n\t\tassert.isEqual(health.store.stores[1].name, 'People')\n\t}\n\n\t@test()\n\tprotected static async errorsWhenGeneratingAStoreWithTheSameName() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\terrorAssertUtil.assertError(results.errors[0], 'STORE_EXISTS')\n\t}\n\n\t@test()\n\tprotected static async storeFactoryAndStoresAreTyped() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Product',\n\t\t\tnameReadablePlural: 'Products',\n\t\t\tnamePascal: 'Product',\n\t\t})\n\n\t\tconst path = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Products.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst storeContents = diskUtil\n\t\t\t.readFile(path)\n\t\t\t.replace(\n\t\t\t\t'type ProductsStoreOptions = UniversalStoreOptions',\n\t\t\t\t'type ProductsStoreOptions = UniversalStoreOptions & {hello: string}'\n\t\t\t)\n\n\t\tdiskUtil.writeFile(path, storeContents)\n\n\t\tconst testFile = this.resolveTestPath('store-test.ts.hbs')\n\t\tconst testContents = diskUtil.readFile(testFile)\n\n\t\tconst dest = this.resolvePath('src', 'test.ts')\n\t\tdiskUtil.writeFile(dest, testContents)\n\n\t\tawait this.Service('typeChecker').check(dest)\n\t}\n\n\t@test()\n\tprotected static async doesNotCreateAbstractTestFileBecauseTestIsNotInstalled() {\n\t\tassert.isFalse(\n\t\t\tdiskUtil.doesFileExist(CreatingDataStoresTest.getAbstractTestPath())\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async upgradeRestoresDataStoreTypes() {\n\t\tCommandService.setMockResponse('yarn rebuild', {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tCommandService.setMockResponse(/yarn add/gis, {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tconst storesFile = this.resolveHashSprucePath('stores/stores.types.ts')\n\t\tdiskUtil.deleteFile(storesFile)\n\t\tawait this.Action('node', 'upgrade').execute({})\n\t\tassert.isTrue(diskUtil.doesFileExist(storesFile))\n\t}\n\n\tprivate static getAbstractTestPath(): string {\n\t\treturn this.resolvePath('src', 'tests', 'AbstractDataStoreTest.ts')\n\t}\n}\n"],"file":"CreatingADataStore.test.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/behavioral/KeepingDataStoresInSync.test.ts"],"names":["KeepingDataStoresInSyncTest","badStoreDest","resolvePath","diskUtil","deleteFile","assert","isFunction","Action","execute","syncStores","results","isLength","files","writeFile","isArray","errors","errorAssertUtil","assertError","file","nameReadable","nameReadablePlural","namePascal","typesFile","testUtil","assertFileByNameInGeneratedFiles","Service","check","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,2B,WAanB,iB,UAKA,iB,UAWA,iB,UAaA,iB;;;;;;;;;;;;;qGAvCD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAEC,qBAAKC,YAAL,GAAoB,KAAKC,WAAL,CAAiB,yBAAjB,CAApB;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;sGAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAECC,2CAASC,UAAT,CAAoB,KAAKH,YAAzB;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yGAKA;AAAA;AAAA;AAAA;AAAA;AAECI,6BAAOC,UAAP,CAAkB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA/C;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAKC,UAAL,EAFvB;;AAAA;AAEOC,gBAAAA,OAFP;;AAICL,6BAAOM,QAAP,CAAgBD,OAAO,CAACE,KAAxB,EAA+B,CAA/B;;AAJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;sGAOA;AAAA;AAAA;AAAA;AAAA;AAAA,kDACQ,KAAKL,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CADR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAECL,2CAASU,SAAT,CAAmB,KAAKZ,YAAxB,EAAsC,4BAAtC;;AAFD;AAAA,uBAIuB,KAAKQ,UAAL,EAJvB;;AAAA;AAIOC,gBAAAA,OAJP;;AAKCL,6BAAOS,OAAP,CAAeJ,OAAO,CAACK,MAAvB;;AACAV,6BAAOM,QAAP,CAAgBD,OAAO,CAACK,MAAxB,EAAgC,CAAhC;;AAEAC,2CAAgBC,WAAhB,CAA4BP,OAAO,CAACK,MAAR,CAAe,CAAf,CAA5B,EAA+C,kBAA/C,EAAmE;AAClEG,kBAAAA,IAAI,EAAE;AAD4D,iBAAnE;;AARD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kHAaA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKX,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5CW,kBAAAA,YAAY,EAAE,KAD8B;AAE5CC,kBAAAA,kBAAkB,EAAE,MAFwB;AAG5CC,kBAAAA,UAAU,EAAE;AAHgC,iBAAvC,CAFP;;AAAA;AAAA;AAAA,uBAQuB,KAAKZ,UAAL,EARvB;;AAAA;AAQOC,gBAAAA,OARP;AAUOY,gBAAAA,SAVP,GAUmBC,kBAASC,gCAAT,CACjB,iBADiB,EAEjBd,OAAO,CAACE,KAFS,CAVnB;AAAA;AAAA,uBAeO,KAAKa,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCJ,SAAlC,CAfP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA1CwDK,8B,8DACvB,Q","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class KeepingDataStoresInSyncTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'stores'\n\tprotected static badStoreDest: string\n\tprotected static async beforeAll() {\n\t\tawait super.beforeAll()\n\t\tthis.badStoreDest = this.resolvePath('src/stores/Bad.store.ts')\n\t}\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tdiskUtil.deleteFile(this.badStoreDest)\n\t}\n\n\t@test()\n\tprotected static async hasSyncAction() {\n\t\tassert.isFunction(this.Action('store', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async syncsNothingToStart() {\n\t\tconst results = await this.syncStores()\n\n\t\tassert.isLength(results.files, 0)\n\t}\n\n\tprivate static async syncStores() {\n\t\treturn this.Action('store', 'sync').execute({})\n\t}\n\n\t@test()\n\tprotected static async badFileReturnsError() {\n\t\tdiskUtil.writeFile(this.badStoreDest, 'throw new Error(\"Cheese!\")')\n\n\t\tconst results = await this.syncStores()\n\t\tassert.isArray(results.errors)\n\t\tassert.isLength(results.errors, 1)\n\n\t\terrorAssertUtil.assertError(results.errors[0], 'FAILED_TO_IMPORT', {\n\t\t\tfile: 'Bad.store.ts',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesValidTypeFile() {\n\t\tawait this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Bid',\n\t\t\tnameReadablePlural: 'Bids',\n\t\t\tnamePascal: 'Bid',\n\t\t})\n\n\t\tconst results = await this.syncStores()\n\n\t\tconst typesFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'stores.types.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(typesFile)\n\t}\n}\n"],"file":"KeepingDataStoresInSync.test.js"}
|