@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.
Files changed (120) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/build/__tests__/behavioral/AddingADependency.test.js +2 -2
  3. package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
  4. package/build/__tests__/behavioral/BlockingCommands.test.js +2 -2
  5. package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
  6. package/build/__tests__/behavioral/DeployingASkill.test.js +10 -10
  7. package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
  8. package/build/__tests__/behavioral/DeployingToSandbox.test.js +1 -1
  9. package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
  10. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +5 -5
  11. package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
  12. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js +2 -2
  13. package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
  14. package/build/__tests__/behavioral/LoggingInAsASkill.test.js +2 -2
  15. package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
  16. package/build/__tests__/behavioral/RebuildingASkill.test.js +1 -1
  17. package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
  18. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +1 -1
  19. package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
  20. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +1 -1
  21. package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
  22. package/build/__tests__/behavioral/TestingAConversation.test.js +1 -1
  23. package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
  24. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +1 -1
  25. package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
  26. package/build/__tests__/behavioral/events/CreatingAListener.test.js +2 -2
  27. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  28. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +1 -1
  29. package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
  30. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +2 -2
  31. package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
  32. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js +1 -1
  33. package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
  34. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js +1 -1
  35. package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
  36. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +4 -10
  37. package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
  38. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js +6 -12
  39. package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
  40. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js +1 -1
  41. package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
  42. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js +1 -1
  43. package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
  44. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js +2 -2
  45. package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
  46. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +1 -1
  47. package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
  48. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js +1 -1
  49. package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
  50. package/build/__tests__/behavioral/tests/RunningTests.test.js +1 -1
  51. package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
  52. package/build/__tests__/behavioral/tests/SettingUpTests.test.js +1 -1
  53. package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
  54. package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
  55. package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
  56. package/build/__tests__/behavioral/views/CreatingATheme.test.js +1 -1
  57. package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
  58. package/build/__tests__/implementation/ActionExecuter.test.js +3 -9
  59. package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
  60. package/build/__tests__/implementation/ActionExecuter3.test.js +1 -1
  61. package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
  62. package/build/__tests__/implementation/ActionExecuter4.test.js +1 -1
  63. package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
  64. package/build/__tests__/implementation/BulkImporting.test.js +3 -3
  65. package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
  66. package/build/__tests__/implementation/DataStoreStore.test.js +2 -2
  67. package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
  68. package/build/__tests__/implementation/EventStore.test.js +2 -2
  69. package/build/__tests__/implementation/EventStore.test.js.map +1 -1
  70. package/build/__tests__/implementation/SchemaStore.test.js +8 -14
  71. package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
  72. package/build/__tests__/implementation/SettingUpANodeModule.test.js +1 -1
  73. package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
  74. package/build/__tests__/implementation/SkillStore.test.js +4 -4
  75. package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
  76. package/build/__tests__/implementation/TestRunner.test.js +1 -1
  77. package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
  78. package/build/features/schema/stores/SchemaStore.d.ts +16 -0
  79. package/build/features/schema/stores/SchemaStore.js +21 -10
  80. package/build/features/schema/stores/SchemaStore.js.map +1 -1
  81. package/package.json +33 -33
  82. package/src/__tests__/behavioral/AddingADependency.test.ts +3 -3
  83. package/src/__tests__/behavioral/BlockingCommands.test.ts +3 -3
  84. package/src/__tests__/behavioral/DeployingASkill.test.ts +11 -11
  85. package/src/__tests__/behavioral/DeployingToSandbox.test.ts +2 -2
  86. package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +6 -6
  87. package/src/__tests__/behavioral/InstallingASkillAtAnOrg.test.ts +3 -3
  88. package/src/__tests__/behavioral/LoggingInAsASkill.test.ts +3 -3
  89. package/src/__tests__/behavioral/RebuildingASkill.test.ts +2 -2
  90. package/src/__tests__/behavioral/SettingLogTransportsInASkill.test.ts +2 -2
  91. package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +2 -2
  92. package/src/__tests__/behavioral/TestingAConversation.test.ts +1 -1
  93. package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +2 -2
  94. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +3 -3
  95. package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +2 -2
  96. package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +3 -3
  97. package/src/__tests__/behavioral/person/LoggingInAsPerson.test.ts +2 -2
  98. package/src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts +2 -2
  99. package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +1 -1
  100. package/src/__tests__/behavioral/schemas/KeepingSchemasInSync.test.ts +4 -4
  101. package/src/__tests__/behavioral/schemas/SettingUpSchemas.test.ts +2 -2
  102. package/src/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.ts +2 -2
  103. package/src/__tests__/behavioral/skill/RegisteringASkill.test.ts +3 -3
  104. package/src/__tests__/behavioral/stores/CreatingADataStore.test.ts +2 -2
  105. package/src/__tests__/behavioral/stores/KeepingDataStoresInSync.test.ts +2 -2
  106. package/src/__tests__/behavioral/tests/RunningTests.test.ts +2 -2
  107. package/src/__tests__/behavioral/tests/SettingUpTests.test.ts +2 -2
  108. package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +2 -2
  109. package/src/__tests__/behavioral/views/CreatingATheme.test.ts +2 -2
  110. package/src/__tests__/implementation/ActionExecuter.test.ts +1 -1
  111. package/src/__tests__/implementation/ActionExecuter3.test.ts +2 -2
  112. package/src/__tests__/implementation/ActionExecuter4.test.ts +2 -2
  113. package/src/__tests__/implementation/BulkImporting.test.ts +4 -4
  114. package/src/__tests__/implementation/DataStoreStore.test.ts +3 -3
  115. package/src/__tests__/implementation/EventStore.test.ts +3 -3
  116. package/src/__tests__/implementation/SchemaStore.test.ts +6 -6
  117. package/src/__tests__/implementation/SettingUpANodeModule.test.ts +2 -2
  118. package/src/__tests__/implementation/SkillStore.test.ts +5 -5
  119. package/src/__tests__/implementation/TestRunner.test.ts +2 -2
  120. 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","errorAssertUtil","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 { errorAssertUtil } 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\terrorAssertUtil.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\terrorAssertUtil.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\terrorAssertUtil.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"}
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.errorAssertUtil.assertError(err, 'FAILED_TO_IMPORT', {
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.errorAssertUtil.assertError(err, 'FAILED_TO_IMPORT', {
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","errorAssertUtil","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 { errorAssertUtil } 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\terrorAssertUtil.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\terrorAssertUtil.assertError(err, 'FAILED_TO_IMPORT', {\n\t\t\tfile: 'Bad.store.ts',\n\t\t})\n\t}\n}\n"],"file":"DataStoreStore.test.js"}
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.errorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT');
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.errorAssertUtil.assertError(err, 'INVALID_EVENT_CONTRACT');
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.errorAssertUtil.assertError(results.errors[0], 'SCHEMA_FAILED_TO_IMPORT');
389
+ _testUtils.errorAssert.assertError(results.errors[0], 'SCHEMA_FAILED_TO_IMPORT');
396
390
 
397
- _testUtils.errorAssertUtil.assertError(results.errors[1], 'SCHEMA_FAILED_TO_IMPORT');
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.errorAssertUtil.assertError( // @ts-ignore
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.errorAssertUtil.assertError( // @ts-ignore
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":"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","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.errorAssertUtil.assertError(err, 'VALIDATION_FAILED');
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","errorAssertUtil","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,2CAAgBC,WAAhB,CAA4BF,GAA5B,EAAiC,mBAAjC;;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 { errorAssertUtil } 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\terrorAssertUtil.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"}
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.errorAssertUtil.assertError(err, 'DIRECTORY_NOT_SKILL');
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.errorAssertUtil.assertError(err, 'DIRECTORY_NOT_SKILL');
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.errorAssertUtil.assertError(err, 'DIRECTORY_NOT_SKILL');
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.errorAssertUtil.assertError(err, 'GENERIC');
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","errorAssertUtil","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":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;IAEqBA,c,WACnB,iB,UAKA,iB,UAKA,iB,UAWA,iB,UAQA,iB,UAQA,iB,UAQA,iB,UAaA,iB;;;;;;;;;;;;;oHA1DD;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,QAAP,CAAgB,KAAKC,KAAL,CAAW,OAAX,CAAhB;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6GAKA;AAAA;AAAA;AAAA;AAAA;AAECF,6BAAOG,UAAP,CAAkB,KAAKD,KAAL,CAAW,OAAX,EAAoBE,QAAtC;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oHAKA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmBJ,aAAOK,cAAP,CAAsB;AAAA,yBACvC,KAAI,CAACH,KAAL,CAAW,OAAX,EAAoBE,QAApB,CAA6B;AAC5BE,oBAAAA,IAAI,EAAE,eADsB;AAE5BC,oBAAAA,IAAI,EAAE;AAFsB,mBAA7B,CADuC;AAAA,iBAAtB,CAFnB;;AAAA;AAEOC,gBAAAA,GAFP;;AAQCC,2CAAgBC,WAAhB,CAA4BF,GAA5B,EAAiC,qBAAjC;;AARD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;4HAWA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmBR,aAAOK,cAAP,CAAsB;AAAA,yBACvC,MAAI,CAACH,KAAL,CAAW,OAAX,EAAoBS,gBAApB,EADuC;AAAA,iBAAtB,CAFnB;;AAAA;AAEOH,gBAAAA,GAFP;;AAKCC,2CAAgBC,WAAhB,CAA4BF,GAA5B,EAAiC,qBAAjC;;AALD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kIAQA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmBR,aAAOK,cAAP,CAAsB;AAAA,yBACvC,MAAI,CAACH,KAAL,CAAW,OAAX,EAAoBU,wBAApB,EADuC;AAAA,iBAAtB,CAFnB;;AAAA;AAEOJ,gBAAAA,GAFP;;AAKCC,2CAAgBC,WAAhB,CAA4BF,GAA5B,EAAiC,qBAAjC;;AALD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;2GAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKK,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;AAAA;AAAA;AAAA,uBAIyB,KAAKZ,KAAL,CAAW,OAAX,EAAoBa,0BAApB,EAJzB;;AAAA;AAIOC,gBAAAA,SAJP;;AAKChB,6BAAOiB,OAAP,CAAeD,SAAf,EAA0B,WAA1B;;AALD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;2GAQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKH,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;AAAA;AAIOI,gBAAAA,KAJP,GAIe,KAAKhB,KAAL,CAAW,OAAX,CAJf;AAAA;AAAA,uBAKuBgB,KAAK,CAACH,0BAAN,EALvB;;AAAA;AAKKC,gBAAAA,SALL;AAAA;AAAA,uBAOO,KAAKd,KAAL,CAAW,OAAX,EAAoBiB,yBAApB,CAA8C,eAA9C,CAPP;;AAAA;AAAA;AAAA,uBASmBD,KAAK,CAACH,0BAAN,EATnB;;AAAA;AASCC,gBAAAA,SATD;;AAUChB,6BAAOiB,OAAP,CAAeD,SAAf,EAA0B,cAA1B;;AAVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uGAaA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKH,cAAL,GAAsBC,qBAAtB,CAA4C,QAA5C,CAFP;;AAAA;AAIOP,gBAAAA,IAJP,2BAI+B,IAAIa,IAAJ,GAAWC,OAAX,EAJ/B;AAAA;AAAA,uBAKO,KAAKC,MAAL,CAAYC,iBAAZ,EALP;;AAAA;AAOOC,gBAAAA,UAPP,GAOoB,KAAKtB,KAAL,CAAW,OAAX,CAPpB;AAAA;AAAA,uBAS0BsB,UAAU,CAACZ,wBAAX,EAT1B;;AAAA;AASKa,gBAAAA,YATL;;AAUCzB,6BAAO0B,OAAP,CAAeD,YAAf;;AAVD;AAAA,uBAYqBD,UAAU,CAACpB,QAAX,CAAoB;AACvCE,kBAAAA,IAAI,EAAE,eADiC;AAEvCC,kBAAAA,IAAI,EAAJA;AAFuC,iBAApB,CAZrB;;AAAA;AAYOoB,gBAAAA,KAZP;;AAiBC3B,6BAAOC,QAAP,CAAgB0B,KAAhB;;AACA3B,6BAAOiB,OAAP,CAAeU,KAAK,CAACrB,IAArB,EAA2B,eAA3B;;AACAN,6BAAOiB,OAAP,CAAeU,KAAK,CAACpB,IAArB,EAA2BA,IAA3B;;AACAP,6BAAO4B,QAAP,CAAgBD,KAAK,CAACE,MAAtB;;AACA7B,6BAAO4B,QAAP,CAAgBD,KAAK,CAACG,EAAtB;;AArBD;AAAA,uBAuBsB,KAAKC,YAAL,EAvBtB;;AAAA;AAuBOC,gBAAAA,MAvBP;AAAA;AAAA,uBAwBuBA,MAAM,CAACC,YAAP,CAAoB;AACzCC,kBAAAA,OAAO,EAAEP,KAAK,CAACG,EAD0B;AAEzCD,kBAAAA,MAAM,EAAEF,KAAK,CAACE;AAF2B,iBAApB,CAxBvB;;AAAA;AAwBOM,gBAAAA,OAxBP;;AA6BCnC,6BAAOiB,OAAP,mBAAekB,OAAO,CAACR,KAAvB,mDAAe,eAAeG,EAA9B,EAAkCH,KAAK,CAACG,EAAxC;;AA7BD;AAAA,uBA+BsBN,UAAU,CAACZ,wBAAX,EA/BtB;;AAAA;AA+BCa,gBAAAA,YA/BD;;AAgCCzB,6BAAOoC,MAAP,CAAcX,YAAd;;AAhCD;AAAA,uBAkC4BD,UAAU,CAACb,gBAAX,EAlC5B;;AAAA;AAkCO0B,gBAAAA,YAlCP;;AAoCCrC,6BAAOiB,OAAP,CAAeoB,YAAY,CAACP,EAA5B,EAAgCH,KAAK,CAACG,EAAtC;;AACA9B,6BAAOoC,MAAP,CAAcC,YAAY,CAACZ,YAA3B;;AACAzB,6BAAOiB,OAAP,CAAeoB,YAAY,CAAC/B,IAA5B,EAAkC,eAAlC;;AACAN,6BAAOiB,OAAP,CAAeoB,YAAY,CAAC9B,IAA5B,EAAkCA,IAAlC;;AACAP,6BAAOiB,OAAP,CAAeoB,YAAY,CAACR,MAA5B,EAAoCF,KAAK,CAACE,MAA1C;;AAEMS,gBAAAA,GA1CP,GA0Ca,KAAKC,OAAL,CAAa,KAAb,CA1Cb;;AA4CCvC,6BAAOiB,OAAP,CAAeqB,GAAG,CAACE,GAAJ,CAAQ,UAAR,CAAf,EAAoCb,KAAK,CAACG,EAA1C;;AACA9B,6BAAOiB,OAAP,CAAeqB,GAAG,CAACE,GAAJ,CAAQ,eAAR,CAAf,EAAyCb,KAAK,CAACE,MAA/C;;AA7CD;AAAA,uBA+CmB7B,aAAOK,cAAP,CAAsB;AAAA,yBACvCmB,UAAU,CAACL,yBAAX,CAAqC,MAArC,CADuC;AAAA,iBAAtB,CA/CnB;;AAAA;AA+COX,gBAAAA,GA/CP;;AAmDCC,2CAAgBC,WAAhB,CAA4BF,GAA5B,EAAiC,SAAjC;;AAEMiC,gBAAAA,GArDP,GAqDa,KAAKF,OAAL,CAAa,KAAb,CArDb;AAsDOvB,gBAAAA,SAtDP,GAsDmByB,GAAG,CAACD,GAAJ,CAAQ,iBAAR,CAtDnB;;AAuDCxC,6BAAOiB,OAAP,CAAeD,SAAf,EAA0BT,IAA1B;;AAvDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA3D2CmC,4B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } 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\terrorAssertUtil.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\terrorAssertUtil.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\terrorAssertUtil.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\terrorAssertUtil.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"}
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.errorAssertUtil.assertError(err, 'INVALID_TEST_DIRECTORY', {
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":"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","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"}