@sprucelabs/spruce-cli 15.2.5 → 15.2.8
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 +24 -0
- package/build/__tests__/behavioral/AddingADependency.test.js +2 -2
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
- package/build/__tests__/behavioral/BlockingCommands.test.js +2 -2
- package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingASkill.test.js +10 -10
- package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +5 -5
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js +2 -2
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js +2 -2
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js +1 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +2 -2
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +2 -2
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js +1 -1
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js +1 -1
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +4 -10
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js +6 -12
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js +1 -1
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js +2 -2
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.js +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js +3 -9
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/BulkImporting.test.js +3 -3
- package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
- package/build/__tests__/implementation/DataStoreStore.test.js +2 -2
- package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.js +2 -2
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaStore.test.js +8 -14
- package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js +4 -4
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/TestRunner.test.js +1 -1
- package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
- package/build/features/schema/stores/SchemaStore.d.ts +16 -0
- package/build/features/schema/stores/SchemaStore.js +21 -10
- package/build/features/schema/stores/SchemaStore.js.map +1 -1
- package/package.json +33 -33
- package/src/__tests__/behavioral/AddingADependency.test.ts +3 -3
- package/src/__tests__/behavioral/BlockingCommands.test.ts +3 -3
- package/src/__tests__/behavioral/DeployingASkill.test.ts +11 -11
- package/src/__tests__/behavioral/DeployingToSandbox.test.ts +2 -2
- package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +6 -6
- package/src/__tests__/behavioral/InstallingASkillAtAnOrg.test.ts +3 -3
- package/src/__tests__/behavioral/LoggingInAsASkill.test.ts +3 -3
- package/src/__tests__/behavioral/RebuildingASkill.test.ts +2 -2
- package/src/__tests__/behavioral/SettingLogTransportsInASkill.test.ts +2 -2
- package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +2 -2
- package/src/__tests__/behavioral/TestingAConversation.test.ts +1 -1
- package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +2 -2
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +3 -3
- package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +2 -2
- package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +3 -3
- package/src/__tests__/behavioral/person/LoggingInAsPerson.test.ts +2 -2
- package/src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts +2 -2
- package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +1 -1
- package/src/__tests__/behavioral/schemas/KeepingSchemasInSync.test.ts +4 -4
- package/src/__tests__/behavioral/schemas/SettingUpSchemas.test.ts +2 -2
- package/src/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.ts +2 -2
- package/src/__tests__/behavioral/skill/RegisteringASkill.test.ts +3 -3
- package/src/__tests__/behavioral/stores/CreatingADataStore.test.ts +2 -2
- package/src/__tests__/behavioral/stores/KeepingDataStoresInSync.test.ts +2 -2
- package/src/__tests__/behavioral/tests/RunningTests.test.ts +2 -2
- package/src/__tests__/behavioral/tests/SettingUpTests.test.ts +2 -2
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +2 -2
- package/src/__tests__/behavioral/views/CreatingATheme.test.ts +2 -2
- package/src/__tests__/implementation/ActionExecuter.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter3.test.ts +2 -2
- package/src/__tests__/implementation/ActionExecuter4.test.ts +2 -2
- package/src/__tests__/implementation/BulkImporting.test.ts +4 -4
- package/src/__tests__/implementation/DataStoreStore.test.ts +3 -3
- package/src/__tests__/implementation/EventStore.test.ts +3 -3
- package/src/__tests__/implementation/SchemaStore.test.ts +6 -6
- package/src/__tests__/implementation/SettingUpANodeModule.test.ts +2 -2
- package/src/__tests__/implementation/SkillStore.test.ts +5 -5
- package/src/__tests__/implementation/TestRunner.test.ts +2 -2
- package/src/features/schema/stores/SchemaStore.ts +35 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/BulkImporting.test.ts"],"names":["BulkImportingTest","factory","ServiceFactory","importer","Service","cwd","tmpDir","resolvePath","diskUtil","deleteDir","assert","isFunction","bulkImport","resolveTestPath","schemaOne","isTruthy","id","isEqual","results","isLength","schemaTwo","isFalse","doesDirExist","doesThrowAsync","err","
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/BulkImporting.test.ts"],"names":["BulkImportingTest","factory","ServiceFactory","importer","Service","cwd","tmpDir","resolvePath","diskUtil","deleteDir","assert","isFunction","bulkImport","resolveTestPath","schemaOne","isTruthy","id","isEqual","results","isLength","schemaTwo","isFalse","doesDirExist","doesThrowAsync","err","errorAssert","assertError","doesInclude","options","file","pathAfterTestDirsAndFiles","pathUil","join","AbstractSpruceTest"],"mappings":"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","sourcesContent":["import pathUil from 'path'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport AbstractSpruceTest, { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport ImportService from '../../services/ImportService'\nimport ServiceFactory from '../../services/ServiceFactory'\n\nexport default class BulkImportingTest extends AbstractSpruceTest {\n\tprivate static importer: ImportService\n\n\tprotected static async beforeEach() {\n\t\t// await super.beforeEach()\n\t\tconst factory = new ServiceFactory()\n\t\tthis.importer = factory.Service(this.cwd, 'import')\n\n\t\tconst tmpDir = this.resolvePath('.tmp')\n\t\tdiskUtil.deleteDir(tmpDir)\n\t}\n\n\t@test()\n\tprotected static async importerHasBulkImportMethod() {\n\t\tassert.isFunction(this.importer.bulkImport)\n\t}\n\n\t@test()\n\tprotected static async canImportSingleFile() {\n\t\tconst [schemaOne] = await this.importer.bulkImport([\n\t\t\tthis.resolveTestPath('test_builders/v2020_06_23/schemaOne.builder.ts'),\n\t\t])\n\n\t\tassert.isTruthy(schemaOne)\n\t\tassert.isTruthy(schemaOne.id)\n\t\tassert.isEqual(schemaOne.id, 'schemaOne')\n\t}\n\n\t@test()\n\tprotected static async importingNothingGoesFast() {\n\t\tconst results = await this.importer.bulkImport([])\n\t\tassert.isLength(results, 0)\n\t}\n\n\t@test()\n\tprotected static async canImportTwoFiles() {\n\t\tconst [schemaOne, schemaTwo] = await this.importer.bulkImport([\n\t\t\tthis.resolveTestPath('test_builders/v2020_06_23/schemaOne.builder.ts'),\n\t\t\tthis.resolveTestPath('test_builders/v2020_06_23/schemaTwo.builder.ts'),\n\t\t])\n\n\t\tassert.isTruthy(schemaOne)\n\t\tassert.isTruthy(schemaTwo)\n\t\tassert.isTruthy(schemaTwo.id, 'schemaTwo')\n\t}\n\n\t@test()\n\tprotected static async shouldCleanupTmpDir() {\n\t\tawait this.importer.bulkImport([\n\t\t\tthis.resolveTestPath('test_builders/v2020_06_23/schemaOne.builder.ts'),\n\t\t\tthis.resolveTestPath('test_builders/v2020_06_23/schemaTwo.builder.ts'),\n\t\t])\n\n\t\tconst tmpDir = this.resolvePath('.tmp')\n\t\tassert.isFalse(diskUtil.doesDirExist(tmpDir))\n\t}\n\n\t@test()\n\tprotected static async cleansUpOnError() {\n\t\tawait assert.doesThrowAsync(() =>\n\t\t\tthis.importer.bulkImport([\n\t\t\t\tthis.resolveTestPath(\n\t\t\t\t\t'test_builders_one_bad/v2020_06_23/badSchema.builder.ts'\n\t\t\t\t),\n\t\t\t])\n\t\t)\n\n\t\tconst tmpDir = this.resolvePath('.tmp')\n\t\tassert.isFalse(diskUtil.doesDirExist(tmpDir))\n\t}\n\n\t@test()\n\tprotected static async throwsOnTheActualFileWithAnError() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.importer.bulkImport([\n\t\t\t\tthis.resolveTestPath(\n\t\t\t\t\t'test_builders_one_bad/v2020_06_23/badSchema.builder.ts'\n\t\t\t\t),\n\t\t\t])\n\t\t)\n\n\t\terrorAssert.assertError(err, 'FAILED_TO_IMPORT')\n\t\tassert.doesInclude((err as any).options.file, 'badSchema.builder.ts')\n\t}\n\n\t@test()\n\tprotected static async throwsOnTheFirstActualFileWithAnErrorWithManyFiles() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.importer.bulkImport([\n\t\t\t\tthis.resolveTestPath(\n\t\t\t\t\t'test_builders_two_bad/v2020_06_23/anotherBad.builder.ts'\n\t\t\t\t),\n\t\t\t\tthis.resolveTestPath(\n\t\t\t\t\t'test_builders_two_bad/v2020_06_23/badSchema.builder.ts'\n\t\t\t\t),\n\n\t\t\t\tthis.resolveTestPath('test_builders/v2020_06_23/schemaTwo.builder.ts'),\n\t\t\t\tthis.resolveTestPath('test_builders/v2020_06_23/schemaOne.builder.ts'),\n\t\t\t])\n\t\t)\n\n\t\terrorAssert.assertError(err, 'FAILED_TO_IMPORT')\n\t\tassert.doesInclude((err as any).options.file, 'anotherBad.builder.ts')\n\t}\n\n\t@test()\n\tprotected static async helpfulErrorWhenImportNotExportedAsDefault() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.importer.bulkImport([\n\t\t\t\tthis.resolveTestPath('test_builders/v2020_06_23/schemaTwo.builder.ts'),\n\t\t\t\tthis.resolveTestPath('test_builders/v2020_06_23/schemaOne.builder.ts'),\n\t\t\t\tthis.resolveTestPath(\n\t\t\t\t\t'test_builders_two_bad/v2020_06_23/notDefault.builder.ts'\n\t\t\t\t),\n\t\t\t])\n\t\t)\n\n\t\terrorAssert.assertError(err, 'FAILED_TO_IMPORT')\n\t\tassert.doesInclude((err as any).options.file, 'notDefault.builder.ts')\n\t}\n\n\tprotected static resolveTestPath(...pathAfterTestDirsAndFiles: string[]) {\n\t\treturn pathUil.join(\n\t\t\tthis.cwd,\n\t\t\t'build',\n\t\t\t'__tests__',\n\t\t\t'testDirsAndFiles',\n\t\t\t...pathAfterTestDirsAndFiles\n\t\t)\n\t}\n}\n"],"file":"BulkImporting.test.js"}
|
|
@@ -212,7 +212,7 @@ var DataStoreStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _
|
|
|
212
212
|
case 3:
|
|
213
213
|
err = _context6.sent;
|
|
214
214
|
|
|
215
|
-
_testUtils.
|
|
215
|
+
_testUtils.errorAssert.assertError(err, 'FAILED_TO_IMPORT', {
|
|
216
216
|
file: 'Bad.store.ts'
|
|
217
217
|
});
|
|
218
218
|
|
|
@@ -349,7 +349,7 @@ var DataStoreStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _
|
|
|
349
349
|
case 3:
|
|
350
350
|
err = _context9.sent;
|
|
351
351
|
|
|
352
|
-
_testUtils.
|
|
352
|
+
_testUtils.errorAssert.assertError(err, 'FAILED_TO_IMPORT', {
|
|
353
353
|
file: 'Bad.store.ts'
|
|
354
354
|
});
|
|
355
355
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/DataStoreStore.test.ts"],"names":["DataStoreStoreTest","badStoreDest","resolvePath","diskUtil","deleteFile","store","Store","assert","isTruthy","fetchStores","cwd","freshTmpDir","results","isLength","writeFile","doesThrowAsync","err","
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/DataStoreStore.test.ts"],"names":["DataStoreStoreTest","badStoreDest","resolvePath","diskUtil","deleteFile","store","Store","assert","isTruthy","fetchStores","cwd","freshTmpDir","results","isLength","writeFile","doesThrowAsync","err","errorAssert","assertError","file","Action","execute","nameReadable","nameReadablePlural","namePascal","isFalsy","errors","storeFilepath","testUtil","assertFileByNameInGeneratedFiles","files","stores","doesInclude","className","path","AbstractSkillTest"],"mappings":"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","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport StoreStore from '../../features/store/stores/StoreStore'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class DataStoreStoreTest extends AbstractSkillTest {\n\tprivate static store: StoreStore\n\tprivate static badStoreDest: string\n\tprotected static skillCacheKey = 'stores'\n\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\n\t\tthis.store = this.Store('store')\n\t}\n\n\t@test()\n\tprotected static async canInstantiateDataStore() {\n\t\tassert.isTruthy(this.Store('store'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchStores() {\n\t\tassert.isTruthy(this.Store('store').fetchStores)\n\t}\n\n\t@test()\n\tprotected static async fetchesNoStoresToStart() {\n\t\tthis.cwd = this.freshTmpDir()\n\n\t\tconst results = await this.store.fetchStores()\n\t\tassert.isLength(results, 0)\n\t}\n\n\t@test()\n\tprotected static async throwsWhenStoreIsNotValid() {\n\t\tdiskUtil.writeFile(this.badStoreDest, 'throw new Error(\"Cheese!\")')\n\n\t\tconst err = await assert.doesThrowAsync(() => this.store.fetchStores())\n\n\t\terrorAssert.assertError(err, 'FAILED_TO_IMPORT', {\n\t\t\tfile: 'Bad.store.ts',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canImportAGoodStore() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Good',\n\t\t\tnameReadablePlural: 'Good',\n\t\t\tnamePascal: 'Good',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst storeFilepath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Good.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst stores = await this.store.fetchStores()\n\t\tassert.isLength(stores, 1)\n\n\t\tassert.doesInclude(stores, {\n\t\t\tclassName: 'GoodStore',\n\t\t\tpath: storeFilepath,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canImportTwoGoodStores() {\n\t\tconst results = await this.Action('store', 'create').execute({\n\t\t\tnameReadable: 'Apple',\n\t\t\tnameReadablePlural: 'Apples',\n\t\t\tnamePascal: 'Apple',\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst storeFilepath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'Apples.store.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst stores = await this.store.fetchStores()\n\t\tassert.isLength(stores, 2)\n\n\t\tassert.doesInclude(stores, {\n\t\t\tclassName: 'ApplesStore',\n\t\t\tpath: storeFilepath,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async accuratelyReportsBadStoreAfterGoodStoresAreCreated() {\n\t\tdiskUtil.writeFile(this.badStoreDest, 'throw new Error(\"Cheese!\")')\n\n\t\tconst err = await assert.doesThrowAsync(() => this.store.fetchStores())\n\n\t\terrorAssert.assertError(err, 'FAILED_TO_IMPORT', {\n\t\t\tfile: 'Bad.store.ts',\n\t\t})\n\t}\n}\n"],"file":"DataStoreStore.test.js"}
|
|
@@ -334,7 +334,7 @@ var EventStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
|
|
|
334
334
|
case 13:
|
|
335
335
|
err = _context6.sent;
|
|
336
336
|
|
|
337
|
-
_testUtils.
|
|
337
|
+
_testUtils.errorAssert.assertError(err, 'INVALID_EVENT_CONTRACT');
|
|
338
338
|
|
|
339
339
|
case 15:
|
|
340
340
|
case "end":
|
|
@@ -396,7 +396,7 @@ var EventStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
|
|
|
396
396
|
case 13:
|
|
397
397
|
err = _context7.sent;
|
|
398
398
|
|
|
399
|
-
_testUtils.
|
|
399
|
+
_testUtils.errorAssert.assertError(err, 'INVALID_EVENT_CONTRACT');
|
|
400
400
|
|
|
401
401
|
case 15:
|
|
402
402
|
case "end":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/EventStore.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","EventStoreTest","versionUtil","generateVersion","createAction","Action","diskUtil","writeFile","resolvePath","assert","isTruthy","Store","isFunction","fetchEventContracts","localNamespace","results","contracts","errors","isTrue","length","contract","isEqual","organizationFixture","getOrganizationFixture","seedDemoOrg","name","org","seedSkillAndInstallAtOrg","eventStore1","eventStore","skill1","skill","eventStore2","registerEventContract","eventContract","eventSignatures","version","constValue","emitPayloadSchema","eventName","targetSchema","eventTargetSchema","emitPermissionContract","id","permissions","defaults","skillContract","sig","eventContractUtil","getSignatureByName","slug","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","execute","nameReadable","nameKebab","nameCamel","isFalsy","match","testUtil","assertFileByNameInGeneratedFiles","files","doesThrowAsync","loadLocalContract","RegExp","err","errorAssertUtil","assertError","copyEventBuildersAndPermissions","namespaces","isLength","eventNameUtil","join","eventNamespace","wasFound","fields","target","payload","responsePayloadSchema","listenPermissionContract","installAndRegisterOneGlobalEvent","fqen","totalMatches","reduce","count","eventsPath","deleteDir","unified","unifyContracts","doesThrow","isGlobal","meta","local","boot","kill","EventStore","clearCache","createResults","seedDemoSkill","installSkillAtOrganization","connectToApi","skillId","apiKey","client","apiClientFactory","AbstractEventTest"],"mappings":"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","sourcesContent":["import {\n\tbuildPermissionContract,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventNameUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport CreateAction from '../../features/event/actions/CreateAction'\nimport EventStore from '../../features/event/stores/EventStore'\nimport AbstractEventTest from '../../tests/AbstractEventTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst EVENT_NAME_READABLE = 'my event store amazing event'\nconst EVENT_NAME = 'my-event-store-amazing-event'\nconst EVENT_CAMEL = 'myEventStoreAmazingEvent'\n\nexport default class EventStoreTest extends AbstractEventTest {\n\tprivate static createAction: CreateAction\n\tprotected static get version() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\tpublic static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.createAction = this.Action<CreateAction>('event', 'create')\n\t\tdiskUtil.writeFile(this.resolvePath('package.json'), '{}')\n\t}\n\n\t@test()\n\tprotected static async canInstantiateEventStore() {\n\t\tassert.isTruthy(this.Store('event'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchEventContractsMethod() {\n\t\tassert.isFunction(this.Store('event').fetchEventContracts)\n\t}\n\n\t@test()\n\tprotected static async fetchesCoreEventContracts() {\n\t\tconst results = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\t\tconst { contracts, errors } = results\n\n\t\tassert.isTrue(contracts.length >= 1)\n\n\t\tfor (const contract of contracts) {\n\t\t\tvalidateEventContract(contract)\n\t\t}\n\n\t\tassert.isEqual(errors.length, 0)\n\t}\n\n\t@test()\n\tprotected static async registerEventContract() {\n\t\tconst organizationFixture = this.getOrganizationFixture()\n\t\tconst org = await organizationFixture.seedDemoOrg({\n\t\t\tname: 'my new org',\n\t\t})\n\n\t\tconst { eventStore: eventStore1, skill: skill1 } =\n\t\t\tawait this.seedSkillAndInstallAtOrg(org, 'skill 1')\n\n\t\tconst { eventStore: eventStore2 } = await this.seedSkillAndInstallAtOrg(\n\t\t\torg,\n\t\t\t'skill 2'\n\t\t)\n\n\t\tawait eventStore1.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t[`my-fantastic-event::${this.version.constValue}`]: {\n\t\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\t\teventName: `my-fantastic-event::${this.version.constValue}`,\n\t\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\t\tid: 'my-fantastic-event-contract',\n\t\t\t\t\t\t\tname: 'Fanstastic emit perms',\n\t\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: 'can-emit-perms',\n\t\t\t\t\t\t\t\t\tname: 'can emit perm',\n\t\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\t\tskill: false,\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\tconst { contracts } = await eventStore2.fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\n\t\tassert.isTrue(contracts.length > 2)\n\n\t\tconst skillContract = contracts[1]\n\n\t\tconst sig = eventContractUtil.getSignatureByName(\n\t\t\tskillContract,\n\t\t\t`${skill1.slug}.my-fantastic-event::${this.version.constValue}`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract?.id,\n\t\t\t'my-fantastic-event-contract'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async badLocalContractThrowsNiceError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.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\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`emitPayload.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async badLocalSignature() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.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\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`event.options.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {waka: true}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContracts() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tawait this.createAction.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\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t\tnamespaces: ['core'],\n\t\t})\n\n\t\tassert.isLength(contracts, 2)\n\n\t\tconst name = eventNameUtil.join({\n\t\t\teventName: EVENT_NAME,\n\t\t\teventNamespace: skill.slug,\n\t\t\tversion: this.version.constValue,\n\t\t})\n\n\t\tlet wasFound = false\n\t\tfor (const contract of contracts) {\n\t\t\tif (contract.eventSignatures[name]?.emitPayloadSchema) {\n\t\t\t\twasFound = true\n\t\t\t\tassert.isEqual(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.id,\n\t\t\t\t\tEVENT_CAMEL + 'EmitTargetAndPayload'\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.target\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.payload\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].responsePayloadSchema)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].emitPermissionContract)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].listenPermissionContract)\n\n\t\t\t\tvalidateEventContract(contract)\n\t\t\t}\n\t\t}\n\n\t\tassert.isTrue(wasFound)\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContractWithGlobalEventsAndDoesNotReturnContractTwice() {\n\t\tconst { skill, fqen } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst totalMatches = contracts.reduce((count, contract) => {\n\t\t\tif (contract.eventSignatures[fqen]) {\n\t\t\t\tcount++\n\t\t\t}\n\t\t\treturn count\n\t\t}, 0)\n\n\t\tassert.isEqual(totalMatches, 1)\n\t}\n\n\t@test()\n\tprotected static async doesNotLoadGlobalContractsForSelf() {\n\t\tconst { fqen, skill } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst eventsPath = this.resolvePath('src', 'events')\n\t\tdiskUtil.deleteDir(eventsPath)\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst unified = eventContractUtil.unifyContracts(contracts)\n\n\t\tassert.isTruthy(unified)\n\t\tassert.doesThrow(() => eventContractUtil.getSignatureByName(unified, fqen))\n\t}\n\n\tprivate static async installAndRegisterOneGlobalEvent() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'event store test skill',\n\t\t})\n\n\t\tconst results = await this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tisGlobal: true,\n\t\t})\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tassert.isTruthy(fqen)\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tboot.meta?.kill()\n\n\t\tEventStore.clearCache()\n\n\t\treturn { boot, skill, fqen, createResults: results }\n\t}\n\n\tprivate static async seedSkillAndInstallAtOrg(org: any, name: string) {\n\t\tconst skill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname,\n\t\t})\n\n\t\tawait this.getOrganizationFixture().installSkillAtOrganization(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\n\t\tconst client = await this.connectToApi({\n\t\t\tskillId: skill.id,\n\t\t\tapiKey: skill.apiKey,\n\t\t})\n\n\t\tconst eventStore = this.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\treturn { eventStore, skill }\n\t}\n}\n"],"file":"EventStore.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/EventStore.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","EventStoreTest","versionUtil","generateVersion","createAction","Action","diskUtil","writeFile","resolvePath","assert","isTruthy","Store","isFunction","fetchEventContracts","localNamespace","results","contracts","errors","isTrue","length","contract","isEqual","organizationFixture","getOrganizationFixture","seedDemoOrg","name","org","seedSkillAndInstallAtOrg","eventStore1","eventStore","skill1","skill","eventStore2","registerEventContract","eventContract","eventSignatures","version","constValue","emitPayloadSchema","eventName","targetSchema","eventTargetSchema","emitPermissionContract","id","permissions","defaults","skillContract","sig","eventContractUtil","getSignatureByName","slug","FeatureFixture","installCachedFeatures","getSkillFixture","registerCurrentSkill","execute","nameReadable","nameKebab","nameCamel","isFalsy","match","testUtil","assertFileByNameInGeneratedFiles","files","doesThrowAsync","loadLocalContract","RegExp","err","errorAssert","assertError","copyEventBuildersAndPermissions","namespaces","isLength","eventNameUtil","join","eventNamespace","wasFound","fields","target","payload","responsePayloadSchema","listenPermissionContract","installAndRegisterOneGlobalEvent","fqen","totalMatches","reduce","count","eventsPath","deleteDir","unified","unifyContracts","doesThrow","isGlobal","meta","local","boot","kill","EventStore","clearCache","createResults","seedDemoSkill","installSkillAtOrganization","connectToApi","skillId","apiKey","client","apiClientFactory","AbstractEventTest"],"mappings":"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","sourcesContent":["import {\n\tbuildPermissionContract,\n\tvalidateEventContract,\n} from '@sprucelabs/mercury-types'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventContractUtil,\n\teventNameUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport { diskUtil, versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport CreateAction from '../../features/event/actions/CreateAction'\nimport EventStore from '../../features/event/stores/EventStore'\nimport AbstractEventTest from '../../tests/AbstractEventTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nconst EVENT_NAME_READABLE = 'my event store amazing event'\nconst EVENT_NAME = 'my-event-store-amazing-event'\nconst EVENT_CAMEL = 'myEventStoreAmazingEvent'\n\nexport default class EventStoreTest extends AbstractEventTest {\n\tprivate static createAction: CreateAction\n\tprotected static get version() {\n\t\treturn versionUtil.generateVersion()\n\t}\n\n\tpublic static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.createAction = this.Action<CreateAction>('event', 'create')\n\t\tdiskUtil.writeFile(this.resolvePath('package.json'), '{}')\n\t}\n\n\t@test()\n\tprotected static async canInstantiateEventStore() {\n\t\tassert.isTruthy(this.Store('event'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchEventContractsMethod() {\n\t\tassert.isFunction(this.Store('event').fetchEventContracts)\n\t}\n\n\t@test()\n\tprotected static async fetchesCoreEventContracts() {\n\t\tconst results = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\t\tconst { contracts, errors } = results\n\n\t\tassert.isTrue(contracts.length >= 1)\n\n\t\tfor (const contract of contracts) {\n\t\t\tvalidateEventContract(contract)\n\t\t}\n\n\t\tassert.isEqual(errors.length, 0)\n\t}\n\n\t@test()\n\tprotected static async registerEventContract() {\n\t\tconst organizationFixture = this.getOrganizationFixture()\n\t\tconst org = await organizationFixture.seedDemoOrg({\n\t\t\tname: 'my new org',\n\t\t})\n\n\t\tconst { eventStore: eventStore1, skill: skill1 } =\n\t\t\tawait this.seedSkillAndInstallAtOrg(org, 'skill 1')\n\n\t\tconst { eventStore: eventStore2 } = await this.seedSkillAndInstallAtOrg(\n\t\t\torg,\n\t\t\t'skill 2'\n\t\t)\n\n\t\tawait eventStore1.registerEventContract({\n\t\t\teventContract: {\n\t\t\t\teventSignatures: {\n\t\t\t\t\t[`my-fantastic-event::${this.version.constValue}`]: {\n\t\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\t\teventName: `my-fantastic-event::${this.version.constValue}`,\n\t\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\temitPermissionContract: buildPermissionContract({\n\t\t\t\t\t\t\tid: 'my-fantastic-event-contract',\n\t\t\t\t\t\t\tname: 'Fanstastic emit perms',\n\t\t\t\t\t\t\tpermissions: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tid: 'can-emit-perms',\n\t\t\t\t\t\t\t\t\tname: 'can emit perm',\n\t\t\t\t\t\t\t\t\tdefaults: {\n\t\t\t\t\t\t\t\t\t\tskill: false,\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\tconst { contracts } = await eventStore2.fetchEventContracts({\n\t\t\tlocalNamespace: 'my-skill',\n\t\t})\n\n\t\tassert.isTrue(contracts.length > 2)\n\n\t\tconst skillContract = contracts[1]\n\n\t\tconst sig = eventContractUtil.getSignatureByName(\n\t\t\tskillContract,\n\t\t\t`${skill1.slug}.my-fantastic-event::${this.version.constValue}`\n\t\t)\n\n\t\tassert.isEqual(\n\t\t\tsig.emitPermissionContract?.id,\n\t\t\t'my-fantastic-event-contract'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async badLocalContractThrowsNiceError() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.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\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`emitPayload.builder.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssert.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async badLocalSignature() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tconst results = await this.createAction.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\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`event.options.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(match, 'export default {waka: true}')\n\n\t\tconst err = await assert.doesThrowAsync(\n\t\t\t() => this.Store('event').loadLocalContract(skill.slug),\n\t\t\tnew RegExp(\n\t\t\t\t`${skill.slug}.${EVENT_NAME}::${\n\t\t\t\t\tversionUtil.generateVersion().constValue\n\t\t\t\t}`\n\t\t\t)\n\t\t)\n\n\t\terrorAssert.assertError(err, 'INVALID_EVENT_CONTRACT')\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContracts() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'my new skill',\n\t\t})\n\n\t\tawait this.createAction.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\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tawait this.Action('event', 'sync').execute({})\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t\tnamespaces: ['core'],\n\t\t})\n\n\t\tassert.isLength(contracts, 2)\n\n\t\tconst name = eventNameUtil.join({\n\t\t\teventName: EVENT_NAME,\n\t\t\teventNamespace: skill.slug,\n\t\t\tversion: this.version.constValue,\n\t\t})\n\n\t\tlet wasFound = false\n\t\tfor (const contract of contracts) {\n\t\t\tif (contract.eventSignatures[name]?.emitPayloadSchema) {\n\t\t\t\twasFound = true\n\t\t\t\tassert.isEqual(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.id,\n\t\t\t\t\tEVENT_CAMEL + 'EmitTargetAndPayload'\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.target\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(\n\t\t\t\t\tcontract.eventSignatures[name].emitPayloadSchema?.fields?.payload\n\t\t\t\t)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].responsePayloadSchema)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].emitPermissionContract)\n\t\t\t\tassert.isTruthy(contract.eventSignatures[name].listenPermissionContract)\n\n\t\t\t\tvalidateEventContract(contract)\n\t\t\t}\n\t\t}\n\n\t\tassert.isTrue(wasFound)\n\t}\n\n\t@test()\n\tprotected static async mixesInLocalContractWithGlobalEventsAndDoesNotReturnContractTwice() {\n\t\tconst { skill, fqen } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst totalMatches = contracts.reduce((count, contract) => {\n\t\t\tif (contract.eventSignatures[fqen]) {\n\t\t\t\tcount++\n\t\t\t}\n\t\t\treturn count\n\t\t}, 0)\n\n\t\tassert.isEqual(totalMatches, 1)\n\t}\n\n\t@test()\n\tprotected static async doesNotLoadGlobalContractsForSelf() {\n\t\tconst { fqen, skill } = await this.installAndRegisterOneGlobalEvent()\n\n\t\tconst eventsPath = this.resolvePath('src', 'events')\n\t\tdiskUtil.deleteDir(eventsPath)\n\n\t\tconst { contracts } = await this.Store('event').fetchEventContracts({\n\t\t\tlocalNamespace: skill.slug,\n\t\t})\n\n\t\tconst unified = eventContractUtil.unifyContracts(contracts)\n\n\t\tassert.isTruthy(unified)\n\t\tassert.doesThrow(() => eventContractUtil.getSignatureByName(unified, fqen))\n\t}\n\n\tprivate static async installAndRegisterOneGlobalEvent() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.getSkillFixture().registerCurrentSkill({\n\t\t\tname: 'event store test skill',\n\t\t})\n\n\t\tconst results = await this.createAction.execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tisGlobal: true,\n\t\t})\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tassert.isTruthy(fqen)\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tboot.meta?.kill()\n\n\t\tEventStore.clearCache()\n\n\t\treturn { boot, skill, fqen, createResults: results }\n\t}\n\n\tprivate static async seedSkillAndInstallAtOrg(org: any, name: string) {\n\t\tconst skill = await this.getSkillFixture().seedDemoSkill({\n\t\t\tname,\n\t\t})\n\n\t\tawait this.getOrganizationFixture().installSkillAtOrganization(\n\t\t\tskill.id,\n\t\t\torg.id\n\t\t)\n\n\t\tconst client = await this.connectToApi({\n\t\t\tskillId: skill.id,\n\t\t\tapiKey: skill.apiKey,\n\t\t})\n\n\t\tconst eventStore = this.Store('event', {\n\t\t\tapiClientFactory: async () => {\n\t\t\t\treturn client\n\t\t\t},\n\t\t})\n\n\t\treturn { eventStore, skill }\n\t}\n}\n"],"file":"EventStore.test.js"}
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
@@ -29,8 +27,6 @@ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/
|
|
|
29
27
|
|
|
30
28
|
var _schema = require("@sprucelabs/schema");
|
|
31
29
|
|
|
32
|
-
var coreSchemas = _interopRequireWildcard(require("@sprucelabs/spruce-core-schemas"));
|
|
33
|
-
|
|
34
30
|
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
35
31
|
|
|
36
32
|
var _test = require("@sprucelabs/test");
|
|
@@ -39,14 +35,12 @@ var _testUtils = require("@sprucelabs/test-utils");
|
|
|
39
35
|
|
|
40
36
|
var _fieldClassMap = _interopRequireDefault(require("../../.spruce/schemas/fields/fieldClassMap"));
|
|
41
37
|
|
|
38
|
+
var _SchemaStore = require("../../features/schema/stores/SchemaStore");
|
|
39
|
+
|
|
42
40
|
var _AbstractSchemaTest2 = _interopRequireDefault(require("../../tests/AbstractSchemaTest"));
|
|
43
41
|
|
|
44
42
|
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _class;
|
|
45
43
|
|
|
46
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
47
|
-
|
|
48
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
49
|
-
|
|
50
44
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
51
45
|
|
|
52
46
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
@@ -392,9 +386,9 @@ var SchemaStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec
|
|
|
392
386
|
|
|
393
387
|
_test.assert.isLength(results.errors, 2);
|
|
394
388
|
|
|
395
|
-
_testUtils.
|
|
389
|
+
_testUtils.errorAssert.assertError(results.errors[0], 'SCHEMA_FAILED_TO_IMPORT');
|
|
396
390
|
|
|
397
|
-
_testUtils.
|
|
391
|
+
_testUtils.errorAssert.assertError(results.errors[1], 'SCHEMA_FAILED_TO_IMPORT');
|
|
398
392
|
|
|
399
393
|
results.errors = results.errors.sort(function (a, b) {
|
|
400
394
|
return (//@ts-ignore
|
|
@@ -402,14 +396,14 @@ var SchemaStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec
|
|
|
402
396
|
);
|
|
403
397
|
});
|
|
404
398
|
|
|
405
|
-
_testUtils.
|
|
399
|
+
_testUtils.errorAssert.assertError( // @ts-ignore
|
|
406
400
|
results.errors[0].originalError, // @ts-ignore
|
|
407
401
|
'INVALID_SCHEMA', {
|
|
408
402
|
schemaId: 'schemaWithNamespace',
|
|
409
403
|
errors: ['namespace_should_not_be_set']
|
|
410
404
|
});
|
|
411
405
|
|
|
412
|
-
_testUtils.
|
|
406
|
+
_testUtils.errorAssert.assertError( // @ts-ignore
|
|
413
407
|
results.errors[1].originalError, // @ts-ignore
|
|
414
408
|
'INVALID_SCHEMA', {
|
|
415
409
|
schemaId: 'schemaWithVersion',
|
|
@@ -501,9 +495,9 @@ var SchemaStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec
|
|
|
501
495
|
});
|
|
502
496
|
|
|
503
497
|
case 7:
|
|
504
|
-
for (name in coreSchemas) {
|
|
498
|
+
for (name in _SchemaStore.coreSchemas) {
|
|
505
499
|
_test.assert.doesInclude(emitPayload.schemas, //@ts-ignore
|
|
506
|
-
(0, _schema.normalizeSchemaToIdWithVersion)(coreSchemas[name]));
|
|
500
|
+
(0, _schema.normalizeSchemaToIdWithVersion)(_SchemaStore.coreSchemas[name]));
|
|
507
501
|
}
|
|
508
502
|
|
|
509
503
|
case 8:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/SchemaStore.test.ts"],"names":["LOCAL_NAMESPACE","SchemaStoreTest","test","skip","assert","isTruthy","Store","isFunction","fetchSchemas","fetchFields","localNamespace","results","schemasByNamespace","errors","isEqual","length","CORE_NAMESPACE","coreSchemas","isAbove","validateSchemas","doesInclude","id","copySchemasAndFetchSchemas","localSchemaDir","resolvePath","isLength","Object","keys","localSchemas","message","copySchemasAndFieldsThenFetchFields","fieldTypes","fieldClassMap","type","namesUtil","toPascal","localAddonsDir","fields","errorAssertUtil","assertError","sort","a","b","originalError","options","schemaId","installSchemaFeature","cli","wasFired","on","isTrue","payload","emitPayload","name","schemas","namespace","MyCoolNamespace","copySchemas","version","description","isRequired","TestSkill","schema","testBuilderDir","syncSchemas","schemasDir","diskUtil","copyDir","resolveTestPath","registrationsDir","addonsDir","AbstractSchemaTest"],"mappings":"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","sourcesContent":["import {\n\tbuildSchema,\n\tnormalizeSchemaToIdWithVersion,\n\tSchema,\n\tvalidateSchema,\n} from '@sprucelabs/schema'\nimport * as coreSchemas from '@sprucelabs/spruce-core-schemas'\nimport {\n\tCORE_NAMESPACE,\n\tdiskUtil,\n\tnamesUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport fieldClassMap from '#spruce/schemas/fields/fieldClassMap'\nimport AbstractSchemaTest from '../../tests/AbstractSchemaTest'\n\nconst LOCAL_NAMESPACE = 'TestSkill'\n\nexport default class SchemaStoreTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async canInstantiateSchemaStore() {\n\t\tassert.isTruthy(this.Store('schema'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchSchemaTemplateItemsMethod() {\n\t\tassert.isFunction(this.Store('schema').fetchSchemas)\n\t\tassert.isFunction(this.Store('schema').fetchFields)\n\t}\n\n\t@test()\n\tprotected static async fetchesCoreSchemas() {\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\t\tconst { schemasByNamespace, errors } = results\n\n\t\tassert.isEqual(errors.length, 0)\n\t\tassert.isTruthy(schemasByNamespace[CORE_NAMESPACE])\n\n\t\tconst coreSchemas = schemasByNamespace[CORE_NAMESPACE]\n\t\tassert.isAbove(coreSchemas.length, 0)\n\n\t\tthis.validateSchemas(coreSchemas)\n\n\t\tassert.doesInclude(coreSchemas, { id: 'person' })\n\t\tassert.doesInclude(coreSchemas, { id: 'skill' })\n\t}\n\n\t@test()\n\tprotected static async fetchesLocalSchemas() {\n\t\tconst results = await this.copySchemasAndFetchSchemas({\n\t\t\tlocalSchemaDir: this.resolvePath('src', 'schemas'),\n\t\t})\n\t\tconst { schemasByNamespace, errors } = results\n\n\t\tassert.isEqual(errors.length, 0)\n\t\tassert.isTruthy(schemasByNamespace[LOCAL_NAMESPACE])\n\t\tassert.isLength(Object.keys(schemasByNamespace), 2)\n\n\t\tconst localSchemas = schemasByNamespace[LOCAL_NAMESPACE]\n\n\t\tthis.validateSchemas(localSchemas)\n\t\tassert.isLength(localSchemas, 3)\n\t}\n\n\t@test.skip(\n\t\t\"Skipped because schemas are bulk imported and it's all or nothing.\"\n\t)\n\tprotected static async canHandleABadSchema() {\n\t\tconst results = await this.copySchemasAndFetchSchemas(\n\t\t\t{\n\t\t\t\tlocalSchemaDir: this.resolvePath('src', 'schemas'),\n\t\t\t},\n\t\t\t'test_builders_one_bad'\n\t\t)\n\n\t\tassert.isEqual(results.errors.length, 1)\n\n\t\tassert.doesInclude(results.errors[0].message, 'badSchema')\n\n\t\tconst { schemasByNamespace } = results\n\t\tconst localSchemas = schemasByNamespace[LOCAL_NAMESPACE]\n\n\t\tthis.validateSchemas(localSchemas)\n\t\tassert.isLength(localSchemas, 3)\n\t}\n\n\t@test()\n\tprotected static async canFetchCoreFields() {\n\t\tconst results = await SchemaStoreTest.copySchemasAndFieldsThenFetchFields()\n\n\t\tconst fieldTypes = Object.keys(fieldClassMap)\n\n\t\tfor (const type of fieldTypes) {\n\t\t\tassert.doesInclude(results, {\n\t\t\t\t'fields[].registration.type': namesUtil.toPascal(type),\n\t\t\t})\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async canFetchLocalFields() {\n\t\tconst results = await this.copySchemasAndFieldsThenFetchFields({\n\t\t\tlocalAddonsDir: this.resolvePath('src', 'addons'),\n\t\t})\n\n\t\tassert.isLength(results.errors, 0)\n\t\tassert.isLength(results.fields, Object.keys(fieldClassMap).length + 1)\n\t\tassert.doesInclude(results, { 'fields[].registration.type': 'Test' })\n\t\tassert.doesInclude(results, {\n\t\t\t'fields[].registration.description': 'A test for us all',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canHandleBadFields() {\n\t\tconst results = await this.copySchemasAndFieldsThenFetchFields(\n\t\t\t{\n\t\t\t\tlocalAddonsDir: this.resolvePath('src', 'addons'),\n\t\t\t},\n\t\t\t'field_registrations_one_bad'\n\t\t)\n\n\t\tassert.isLength(results.errors, 1)\n\t\tassert.doesInclude(results.errors[0].message, 'badField')\n\t}\n\n\t@test()\n\tprotected static async wontLetYouSpecifyANamespaceNorVersion() {\n\t\tconst results = await this.copySchemasAndFetchSchemas(\n\t\t\t{},\n\t\t\t'test_builders_with_namespace_and_version'\n\t\t)\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.isLength(results.errors, 2)\n\n\t\terrorAssertUtil.assertError(results.errors[0], 'SCHEMA_FAILED_TO_IMPORT')\n\t\terrorAssertUtil.assertError(results.errors[1], 'SCHEMA_FAILED_TO_IMPORT')\n\n\t\tresults.errors = results.errors.sort((a, b) =>\n\t\t\t//@ts-ignore\n\t\t\ta.originalError.options.schemaId > b.originalError.options.schemaId\n\t\t\t\t? 1\n\t\t\t\t: -1\n\t\t)\n\n\t\terrorAssertUtil.assertError(\n\t\t\t// @ts-ignore\n\t\t\tresults.errors[0].originalError,\n\t\t\t// @ts-ignore\n\t\t\t'INVALID_SCHEMA',\n\t\t\t{\n\t\t\t\tschemaId: 'schemaWithNamespace',\n\t\t\t\terrors: ['namespace_should_not_be_set'],\n\t\t\t}\n\t\t)\n\n\t\terrorAssertUtil.assertError(\n\t\t\t// @ts-ignore\n\t\t\tresults.errors[1].originalError,\n\t\t\t// @ts-ignore\n\t\t\t'INVALID_SCHEMA',\n\t\t\t{\n\t\t\t\tschemaId: 'schemaWithVersion',\n\t\t\t\terrors: ['version_should_not_be_set'],\n\t\t\t}\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emitsDidFetchEvent() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tlet wasFired = false\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\twasFired = true\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isTrue(wasFired)\n\t}\n\n\t@test()\n\tprotected static async fetchEventPayloadIncludesAllOtherSchemas() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tlet emitPayload: any\n\t\tawait cli.on('schema.did-fetch-schemas', (payload) => {\n\t\t\temitPayload = payload\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tfor (const name in coreSchemas) {\n\t\t\tassert.doesInclude(\n\t\t\t\temitPayload.schemas,\n\t\t\t\t//@ts-ignore\n\t\t\t\tnormalizeSchemaToIdWithVersion(coreSchemas[name])\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async canListenToFetchEventToDropInAdditionalSchemas() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\treturn {\n\t\t\t\tschemas: [\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'test',\n\t\t\t\t\t\tnamespace: 'MyCoolNamespace',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isLength(results.errors, 0)\n\t\tconst { schemasByNamespace } = results\n\n\t\tassert.isTruthy(schemasByNamespace.MyCoolNamespace)\n\t}\n\n\t@test()\n\tprotected static async multipleSchemasWithSameIdAndVersionReturnOnce() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tawait this.copySchemas()\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\treturn {\n\t\t\t\tschemas: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'schemaOne',\n\t\t\t\t\t\tname: 'First schema',\n\t\t\t\t\t\tnamespace: 'TestSkill',\n\t\t\t\t\t\tversion: 'v2020_06_23',\n\t\t\t\t\t\tdescription: 'It is going to be great!',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\tisRequired: true,\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\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isLength(results.schemasByNamespace.TestSkill, 3)\n\t}\n\n\tprivate static validateSchemas(schemas: Schema[]) {\n\t\tfor (const schema of schemas) {\n\t\t\tvalidateSchema(schema)\n\t\t}\n\t}\n\n\tprivate static async copySchemasAndFetchSchemas(\n\t\toptions?: Record<string, any>,\n\t\ttestBuilderDir = 'test_builders'\n\t) {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tawait this.copySchemas(testBuilderDir)\n\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t\t...(options || {}),\n\t\t})\n\t\treturn results\n\t}\n\n\tprivate static async copySchemas(testBuilderDir = 'test_builders') {\n\t\tconst schemasDir = this.resolvePath('src', 'schemas')\n\t\tawait diskUtil.copyDir(this.resolveTestPath(testBuilderDir), schemasDir)\n\t}\n\n\tprivate static async copySchemasAndFieldsThenFetchFields(\n\t\toptions?: Record<string, any>,\n\t\tregistrationsDir = 'field_registrations'\n\t) {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tconst addonsDir = this.resolvePath('src', 'addons')\n\t\tawait diskUtil.copyDir(this.resolveTestPath(registrationsDir), addonsDir)\n\n\t\tconst results = await this.Store('schema').fetchFields(options)\n\t\treturn results\n\t}\n}\n"],"file":"SchemaStore.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/SchemaStore.test.ts"],"names":["LOCAL_NAMESPACE","SchemaStoreTest","test","skip","assert","isTruthy","Store","isFunction","fetchSchemas","fetchFields","localNamespace","results","schemasByNamespace","errors","isEqual","length","CORE_NAMESPACE","coreSchemas","isAbove","validateSchemas","doesInclude","id","copySchemasAndFetchSchemas","localSchemaDir","resolvePath","isLength","Object","keys","localSchemas","message","copySchemasAndFieldsThenFetchFields","fieldTypes","fieldClassMap","type","namesUtil","toPascal","localAddonsDir","fields","errorAssert","assertError","sort","a","b","originalError","options","schemaId","installSchemaFeature","cli","wasFired","on","isTrue","payload","emitPayload","name","schemas","namespace","MyCoolNamespace","copySchemas","version","description","isRequired","TestSkill","schema","testBuilderDir","syncSchemas","schemasDir","diskUtil","copyDir","resolveTestPath","registrationsDir","addonsDir","AbstractSchemaTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAMA;;AAKA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;AAEA,IAAMA,eAAe,GAAG,WAAxB;IAEqBC,e,WACnB,iB,UAKA,iB,UAMA,iB,UAmBA,iB,UAiBAC,WAAKC,IAAL,CACA,oEADA,C,UAsBA,iB,UAaA,iB,UAcA,iB,UAaA,iB,WA2CA,iB,WAkBA,iB,WAuBA,iB,WA0BA,iB;;;;;;;;;;;;;qHA3ND;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,QAAP,CAAgB,KAAKC,KAAL,CAAW,QAAX,CAAhB;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6HAKA;AAAA;AAAA;AAAA;AAAA;AAECF,6BAAOG,UAAP,CAAkB,KAAKD,KAAL,CAAW,QAAX,EAAqBE,YAAvC;;AACAJ,6BAAOG,UAAP,CAAkB,KAAKD,KAAL,CAAW,QAAX,EAAqBG,WAAvC;;AAHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;8GAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAKH,KAAL,CAAW,QAAX,EAAqBE,YAArB,CAAkC;AACvDE,kBAAAA,cAAc,EAAEV;AADuC,iBAAlC,CAFvB;;AAAA;AAEOW,gBAAAA,OAFP;AAKSC,gBAAAA,kBALT,GAKwCD,OALxC,CAKSC,kBALT,EAK6BC,MAL7B,GAKwCF,OALxC,CAK6BE,MAL7B;;AAOCT,6BAAOU,OAAP,CAAeD,MAAM,CAACE,MAAtB,EAA8B,CAA9B;;AACAX,6BAAOC,QAAP,CAAgBO,kBAAkB,CAACI,gCAAD,CAAlC;;AAEMC,gBAAAA,WAVP,GAUqBL,kBAAkB,CAACI,gCAAD,CAVvC;;AAWCZ,6BAAOc,OAAP,CAAeD,WAAW,CAACF,MAA3B,EAAmC,CAAnC;;AAEA,qBAAKI,eAAL,CAAqBF,WAArB;;AAEAb,6BAAOgB,WAAP,CAAmBH,WAAnB,EAAgC;AAAEI,kBAAAA,EAAE,EAAE;AAAN,iBAAhC;;AACAjB,6BAAOgB,WAAP,CAAmBH,WAAnB,EAAgC;AAAEI,kBAAAA,EAAE,EAAE;AAAN,iBAAhC;;AAhBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAmBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAKC,0BAAL,CAAgC;AACrDC,kBAAAA,cAAc,EAAE,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,SAAxB;AADqC,iBAAhC,CAFvB;;AAAA;AAEOb,gBAAAA,OAFP;AAKSC,gBAAAA,kBALT,GAKwCD,OALxC,CAKSC,kBALT,EAK6BC,MAL7B,GAKwCF,OALxC,CAK6BE,MAL7B;;AAOCT,6BAAOU,OAAP,CAAeD,MAAM,CAACE,MAAtB,EAA8B,CAA9B;;AACAX,6BAAOC,QAAP,CAAgBO,kBAAkB,CAACZ,eAAD,CAAlC;;AACAI,6BAAOqB,QAAP,CAAgBC,MAAM,CAACC,IAAP,CAAYf,kBAAZ,CAAhB,EAAiD,CAAjD;;AAEMgB,gBAAAA,YAXP,GAWsBhB,kBAAkB,CAACZ,eAAD,CAXxC;AAaC,qBAAKmB,eAAL,CAAqBS,YAArB;;AACAxB,6BAAOqB,QAAP,CAAgBG,YAAhB,EAA8B,CAA9B;;AAdD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAiBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAIuB,KAAKN,0BAAL,CACrB;AACCC,kBAAAA,cAAc,EAAE,KAAKC,WAAL,CAAiB,KAAjB,EAAwB,SAAxB;AADjB,iBADqB,EAIrB,uBAJqB,CAJvB;;AAAA;AAIOb,gBAAAA,OAJP;;AAWCP,6BAAOU,OAAP,CAAeH,OAAO,CAACE,MAAR,CAAeE,MAA9B,EAAsC,CAAtC;;AAEAX,6BAAOgB,WAAP,CAAmBT,OAAO,CAACE,MAAR,CAAe,CAAf,EAAkBgB,OAArC,EAA8C,WAA9C;;AAEQjB,gBAAAA,kBAfT,GAegCD,OAfhC,CAeSC,kBAfT;AAgBOgB,gBAAAA,YAhBP,GAgBsBhB,kBAAkB,CAACZ,eAAD,CAhBxC;AAkBC,qBAAKmB,eAAL,CAAqBS,YAArB;;AACAxB,6BAAOqB,QAAP,CAAgBG,YAAhB,EAA8B,CAA9B;;AAnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;8GAsBA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB3B,eAAe,CAAC6B,mCAAhB,EAFvB;;AAAA;AAEOnB,gBAAAA,OAFP;AAIOoB,gBAAAA,UAJP,GAIoBL,MAAM,CAACC,IAAP,CAAYK,yBAAZ,CAJpB;;AAMC,2CAAmBD,UAAnB,iCAA+B;AAApBE,kBAAAA,IAAoB;;AAC9B7B,+BAAOgB,WAAP,CAAmBT,OAAnB,EAA4B;AAC3B,kDAA8BuB,4BAAUC,QAAV,CAAmBF,IAAnB;AADH,mBAA5B;AAGA;;AAVF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAaA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAKH,mCAAL,CAAyC;AAC9DM,kBAAAA,cAAc,EAAE,KAAKZ,WAAL,CAAiB,KAAjB,EAAwB,QAAxB;AAD8C,iBAAzC,CAFvB;;AAAA;AAEOb,gBAAAA,OAFP;;AAMCP,6BAAOqB,QAAP,CAAgBd,OAAO,CAACE,MAAxB,EAAgC,CAAhC;;AACAT,6BAAOqB,QAAP,CAAgBd,OAAO,CAAC0B,MAAxB,EAAgCX,MAAM,CAACC,IAAP,CAAYK,yBAAZ,EAA2BjB,MAA3B,GAAoC,CAApE;;AACAX,6BAAOgB,WAAP,CAAmBT,OAAnB,EAA4B;AAAE,gDAA8B;AAAhC,iBAA5B;;AACAP,6BAAOgB,WAAP,CAAmBT,OAAnB,EAA4B;AAC3B,uDAAqC;AADV,iBAA5B;;AATD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;8GAcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAKmB,mCAAL,CACrB;AACCM,kBAAAA,cAAc,EAAE,KAAKZ,WAAL,CAAiB,KAAjB,EAAwB,QAAxB;AADjB,iBADqB,EAIrB,6BAJqB,CAFvB;;AAAA;AAEOb,gBAAAA,OAFP;;AASCP,6BAAOqB,QAAP,CAAgBd,OAAO,CAACE,MAAxB,EAAgC,CAAhC;;AACAT,6BAAOgB,WAAP,CAAmBT,OAAO,CAACE,MAAR,CAAe,CAAf,EAAkBgB,OAArC,EAA8C,UAA9C;;AAVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iIAaA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEuB,KAAKP,0BAAL,CACrB,EADqB,EAErB,0CAFqB,CAFvB;;AAAA;AAEOX,gBAAAA,OAFP;;AAOCP,6BAAOC,QAAP,CAAgBM,OAAO,CAACE,MAAxB;;AACAT,6BAAOqB,QAAP,CAAgBd,OAAO,CAACE,MAAxB,EAAgC,CAAhC;;AAEAyB,uCAAYC,WAAZ,CAAwB5B,OAAO,CAACE,MAAR,CAAe,CAAf,CAAxB,EAA2C,yBAA3C;;AACAyB,uCAAYC,WAAZ,CAAwB5B,OAAO,CAACE,MAAR,CAAe,CAAf,CAAxB,EAA2C,yBAA3C;;AAEAF,gBAAAA,OAAO,CAACE,MAAR,GAAiBF,OAAO,CAACE,MAAR,CAAe2B,IAAf,CAAoB,UAACC,CAAD,EAAIC,CAAJ;AAAA,yBACpC;AACAD,oBAAAA,CAAC,CAACE,aAAF,CAAgBC,OAAhB,CAAwBC,QAAxB,GAAmCH,CAAC,CAACC,aAAF,CAAgBC,OAAhB,CAAwBC,QAA3D,GACG,CADH,GAEG,CAAC;AAJgC;AAAA,iBAApB,CAAjB;;AAOAP,uCAAYC,WAAZ,EACC;AACA5B,gBAAAA,OAAO,CAACE,MAAR,CAAe,CAAf,EAAkB8B,aAFnB,EAGC;AACA,gCAJD,EAKC;AACCE,kBAAAA,QAAQ,EAAE,qBADX;AAEChC,kBAAAA,MAAM,EAAE,CAAC,6BAAD;AAFT,iBALD;;AAWAyB,uCAAYC,WAAZ,EACC;AACA5B,gBAAAA,OAAO,CAACE,MAAR,CAAe,CAAf,EAAkB8B,aAFnB,EAGC;AACA,gCAJD,EAKC;AACCE,kBAAAA,QAAQ,EAAE,mBADX;AAEChC,kBAAAA,MAAM,EAAE,CAAC,2BAAD;AAFT,iBALD;;AA/BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;8GA2CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKiC,oBAAL,CAA0B,SAA1B,CAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAIKC,gBAAAA,QAJL,GAIgB,KAJhB;AAAA;AAAA,uBAMOD,GAAG,CAACE,EAAJ,CAAO,0BAAP,EAAmC,YAAM;AAC9CD,kBAAAA,QAAQ,GAAG,IAAX;AACA,yBAAO,EAAP;AACA,iBAHK,CANP;;AAAA;AAAA;AAAA,uBAWO,KAAK1C,KAAL,CAAW,QAAX,EAAqBE,YAArB,CAAkC;AACvCE,kBAAAA,cAAc,EAAEV;AADuB,iBAAlC,CAXP;;AAAA;AAeCI,6BAAO8C,MAAP,CAAcF,QAAd;;AAfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oIAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKF,oBAAL,CAA0B,SAA1B,CAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAAA;AAAA,uBAKOA,GAAG,CAACE,EAAJ,CAAO,0BAAP,EAAmC,UAACE,OAAD,EAAa;AACrDC,kBAAAA,WAAW,GAAGD,OAAd;AACA,yBAAO,EAAP;AACA,iBAHK,CALP;;AAAA;AAAA;AAAA,uBAUO,KAAK7C,KAAL,CAAW,QAAX,EAAqBE,YAArB,CAAkC;AACvCE,kBAAAA,cAAc,EAAEV;AADuB,iBAAlC,CAVP;;AAAA;AAcC,qBAAWqD,IAAX,IAAmBpC,wBAAnB,EAAgC;AAC/Bb,+BAAOgB,WAAP,CACCgC,WAAW,CAACE,OADb,EAEC;AACA,8DAA+BrC,yBAAYoC,IAAZ,CAA/B,CAHD;AAKA;;AApBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0IAuBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKP,oBAAL,CAA0B,SAA1B,CAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAAA;AAAA,uBAIOA,GAAG,CAACE,EAAJ,CAAO,0BAAP,EAAmC,YAAM;AAC9C,yBAAO;AACNK,oBAAAA,OAAO,EAAE,CACR,yBAAY;AACXjC,sBAAAA,EAAE,EAAE,MADO;AAEXkC,sBAAAA,SAAS,EAAE,iBAFA;AAGXlB,sBAAAA,MAAM,EAAE;AAHG,qBAAZ,CADQ;AADH,mBAAP;AASA,iBAVK,CAJP;;AAAA;AAAA;AAAA,uBAgBuB,KAAK/B,KAAL,CAAW,QAAX,EAAqBE,YAArB,CAAkC;AACvDE,kBAAAA,cAAc,EAAEV;AADuC,iBAAlC,CAhBvB;;AAAA;AAgBOW,gBAAAA,OAhBP;;AAoBCP,6BAAOqB,QAAP,CAAgBd,OAAO,CAACE,MAAxB,EAAgC,CAAhC;;AACQD,gBAAAA,kBArBT,GAqBgCD,OArBhC,CAqBSC,kBArBT;;AAuBCR,6BAAOC,QAAP,CAAgBO,kBAAkB,CAAC4C,eAAnC;;AAvBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;yIA0BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKV,oBAAL,CAA0B,SAA1B,CAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAAA;AAAA,uBAIO,KAAKU,WAAL,EAJP;;AAAA;AAAA;AAAA,uBAMOV,GAAG,CAACE,EAAJ,CAAO,0BAAP,EAAmC,YAAM;AAC9C,yBAAO;AACNK,oBAAAA,OAAO,EAAE,CACR;AACCjC,sBAAAA,EAAE,EAAE,WADL;AAECgC,sBAAAA,IAAI,EAAE,cAFP;AAGCE,sBAAAA,SAAS,EAAE,WAHZ;AAICG,sBAAAA,OAAO,EAAE,aAJV;AAKCC,sBAAAA,WAAW,EAAE,0BALd;AAMCtB,sBAAAA,MAAM,EAAE;AACPgB,wBAAAA,IAAI,EAAE;AACLpB,0BAAAA,IAAI,EAAE,MADD;AAEL2B,0BAAAA,UAAU,EAAE;AAFP;AADC;AANT,qBADQ;AADH,mBAAP;AAiBA,iBAlBK,CANP;;AAAA;AAAA;AAAA,uBA0BuB,KAAKtD,KAAL,CAAW,QAAX,EAAqBE,YAArB,CAAkC;AACvDE,kBAAAA,cAAc,EAAEV;AADuC,iBAAlC,CA1BvB;;AAAA;AA0BOW,gBAAAA,OA1BP;;AA8BCP,6BAAOqB,QAAP,CAAgBd,OAAO,CAACC,kBAAR,CAA2BiD,SAA3C,EAAsD,CAAtD;;AA9BD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WAiCA,yBAA+BP,OAA/B,EAAkD;AAAA,iDAC5BA,OAD4B;AAAA;;AAAA;AACjD,4DAA8B;AAAA,cAAnBQ,MAAmB;AAC7B,sCAAeA,MAAf;AACA;AAHgD;AAAA;AAAA;AAAA;AAAA;AAIjD;;;;sHAED,mBACClB,OADD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAECmB,gBAAAA,cAFD,iEAEkB,eAFlB;AAAA;AAAA,uBAIO,KAAKC,WAAL,CAAiB,SAAjB,CAJP;;AAAA;AAAA;AAAA,uBAMO,KAAKP,WAAL,CAAiBM,cAAjB,CANP;;AAAA;AAAA;AAAA,uBAQuB,KAAKzD,KAAL,CAAW,QAAX,EAAqBE,YAArB;AACrBE,kBAAAA,cAAc,EAAEV;AADK,mBAEjB4C,OAAO,IAAI,EAFM,EARvB;;AAAA;AAQOjC,gBAAAA,OARP;AAAA,mDAYQA,OAZR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uGAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAiCoD,gBAAAA,cAAjC,iEAAkD,eAAlD;AACOE,gBAAAA,UADP,GACoB,KAAKzC,WAAL,CAAiB,KAAjB,EAAwB,SAAxB,CADpB;AAAA;AAAA,uBAEO0C,2BAASC,OAAT,CAAiB,KAAKC,eAAL,CAAqBL,cAArB,CAAjB,EAAuDE,UAAvD,CAFP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+HAKA,mBACCrB,OADD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAECyB,gBAAAA,gBAFD,iEAEoB,qBAFpB;AAAA;AAAA,uBAIO,KAAKL,WAAL,CAAiB,SAAjB,CAJP;;AAAA;AAMOM,gBAAAA,SANP,GAMmB,KAAK9C,WAAL,CAAiB,KAAjB,EAAwB,QAAxB,CANnB;AAAA;AAAA,uBAOO0C,2BAASC,OAAT,CAAiB,KAAKC,eAAL,CAAqBC,gBAArB,CAAjB,EAAyDC,SAAzD,CAPP;;AAAA;AAAA;AAAA,uBASuB,KAAKhE,KAAL,CAAW,QAAX,EAAqBG,WAArB,CAAiCmC,OAAjC,CATvB;;AAAA;AASOjC,gBAAAA,OATP;AAAA,mDAUQA,OAVR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAvR4C4D,+B","sourcesContent":["import {\n\tbuildSchema,\n\tnormalizeSchemaToIdWithVersion,\n\tSchema,\n\tvalidateSchema,\n} from '@sprucelabs/schema'\nimport {\n\tCORE_NAMESPACE,\n\tdiskUtil,\n\tnamesUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport fieldClassMap from '#spruce/schemas/fields/fieldClassMap'\nimport { coreSchemas } from '../../features/schema/stores/SchemaStore'\nimport AbstractSchemaTest from '../../tests/AbstractSchemaTest'\n\nconst LOCAL_NAMESPACE = 'TestSkill'\n\nexport default class SchemaStoreTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async canInstantiateSchemaStore() {\n\t\tassert.isTruthy(this.Store('schema'))\n\t}\n\n\t@test()\n\tprotected static async hasFetchSchemaTemplateItemsMethod() {\n\t\tassert.isFunction(this.Store('schema').fetchSchemas)\n\t\tassert.isFunction(this.Store('schema').fetchFields)\n\t}\n\n\t@test()\n\tprotected static async fetchesCoreSchemas() {\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\t\tconst { schemasByNamespace, errors } = results\n\n\t\tassert.isEqual(errors.length, 0)\n\t\tassert.isTruthy(schemasByNamespace[CORE_NAMESPACE])\n\n\t\tconst coreSchemas = schemasByNamespace[CORE_NAMESPACE]\n\t\tassert.isAbove(coreSchemas.length, 0)\n\n\t\tthis.validateSchemas(coreSchemas)\n\n\t\tassert.doesInclude(coreSchemas, { id: 'person' })\n\t\tassert.doesInclude(coreSchemas, { id: 'skill' })\n\t}\n\n\t@test()\n\tprotected static async fetchesLocalSchemas() {\n\t\tconst results = await this.copySchemasAndFetchSchemas({\n\t\t\tlocalSchemaDir: this.resolvePath('src', 'schemas'),\n\t\t})\n\t\tconst { schemasByNamespace, errors } = results\n\n\t\tassert.isEqual(errors.length, 0)\n\t\tassert.isTruthy(schemasByNamespace[LOCAL_NAMESPACE])\n\t\tassert.isLength(Object.keys(schemasByNamespace), 2)\n\n\t\tconst localSchemas = schemasByNamespace[LOCAL_NAMESPACE]\n\n\t\tthis.validateSchemas(localSchemas)\n\t\tassert.isLength(localSchemas, 3)\n\t}\n\n\t@test.skip(\n\t\t\"Skipped because schemas are bulk imported and it's all or nothing.\"\n\t)\n\tprotected static async canHandleABadSchema() {\n\t\tconst results = await this.copySchemasAndFetchSchemas(\n\t\t\t{\n\t\t\t\tlocalSchemaDir: this.resolvePath('src', 'schemas'),\n\t\t\t},\n\t\t\t'test_builders_one_bad'\n\t\t)\n\n\t\tassert.isEqual(results.errors.length, 1)\n\n\t\tassert.doesInclude(results.errors[0].message, 'badSchema')\n\n\t\tconst { schemasByNamespace } = results\n\t\tconst localSchemas = schemasByNamespace[LOCAL_NAMESPACE]\n\n\t\tthis.validateSchemas(localSchemas)\n\t\tassert.isLength(localSchemas, 3)\n\t}\n\n\t@test()\n\tprotected static async canFetchCoreFields() {\n\t\tconst results = await SchemaStoreTest.copySchemasAndFieldsThenFetchFields()\n\n\t\tconst fieldTypes = Object.keys(fieldClassMap)\n\n\t\tfor (const type of fieldTypes) {\n\t\t\tassert.doesInclude(results, {\n\t\t\t\t'fields[].registration.type': namesUtil.toPascal(type),\n\t\t\t})\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async canFetchLocalFields() {\n\t\tconst results = await this.copySchemasAndFieldsThenFetchFields({\n\t\t\tlocalAddonsDir: this.resolvePath('src', 'addons'),\n\t\t})\n\n\t\tassert.isLength(results.errors, 0)\n\t\tassert.isLength(results.fields, Object.keys(fieldClassMap).length + 1)\n\t\tassert.doesInclude(results, { 'fields[].registration.type': 'Test' })\n\t\tassert.doesInclude(results, {\n\t\t\t'fields[].registration.description': 'A test for us all',\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canHandleBadFields() {\n\t\tconst results = await this.copySchemasAndFieldsThenFetchFields(\n\t\t\t{\n\t\t\t\tlocalAddonsDir: this.resolvePath('src', 'addons'),\n\t\t\t},\n\t\t\t'field_registrations_one_bad'\n\t\t)\n\n\t\tassert.isLength(results.errors, 1)\n\t\tassert.doesInclude(results.errors[0].message, 'badField')\n\t}\n\n\t@test()\n\tprotected static async wontLetYouSpecifyANamespaceNorVersion() {\n\t\tconst results = await this.copySchemasAndFetchSchemas(\n\t\t\t{},\n\t\t\t'test_builders_with_namespace_and_version'\n\t\t)\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.isLength(results.errors, 2)\n\n\t\terrorAssert.assertError(results.errors[0], 'SCHEMA_FAILED_TO_IMPORT')\n\t\terrorAssert.assertError(results.errors[1], 'SCHEMA_FAILED_TO_IMPORT')\n\n\t\tresults.errors = results.errors.sort((a, b) =>\n\t\t\t//@ts-ignore\n\t\t\ta.originalError.options.schemaId > b.originalError.options.schemaId\n\t\t\t\t? 1\n\t\t\t\t: -1\n\t\t)\n\n\t\terrorAssert.assertError(\n\t\t\t// @ts-ignore\n\t\t\tresults.errors[0].originalError,\n\t\t\t// @ts-ignore\n\t\t\t'INVALID_SCHEMA',\n\t\t\t{\n\t\t\t\tschemaId: 'schemaWithNamespace',\n\t\t\t\terrors: ['namespace_should_not_be_set'],\n\t\t\t}\n\t\t)\n\n\t\terrorAssert.assertError(\n\t\t\t// @ts-ignore\n\t\t\tresults.errors[1].originalError,\n\t\t\t// @ts-ignore\n\t\t\t'INVALID_SCHEMA',\n\t\t\t{\n\t\t\t\tschemaId: 'schemaWithVersion',\n\t\t\t\terrors: ['version_should_not_be_set'],\n\t\t\t}\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emitsDidFetchEvent() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tlet wasFired = false\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\twasFired = true\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isTrue(wasFired)\n\t}\n\n\t@test()\n\tprotected static async fetchEventPayloadIncludesAllOtherSchemas() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tlet emitPayload: any\n\t\tawait cli.on('schema.did-fetch-schemas', (payload) => {\n\t\t\temitPayload = payload\n\t\t\treturn {}\n\t\t})\n\n\t\tawait this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tfor (const name in coreSchemas) {\n\t\t\tassert.doesInclude(\n\t\t\t\temitPayload.schemas,\n\t\t\t\t//@ts-ignore\n\t\t\t\tnormalizeSchemaToIdWithVersion(coreSchemas[name])\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async canListenToFetchEventToDropInAdditionalSchemas() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\treturn {\n\t\t\t\tschemas: [\n\t\t\t\t\tbuildSchema({\n\t\t\t\t\t\tid: 'test',\n\t\t\t\t\t\tnamespace: 'MyCoolNamespace',\n\t\t\t\t\t\tfields: {},\n\t\t\t\t\t}),\n\t\t\t\t],\n\t\t\t}\n\t\t})\n\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isLength(results.errors, 0)\n\t\tconst { schemasByNamespace } = results\n\n\t\tassert.isTruthy(schemasByNamespace.MyCoolNamespace)\n\t}\n\n\t@test()\n\tprotected static async multipleSchemasWithSameIdAndVersionReturnOnce() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\n\t\tawait this.copySchemas()\n\n\t\tawait cli.on('schema.did-fetch-schemas', () => {\n\t\t\treturn {\n\t\t\t\tschemas: [\n\t\t\t\t\t{\n\t\t\t\t\t\tid: 'schemaOne',\n\t\t\t\t\t\tname: 'First schema',\n\t\t\t\t\t\tnamespace: 'TestSkill',\n\t\t\t\t\t\tversion: 'v2020_06_23',\n\t\t\t\t\t\tdescription: 'It is going to be great!',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tname: {\n\t\t\t\t\t\t\t\ttype: 'text',\n\t\t\t\t\t\t\t\tisRequired: true,\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\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t})\n\n\t\tassert.isLength(results.schemasByNamespace.TestSkill, 3)\n\t}\n\n\tprivate static validateSchemas(schemas: Schema[]) {\n\t\tfor (const schema of schemas) {\n\t\t\tvalidateSchema(schema)\n\t\t}\n\t}\n\n\tprivate static async copySchemasAndFetchSchemas(\n\t\toptions?: Record<string, any>,\n\t\ttestBuilderDir = 'test_builders'\n\t) {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tawait this.copySchemas(testBuilderDir)\n\n\t\tconst results = await this.Store('schema').fetchSchemas({\n\t\t\tlocalNamespace: LOCAL_NAMESPACE,\n\t\t\t...(options || {}),\n\t\t})\n\t\treturn results\n\t}\n\n\tprivate static async copySchemas(testBuilderDir = 'test_builders') {\n\t\tconst schemasDir = this.resolvePath('src', 'schemas')\n\t\tawait diskUtil.copyDir(this.resolveTestPath(testBuilderDir), schemasDir)\n\t}\n\n\tprivate static async copySchemasAndFieldsThenFetchFields(\n\t\toptions?: Record<string, any>,\n\t\tregistrationsDir = 'field_registrations'\n\t) {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tconst addonsDir = this.resolvePath('src', 'addons')\n\t\tawait diskUtil.copyDir(this.resolveTestPath(registrationsDir), addonsDir)\n\n\t\tconst results = await this.Store('schema').fetchFields(options)\n\t\treturn results\n\t}\n}\n"],"file":"SchemaStore.test.js"}
|
|
@@ -73,7 +73,7 @@ var SettingUpANodeModuleTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
|
|
|
73
73
|
case 5:
|
|
74
74
|
err = _context.sent;
|
|
75
75
|
|
|
76
|
-
_testUtils.
|
|
76
|
+
_testUtils.errorAssert.assertError(err, 'VALIDATION_FAILED');
|
|
77
77
|
|
|
78
78
|
case 7:
|
|
79
79
|
case "end":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/SettingUpANodeModule.test.ts"],"names":["SettingUpANodeModuleTest","Cli","cli","assert","doesThrowAsync","installFeatures","features","code","options","err","
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/SettingUpANodeModule.test.ts"],"names":["SettingUpANodeModuleTest","Cli","cli","assert","doesThrowAsync","installFeatures","features","code","options","err","errorAssert","assertError","installer","getFeatureInstaller","isInstalled","isFalse","name","description","pkgService","Service","contents","readPackage","doesInclude","version","AbstractCliTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,wB,WACnB,iB,UAkBA,iB,UAOA,iB;;;;;;;;;;;;;gHAzBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKC,GAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAAA;AAAA,uBAGmBC,aAAOC,cAAP,CAAsB;AAAA,yBACvCF,GAAG,CAACG,eAAJ,CAAoB;AACnBC,oBAAAA,QAAQ,EAAE,CACT;AACCC,sBAAAA,IAAI,EAAE,MADP;AAEC;AACAC,sBAAAA,OAAO,EAAE;AAHV,qBADS;AADS,mBAApB,CADuC;AAAA,iBAAtB,CAHnB;;AAAA;AAGOC,gBAAAA,GAHP;;AAeCC,uCAAYC,WAAZ,CAAwBF,GAAxB,EAA6B,mBAA7B;;AAfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iHAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOG,gBAAAA,SAFP,GAEmB,KAAKC,mBAAL,EAFnB;AAAA;AAAA,uBAG2BD,SAAS,CAACE,WAAV,CAAsB,MAAtB,CAH3B;;AAAA;AAGOA,gBAAAA,WAHP;;AAICX,6BAAOY,OAAP,CAAeD,WAAf;;AAJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;sIAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKb,GAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAAA;AAAA,uBAIOA,GAAG,CAACG,eAAJ,CAAoB;AACzBC,kBAAAA,QAAQ,EAAE,CACT;AACCC,oBAAAA,IAAI,EAAE,MADP;AAECC,oBAAAA,OAAO,EAAE;AACRQ,sBAAAA,IAAI,EAAE,aADE;AAERC,sBAAAA,WAAW,EAAE;AAFL;AAFV,mBADS;AADe,iBAApB,CAJP;;AAAA;AAgBOC,gBAAAA,UAhBP,GAgBoB,KAAKC,OAAL,CAAa,KAAb,CAhBpB;AAiBOC,gBAAAA,QAjBP,GAiBkBF,UAAU,CAACG,WAAX,EAjBlB;;AAmBClB,6BAAOmB,WAAP,CAAmBF,QAAnB,EAA6B;AAC5BJ,kBAAAA,IAAI,EAAE,aADsB;AAE5BC,kBAAAA,WAAW,EAAE,WAFe;AAG5BM,kBAAAA,OAAO,EAAE;AAHmB,iBAA7B;;AAnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA1BqDC,4B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class SettingUpANodeModuleTest extends AbstractCliTest {\n\t@test()\n\tprotected static async settingUpANodeModule() {\n\t\tconst cli = await this.Cli()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tcli.installFeatures({\n\t\t\t\tfeatures: [\n\t\t\t\t\t{\n\t\t\t\t\t\tcode: 'node',\n\t\t\t\t\t\t//@ts-ignore\n\t\t\t\t\t\toptions: {},\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t})\n\t\t)\n\n\t\terrorAssert.assertError(err, 'VALIDATION_FAILED')\n\t}\n\n\t@test()\n\tprotected static async canTellIfNotInstalled() {\n\t\tconst installer = this.getFeatureInstaller()\n\t\tconst isInstalled = await installer.isInstalled('node')\n\t\tassert.isFalse(isInstalled)\n\t}\n\n\t@test()\n\tprotected static async installsNodeModuleWithCleanedUpPackageJson() {\n\t\tconst cli = await this.Cli()\n\n\t\tawait cli.installFeatures({\n\t\t\tfeatures: [\n\t\t\t\t{\n\t\t\t\t\tcode: 'node',\n\t\t\t\t\toptions: {\n\t\t\t\t\t\tname: 'Test module',\n\t\t\t\t\t\tdescription: 'so great!',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t})\n\n\t\tconst pkgService = this.Service('pkg')\n\t\tconst contents = pkgService.readPackage()\n\n\t\tassert.doesInclude(contents, {\n\t\t\tname: 'test-module',\n\t\t\tdescription: 'so great!',\n\t\t\tversion: '0.0.1',\n\t\t})\n\t}\n}\n"],"file":"SettingUpANodeModule.test.js"}
|
|
@@ -115,7 +115,7 @@ var SkillStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
|
|
|
115
115
|
case 2:
|
|
116
116
|
err = _context3.sent;
|
|
117
117
|
|
|
118
|
-
_testUtils.
|
|
118
|
+
_testUtils.errorAssert.assertError(err, 'DIRECTORY_NOT_SKILL');
|
|
119
119
|
|
|
120
120
|
case 4:
|
|
121
121
|
case "end":
|
|
@@ -150,7 +150,7 @@ var SkillStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
|
|
|
150
150
|
case 2:
|
|
151
151
|
err = _context4.sent;
|
|
152
152
|
|
|
153
|
-
_testUtils.
|
|
153
|
+
_testUtils.errorAssert.assertError(err, 'DIRECTORY_NOT_SKILL');
|
|
154
154
|
|
|
155
155
|
case 4:
|
|
156
156
|
case "end":
|
|
@@ -185,7 +185,7 @@ var SkillStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
|
|
|
185
185
|
case 2:
|
|
186
186
|
err = _context5.sent;
|
|
187
187
|
|
|
188
|
-
_testUtils.
|
|
188
|
+
_testUtils.errorAssert.assertError(err, 'DIRECTORY_NOT_SKILL');
|
|
189
189
|
|
|
190
190
|
case 4:
|
|
191
191
|
case "end":
|
|
@@ -383,7 +383,7 @@ var SkillStoreTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
|
|
|
383
383
|
case 42:
|
|
384
384
|
err = _context8.sent;
|
|
385
385
|
|
|
386
|
-
_testUtils.
|
|
386
|
+
_testUtils.errorAssert.assertError(err, 'GENERIC');
|
|
387
387
|
|
|
388
388
|
pkg = this.Service('pkg');
|
|
389
389
|
namespace = pkg.get('skill.namespace');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/SkillStore.test.ts"],"names":["SkillStoreTest","assert","isTruthy","Store","isFunction","register","doesThrowAsync","name","slug","err","
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/SkillStore.test.ts"],"names":["SkillStoreTest","assert","isTruthy","Store","isFunction","register","doesThrowAsync","name","slug","err","errorAssert","assertError","loadCurrentSkill","isCurrentSkillRegistered","FeatureFixture","installCachedFeatures","loadCurrentSkillsNamespace","namespace","isEqual","store","setCurrentSkillsNamespace","Date","getTime","people","loginAsDemoPerson","skillStore","isRegistered","isFalse","skill","isString","apiKey","id","connectToApi","client","authenticate","skillId","results","isTrue","currentSkill","env","Service","get","pkg","AbstractCliTest"],"mappings":"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","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractCliTest from '../../tests/AbstractCliTest'\n\nexport default class SkillStoreTest extends AbstractCliTest {\n\t@test()\n\tprotected static async canInstantiateSkillStore() {\n\t\tassert.isTruthy(this.Store('skill'))\n\t}\n\n\t@test()\n\tprotected static async hasRegisterMethod() {\n\t\tassert.isFunction(this.Store('skill').register)\n\t}\n\n\t@test()\n\tprotected static async cantRegisterIfNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Store('skill').register({\n\t\t\t\tname: 'awesome skill',\n\t\t\t\tslug: 'awesome-skill',\n\t\t\t})\n\t\t)\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async cantLoadcurrentSkillIfNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Store('skill').loadCurrentSkill()\n\t\t)\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async cantCheckIfSkillIsRegisteredNotInSkill() {\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Store('skill').isCurrentSkillRegistered()\n\t\t)\n\t\terrorAssert.assertError(err, 'DIRECTORY_NOT_SKILL')\n\t}\n\n\t@test()\n\tprotected static async canGetNamespace() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst namespace = await this.Store('skill').loadCurrentSkillsNamespace()\n\t\tassert.isEqual(namespace, 'TestSkill')\n\t}\n\n\t@test()\n\tprotected static async canSetNamespace() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst store = this.Store('skill')\n\t\tlet namespace = await store.loadCurrentSkillsNamespace()\n\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('new-namespace')\n\n\t\tnamespace = await store.loadCurrentSkillsNamespace()\n\t\tassert.isEqual(namespace, 'NewNamespace')\n\t}\n\n\t@test()\n\tprotected static async canRegister() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tconst slug = `awesome-skill-${new Date().getTime()}`\n\t\tawait this.people.loginAsDemoPerson()\n\n\t\tconst skillStore = this.Store('skill')\n\n\t\tlet isRegistered = await skillStore.isCurrentSkillRegistered()\n\t\tassert.isFalse(isRegistered)\n\n\t\tconst skill = await skillStore.register({\n\t\t\tname: 'awesome skill',\n\t\t\tslug,\n\t\t})\n\n\t\tassert.isTruthy(skill)\n\t\tassert.isEqual(skill.name, 'awesome skill')\n\t\tassert.isEqual(skill.slug, slug)\n\t\tassert.isString(skill.apiKey)\n\t\tassert.isString(skill.id)\n\n\t\tconst client = await this.connectToApi()\n\t\tconst results = await client.authenticate({\n\t\t\tskillId: skill.id,\n\t\t\tapiKey: skill.apiKey,\n\t\t})\n\n\t\tassert.isEqual(results.skill?.id, skill.id)\n\n\t\tisRegistered = await skillStore.isCurrentSkillRegistered()\n\t\tassert.isTrue(isRegistered)\n\n\t\tconst currentSkill = await skillStore.loadCurrentSkill()\n\n\t\tassert.isEqual(currentSkill.id, skill.id)\n\t\tassert.isTrue(currentSkill.isRegistered)\n\t\tassert.isEqual(currentSkill.name, 'awesome skill')\n\t\tassert.isEqual(currentSkill.slug, slug)\n\t\tassert.isEqual(currentSkill.apiKey, skill.apiKey)\n\n\t\tconst env = this.Service('env')\n\n\t\tassert.isEqual(env.get('SKILL_ID'), skill.id)\n\t\tassert.isEqual(env.get('SKILL_API_KEY'), skill.apiKey)\n\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tskillStore.setCurrentSkillsNamespace('test')\n\t\t)\n\n\t\terrorAssert.assertError(err, 'GENERIC')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tconst namespace = pkg.get('skill.namespace')\n\t\tassert.isEqual(namespace, slug)\n\t}\n}\n"],"file":"SkillStore.test.js"}
|
|
@@ -127,7 +127,7 @@ var TestRunnerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
|
|
|
127
127
|
case 2:
|
|
128
128
|
err = _context3.sent;
|
|
129
129
|
|
|
130
|
-
_testUtils.
|
|
130
|
+
_testUtils.errorAssert.assertError(err, 'INVALID_TEST_DIRECTORY', {
|
|
131
131
|
dir: this.cwd
|
|
132
132
|
});
|
|
133
133
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/implementation/TestRunner.test.ts"],"names":["TestRunnerTest","testRunner","TestRunner","cwd","commandService","Service","assert","isTruthy","doesThrowAsync","run","err","errorAssertUtil","assertError","dir","installTests","cli","createTest","name","results","isEqual","totalTestFiles","totalFailed","totalTests","shouldFix","testResults","totalPassed","on","payload","shouldBuild","pattern","promise","kill","isTrue","wasKilled","options","Action","execute","type","nameReadable","nameCamel","namesUtil","toCamel","namePascal","toPascal","waitForInput","ui","sendInput","file","files","fixBadTest","path","build","AbstractTestTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAGA;;AACA;;;;;;;;IAEqBA,c,WAWnB,iB,UAKA,iB,UAQA,iB,UAqBA,iB,UAcA,iB,UAmBA,iB,UAqBA,iB;;;;;;;;;;;;;sGAhGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAEC,qBAAKC,UAAL,GAAkB,IAAIC,sBAAJ,CAAe;AAChCC,kBAAAA,GAAG,EAAE,KAAKA,GADsB;AAEhCC,kBAAAA,cAAc,EAAE,KAAKC,OAAL,CAAa,SAAb;AAFgB,iBAAf,CAAlB;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAQA;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,QAAP,CAAgB,KAAKN,UAArB;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mIAKA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmBK,aAAOE,cAAP,CAAsB;AAAA,yBAAM,KAAI,CAACP,UAAL,CAAgBQ,GAAhB,EAAN;AAAA,iBAAtB,CAFnB;;AAAA;AAEOC,gBAAAA,GAFP;;AAGCC,2CAAgBC,WAAhB,CAA4BF,GAA5B,EAAiC,wBAAjC,EAA2D;AAC1DG,kBAAAA,GAAG,EAAE,KAAKV;AADgD,iBAA3D;;AAHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0HAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKW,YAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAAA;AAAA,uBAIO,KAAKC,UAAL,CAAgB;AAAED,kBAAAA,GAAG,EAAHA,GAAF;AAAOE,kBAAAA,IAAI,EAAE;AAAb,iBAAhB,CAJP;;AAAA;AAAA;AAAA,uBAMqB,KAAKhB,UAAL,CAAgBQ,GAAhB,EANrB;;AAAA;AAMKS,gBAAAA,OANL;;AAQCZ,6BAAOa,OAAP,CAAeD,OAAO,CAACE,cAAvB,EAAuC,CAAvC;;AACAd,6BAAOa,OAAP,CAAeD,OAAO,CAACG,WAAvB,EAAoC,CAApC;;AACAf,6BAAOa,OAAP,CAAeD,OAAO,CAACI,UAAvB,EAAmC,CAAnC;;AAVD;AAAA,uBAYO,KAAKN,UAAL,CAAgB;AAAED,kBAAAA,GAAG,EAAHA,GAAF;AAAOE,kBAAAA,IAAI,EAAE;AAAb,iBAAhB,CAZP;;AAAA;AAAA;AAAA,uBAciB,KAAKhB,UAAL,CAAgBQ,GAAhB,EAdjB;;AAAA;AAcCS,gBAAAA,OAdD;;AAgBCZ,6BAAOa,OAAP,CAAeD,OAAO,CAACE,cAAvB,EAAuC,CAAvC;;AACAd,6BAAOa,OAAP,CAAeD,OAAO,CAACG,WAAvB,EAAoC,CAApC;;AACAf,6BAAOa,OAAP,CAAeD,OAAO,CAACI,UAAvB,EAAmC,CAAnC;;AAlBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6GAqBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKR,YAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAAA;AAAA,uBAIO,KAAKC,UAAL,CAAgB;AAAED,kBAAAA,GAAG,EAAHA,GAAF;AAAOE,kBAAAA,IAAI,EAAE,gBAAb;AAA+BM,kBAAAA,SAAS,EAAE;AAA1C,iBAAhB,CAJP;;AAAA;AAAA;AAAA,uBAM2B,KAAKtB,UAAL,CAAgBQ,GAAhB,EAN3B;;AAAA;AAMOe,gBAAAA,WANP;;AAQClB,6BAAOa,OAAP,CAAeK,WAAW,CAACJ,cAA3B,EAA2C,CAA3C;;AACAd,6BAAOa,OAAP,CAAeK,WAAW,CAACH,WAA3B,EAAwC,CAAxC;;AACAf,6BAAOa,OAAP,CAAeK,WAAW,CAACC,WAA3B,EAAwC,CAAxC;;AACAnB,6BAAOa,OAAP,CAAeK,WAAW,CAACF,UAA3B,EAAuC,CAAvC;;AAXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oHAcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKR,YAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAAA;AAAA,uBAKO,KAAKd,UAAL,CAAgByB,EAAhB,CAAmB,YAAnB,EAAiC,UAACC,OAAD,EAAa;AACnDT,kBAAAA,OAAO,GAAGS,OAAO,CAACT,OAAlB;AACA,iBAFK,CALP;;AAAA;AAAA;AAAA,uBASO,KAAKF,UAAL,CAAgB;AAAED,kBAAAA,GAAG,EAAHA,GAAF;AAAOE,kBAAAA,IAAI,EAAE;AAAb,iBAAhB,CATP;;AAAA;AAAA;AAAA,uBAWO,KAAKhB,UAAL,CAAgBQ,GAAhB,EAXP;;AAAA;AAaCH,6BAAOC,QAAP,CAAgBW,OAAhB;;AACAZ,6BAAOa,OAAP,CAAeD,OAAO,CAACE,cAAvB,EAAuC,CAAvC;;AACAd,6BAAOa,OAAP,CAAeD,OAAO,CAACG,WAAvB,EAAoC,CAApC;;AACAf,6BAAOa,OAAP,CAAeD,OAAO,CAACI,UAAvB,EAAmC,CAAnC;;AAhBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;4GAmBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKR,YAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAAA;AAAA,uBAIO,KAAKC,UAAL,CAAgB;AACrBD,kBAAAA,GAAG,EAAHA,GADqB;AAErBE,kBAAAA,IAAI,EAAE,0BAFe;AAGrBW,kBAAAA,WAAW,EAAE;AAHQ,iBAAhB,CAJP;;AAAA;AAAA;AAAA,uBASO,KAAKZ,UAAL,CAAgB;AAAED,kBAAAA,GAAG,EAAHA,GAAF;AAAOE,kBAAAA,IAAI,EAAE;AAAb,iBAAhB,CATP;;AAAA;AAAA;AAAA,uBAWuB,KAAKhB,UAAL,CAAgBQ,GAAhB,CAAoB;AACzCoB,kBAAAA,OAAO,EAAE;AADgC,iBAApB,CAXvB;;AAAA;AAWOX,gBAAAA,OAXP;;AAeCZ,6BAAOC,QAAP,CAAgBW,OAAhB;;AACAZ,6BAAOa,OAAP,CAAeD,OAAO,CAACE,cAAvB,EAAuC,CAAvC;;AACAd,6BAAOa,OAAP,CAAeD,OAAO,CAACG,WAAvB,EAAoC,CAApC;;AACAf,6BAAOa,OAAP,CAAeD,OAAO,CAACI,UAAvB,EAAmC,CAAnC;;AAlBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;4GAqBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKR,YAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAAA;AAAA,uBAIO,KAAKC,UAAL,CAAgB;AACrBD,kBAAAA,GAAG,EAAHA,GADqB;AAErBE,kBAAAA,IAAI,EAAE,0BAFe;AAGrBW,kBAAAA,WAAW,EAAE;AAHQ,iBAAhB,CAJP;;AAAA;AAAA;AAAA,uBASO,KAAKZ,UAAL,CAAgB;AAAED,kBAAAA,GAAG,EAAHA,GAAF;AAAOE,kBAAAA,IAAI,EAAE;AAAb,iBAAhB,CATP;;AAAA;AAWOa,gBAAAA,OAXP,GAWiB,KAAK7B,UAAL,CAAgBQ,GAAhB,CAAoB;AACnCoB,kBAAAA,OAAO,EAAE;AAD0B,iBAApB,CAXjB;AAeC,qBAAK5B,UAAL,CAAgB8B,IAAhB;AAfD;AAAA,uBAiBuBD,OAjBvB;;AAAA;AAiBOZ,gBAAAA,OAjBP;;AAmBCZ,6BAAO0B,MAAP,CAAcd,OAAO,CAACe,SAAtB;;AAnBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;sGAsBA,kBAAgCC,OAAhC;AAAA;;AAAA;AAAA;AAAA;AAAA;AAMSjB,gBAAAA,IANT,GAMyDiB,OANzD,CAMSjB,IANT,uBAMyDiB,OANzD,CAMeX,SANf,EAMeA,SANf,mCAM2B,KAN3B,8CAMyDW,OANzD,CAMkCN,WANlC,EAMkCA,WANlC,qCAMgD,IANhD;AAQOE,gBAAAA,OARP,GAQiB,KAAKK,MAAL,CAAY,MAAZ,EAAoB,QAApB,EAA8BC,OAA9B,CAAsC;AACrDC,kBAAAA,IAAI,EAAE,YAD+C;AAErDC,kBAAAA,YAAY,EAAErB,IAFuC;AAGrDsB,kBAAAA,SAAS,EAAEC,4BAAUC,OAAV,CAAkBxB,IAAlB,CAH0C;AAIrDyB,kBAAAA,UAAU,EAAEF,4BAAUG,QAAV,CAAmB1B,IAAnB;AAJyC,iBAAtC,CARjB;AAAA;AAAA,uBAeO,KAAK2B,YAAL,EAfP;;AAAA;AAAA;AAAA,uBAgBO,KAAKC,EAAL,CAAQC,SAAR,CAAkB,EAAlB,CAhBP;;AAAA;AAAA;AAAA,uBAkBuBhB,OAlBvB;;AAAA;AAkBOZ,gBAAAA,OAlBP;;AAoBC,oBAAIK,SAAJ,EAAe;AACRwB,kBAAAA,IADQ,qBACD7B,OAAO,CAAC8B,KADP,mDACD,eAAgB,CAAhB,CADC;;AAEd1C,+BAAOC,QAAP,CAAgBwC,IAAhB;;AACA,uBAAKE,UAAL,CAAgBF,IAAI,CAACG,IAArB;AACA;;AAxBF,qBA0BKtB,WA1BL;AAAA;AAAA;AAAA;;AAAA;AAAA,uBA2BQ,KAAKvB,OAAL,CAAa,OAAb,EAAsB8C,KAAtB,EA3BR;;AAAA;AAAA,kDA8BQjC,OA9BR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAzH2CkC,6B","sourcesContent":["import { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../cli'\nimport { SpruceTestResults } from '../../features/test/test.types'\nimport TestRunner from '../../features/test/TestRunner'\nimport AbstractTestTest from '../../tests/AbstractTestTest'\n\nexport default class TestRunnerTest extends AbstractTestTest {\n\tprotected static testRunner: TestRunner\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.testRunner = new TestRunner({\n\t\t\tcwd: this.cwd,\n\t\t\tcommandService: this.Service('command'),\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canCreateTestRunner() {\n\t\tassert.isTruthy(this.testRunner)\n\t}\n\n\t@test()\n\tprotected static async runningOnDirWithNoTestsConfiguredThrows() {\n\t\tconst err = await assert.doesThrowAsync(() => this.testRunner.run())\n\t\terrorAssertUtil.assertError(err, 'INVALID_TEST_DIRECTORY', {\n\t\t\tdir: this.cwd,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async getsFailedResultsWhenTestFails() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({ cli, name: 'Can book appointment' })\n\n\t\tlet results = await this.testRunner.run()\n\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\n\t\tawait this.createTest({ cli, name: 'Can cancel appointment' })\n\n\t\tresults = await this.testRunner.run()\n\n\t\tassert.isEqual(results.totalTestFiles, 2)\n\t\tassert.isEqual(results.totalFailed, 2)\n\t\tassert.isEqual(results.totalTests, 4)\n\t}\n\n\t@test()\n\tprotected static async passesOnGoodTests() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({ cli, name: 'Can pass tests', shouldFix: true })\n\n\t\tconst testResults = await this.testRunner.run()\n\n\t\tassert.isEqual(testResults.totalTestFiles, 1)\n\t\tassert.isEqual(testResults.totalFailed, 0)\n\t\tassert.isEqual(testResults.totalPassed, 2)\n\t\tassert.isEqual(testResults.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async emitsEventsOnTestUpdates() {\n\t\tconst cli = await this.installTests()\n\n\t\tlet results: SpruceTestResults | undefined\n\t\tawait this.testRunner.on('did-update', (payload) => {\n\t\t\tresults = payload.results\n\t\t})\n\n\t\tawait this.createTest({ cli, name: 'Emitting test' })\n\n\t\tawait this.testRunner.run()\n\n\t\tassert.isTruthy(results)\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async canHandlePattern() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({\n\t\t\tcli,\n\t\t\tname: 'Can handlePatterns tests',\n\t\t\tshouldBuild: false,\n\t\t})\n\t\tawait this.createTest({ cli, name: 'Can handlePatterns2 tests' })\n\n\t\tconst results = await this.testRunner.run({\n\t\t\tpattern: 'canHandlePatternsTests',\n\t\t})\n\n\t\tassert.isTruthy(results)\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async testsCanBeKilled() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({\n\t\t\tcli,\n\t\t\tname: 'Can handlePatterns tests',\n\t\t\tshouldBuild: false,\n\t\t})\n\t\tawait this.createTest({ cli, name: 'Can handlePatterns2 tests' })\n\n\t\tconst promise = this.testRunner.run({\n\t\t\tpattern: 'canHandlePatternsTests',\n\t\t})\n\n\t\tthis.testRunner.kill()\n\n\t\tconst results = await promise\n\n\t\tassert.isTrue(results.wasKilled)\n\t}\n\n\tprivate static async createTest(options: {\n\t\tcli: CliInterface\n\t\tname: string\n\t\tshouldFix?: boolean\n\t\tshouldBuild?: boolean\n\t}) {\n\t\tconst { name, shouldFix = false, shouldBuild = true } = options\n\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: name,\n\t\t\tnameCamel: namesUtil.toCamel(name),\n\t\t\tnamePascal: namesUtil.toPascal(name),\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\tif (shouldFix) {\n\t\t\tconst file = results.files?.[0]\n\t\t\tassert.isTruthy(file)\n\t\t\tthis.fixBadTest(file.path)\n\t\t}\n\n\t\tif (shouldBuild) {\n\t\t\tawait this.Service('build').build()\n\t\t}\n\n\t\treturn results\n\t}\n}\n"],"file":"TestRunner.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/implementation/TestRunner.test.ts"],"names":["TestRunnerTest","testRunner","TestRunner","cwd","commandService","Service","assert","isTruthy","doesThrowAsync","run","err","errorAssert","assertError","dir","installTests","cli","createTest","name","results","isEqual","totalTestFiles","totalFailed","totalTests","shouldFix","testResults","totalPassed","on","payload","shouldBuild","pattern","promise","kill","isTrue","wasKilled","options","Action","execute","type","nameReadable","nameCamel","namesUtil","toCamel","namePascal","toPascal","waitForInput","ui","sendInput","file","files","fixBadTest","path","build","AbstractTestTest"],"mappings":"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","sourcesContent":["import { namesUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../cli'\nimport { SpruceTestResults } from '../../features/test/test.types'\nimport TestRunner from '../../features/test/TestRunner'\nimport AbstractTestTest from '../../tests/AbstractTestTest'\n\nexport default class TestRunnerTest extends AbstractTestTest {\n\tprotected static testRunner: TestRunner\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.testRunner = new TestRunner({\n\t\t\tcwd: this.cwd,\n\t\t\tcommandService: this.Service('command'),\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async canCreateTestRunner() {\n\t\tassert.isTruthy(this.testRunner)\n\t}\n\n\t@test()\n\tprotected static async runningOnDirWithNoTestsConfiguredThrows() {\n\t\tconst err = await assert.doesThrowAsync(() => this.testRunner.run())\n\t\terrorAssert.assertError(err, 'INVALID_TEST_DIRECTORY', {\n\t\t\tdir: this.cwd,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async getsFailedResultsWhenTestFails() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({ cli, name: 'Can book appointment' })\n\n\t\tlet results = await this.testRunner.run()\n\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\n\t\tawait this.createTest({ cli, name: 'Can cancel appointment' })\n\n\t\tresults = await this.testRunner.run()\n\n\t\tassert.isEqual(results.totalTestFiles, 2)\n\t\tassert.isEqual(results.totalFailed, 2)\n\t\tassert.isEqual(results.totalTests, 4)\n\t}\n\n\t@test()\n\tprotected static async passesOnGoodTests() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({ cli, name: 'Can pass tests', shouldFix: true })\n\n\t\tconst testResults = await this.testRunner.run()\n\n\t\tassert.isEqual(testResults.totalTestFiles, 1)\n\t\tassert.isEqual(testResults.totalFailed, 0)\n\t\tassert.isEqual(testResults.totalPassed, 2)\n\t\tassert.isEqual(testResults.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async emitsEventsOnTestUpdates() {\n\t\tconst cli = await this.installTests()\n\n\t\tlet results: SpruceTestResults | undefined\n\t\tawait this.testRunner.on('did-update', (payload) => {\n\t\t\tresults = payload.results\n\t\t})\n\n\t\tawait this.createTest({ cli, name: 'Emitting test' })\n\n\t\tawait this.testRunner.run()\n\n\t\tassert.isTruthy(results)\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async canHandlePattern() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({\n\t\t\tcli,\n\t\t\tname: 'Can handlePatterns tests',\n\t\t\tshouldBuild: false,\n\t\t})\n\t\tawait this.createTest({ cli, name: 'Can handlePatterns2 tests' })\n\n\t\tconst results = await this.testRunner.run({\n\t\t\tpattern: 'canHandlePatternsTests',\n\t\t})\n\n\t\tassert.isTruthy(results)\n\t\tassert.isEqual(results.totalTestFiles, 1)\n\t\tassert.isEqual(results.totalFailed, 1)\n\t\tassert.isEqual(results.totalTests, 2)\n\t}\n\n\t@test()\n\tprotected static async testsCanBeKilled() {\n\t\tconst cli = await this.installTests()\n\n\t\tawait this.createTest({\n\t\t\tcli,\n\t\t\tname: 'Can handlePatterns tests',\n\t\t\tshouldBuild: false,\n\t\t})\n\t\tawait this.createTest({ cli, name: 'Can handlePatterns2 tests' })\n\n\t\tconst promise = this.testRunner.run({\n\t\t\tpattern: 'canHandlePatternsTests',\n\t\t})\n\n\t\tthis.testRunner.kill()\n\n\t\tconst results = await promise\n\n\t\tassert.isTrue(results.wasKilled)\n\t}\n\n\tprivate static async createTest(options: {\n\t\tcli: CliInterface\n\t\tname: string\n\t\tshouldFix?: boolean\n\t\tshouldBuild?: boolean\n\t}) {\n\t\tconst { name, shouldFix = false, shouldBuild = true } = options\n\n\t\tconst promise = this.Action('test', 'create').execute({\n\t\t\ttype: 'behavioral',\n\t\t\tnameReadable: name,\n\t\t\tnameCamel: namesUtil.toCamel(name),\n\t\t\tnamePascal: namesUtil.toPascal(name),\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\tif (shouldFix) {\n\t\t\tconst file = results.files?.[0]\n\t\t\tassert.isTruthy(file)\n\t\t\tthis.fixBadTest(file.path)\n\t\t}\n\n\t\tif (shouldBuild) {\n\t\t\tawait this.Service('build').build()\n\t\t}\n\n\t\treturn results\n\t}\n}\n"],"file":"TestRunner.test.js"}
|