@sprucelabs/spruce-cli 15.2.4 → 15.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/build/__tests__/behavioral/AddingADependency.test.js +2 -2
- package/build/__tests__/behavioral/AddingADependency.test.js.map +1 -1
- package/build/__tests__/behavioral/BlockingCommands.test.js +2 -2
- package/build/__tests__/behavioral/BlockingCommands.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingASkill.test.js +10 -10
- package/build/__tests__/behavioral/DeployingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js +1 -1
- package/build/__tests__/behavioral/DeployingToSandbox.test.js.map +1 -1
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js +5 -5
- package/build/__tests__/behavioral/EnablingAndDisablingCache.test.js.map +1 -1
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js +2 -2
- package/build/__tests__/behavioral/InstallingASkillAtAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js +2 -2
- package/build/__tests__/behavioral/LoggingInAsASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js +1 -1
- package/build/__tests__/behavioral/RebuildingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js +1 -1
- package/build/__tests__/behavioral/SettingLogTransportsInASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js +1 -1
- package/build/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.js.map +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js +1 -1
- package/build/__tests__/behavioral/TestingAConversation.test.js.map +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js +1 -1
- package/build/__tests__/behavioral/errors/SettingUpErrors.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +2 -2
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js +1 -1
- package/build/__tests__/behavioral/events/CreatingAnEvent.test.js.map +1 -1
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js +2 -2
- package/build/__tests__/behavioral/events/SkillEmitsBootEvents.test.js.map +1 -1
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js +1 -1
- package/build/__tests__/behavioral/person/LoggingInAsPerson.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js +1 -1
- package/build/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js +4 -10
- package/build/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js +6 -12
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js +1 -1
- package/build/__tests__/behavioral/schemas/SettingUpSchemas.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js +1 -1
- package/build/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js +2 -2
- package/build/__tests__/behavioral/skill/RegisteringASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js +1 -1
- package/build/__tests__/behavioral/stores/CreatingADataStore.test.js.map +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js +1 -1
- package/build/__tests__/behavioral/stores/KeepingDataStoresInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.js +1 -1
- package/build/__tests__/behavioral/tests/RunningTests.test.js.map +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js +1 -1
- package/build/__tests__/behavioral/tests/SettingUpTests.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingASkillView.test.js.map +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js +1 -1
- package/build/__tests__/behavioral/views/CreatingATheme.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter.test.js +3 -9
- package/build/__tests__/implementation/ActionExecuter.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter3.test.js.map +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js +1 -1
- package/build/__tests__/implementation/ActionExecuter4.test.js.map +1 -1
- package/build/__tests__/implementation/BulkImporting.test.js +3 -3
- package/build/__tests__/implementation/BulkImporting.test.js.map +1 -1
- package/build/__tests__/implementation/DataStoreStore.test.js +2 -2
- package/build/__tests__/implementation/DataStoreStore.test.js.map +1 -1
- package/build/__tests__/implementation/EventStore.test.js +2 -2
- package/build/__tests__/implementation/EventStore.test.js.map +1 -1
- package/build/__tests__/implementation/SchemaStore.test.js +8 -14
- package/build/__tests__/implementation/SchemaStore.test.js.map +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js +1 -1
- package/build/__tests__/implementation/SettingUpANodeModule.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.js +4 -4
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/implementation/TestRunner.test.js +1 -1
- package/build/__tests__/implementation/TestRunner.test.js.map +1 -1
- package/build/features/schema/stores/SchemaStore.d.ts +16 -0
- package/build/features/schema/stores/SchemaStore.js +21 -10
- package/build/features/schema/stores/SchemaStore.js.map +1 -1
- package/package.json +37 -37
- package/src/__tests__/behavioral/AddingADependency.test.ts +3 -3
- package/src/__tests__/behavioral/BlockingCommands.test.ts +3 -3
- package/src/__tests__/behavioral/DeployingASkill.test.ts +11 -11
- package/src/__tests__/behavioral/DeployingToSandbox.test.ts +2 -2
- package/src/__tests__/behavioral/EnablingAndDisablingCache.test.ts +6 -6
- package/src/__tests__/behavioral/InstallingASkillAtAnOrg.test.ts +3 -3
- package/src/__tests__/behavioral/LoggingInAsASkill.test.ts +3 -3
- package/src/__tests__/behavioral/RebuildingASkill.test.ts +2 -2
- package/src/__tests__/behavioral/SettingLogTransportsInASkill.test.ts +2 -2
- package/src/__tests__/behavioral/SettingUpSchemasForModuleDistribution.test.ts +2 -2
- package/src/__tests__/behavioral/TestingAConversation.test.ts +1 -1
- package/src/__tests__/behavioral/errors/SettingUpErrors.test.ts +2 -2
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +3 -3
- package/src/__tests__/behavioral/events/CreatingAnEvent.test.ts +2 -2
- package/src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts +3 -3
- package/src/__tests__/behavioral/person/LoggingInAsPerson.test.ts +2 -2
- package/src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts +2 -2
- package/src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts +1 -1
- package/src/__tests__/behavioral/schemas/KeepingSchemasInSync.test.ts +4 -4
- package/src/__tests__/behavioral/schemas/SettingUpSchemas.test.ts +2 -2
- package/src/__tests__/behavioral/schemas/SyncingBadSchemasProvidesHelpfulErrorMessages.test.ts +2 -2
- package/src/__tests__/behavioral/skill/RegisteringASkill.test.ts +3 -3
- package/src/__tests__/behavioral/stores/CreatingADataStore.test.ts +2 -2
- package/src/__tests__/behavioral/stores/KeepingDataStoresInSync.test.ts +2 -2
- package/src/__tests__/behavioral/tests/RunningTests.test.ts +2 -2
- package/src/__tests__/behavioral/tests/SettingUpTests.test.ts +2 -2
- package/src/__tests__/behavioral/views/CreatingASkillView.test.ts +2 -2
- package/src/__tests__/behavioral/views/CreatingATheme.test.ts +2 -2
- package/src/__tests__/implementation/ActionExecuter.test.ts +1 -1
- package/src/__tests__/implementation/ActionExecuter3.test.ts +2 -2
- package/src/__tests__/implementation/ActionExecuter4.test.ts +2 -2
- package/src/__tests__/implementation/BulkImporting.test.ts +4 -4
- package/src/__tests__/implementation/DataStoreStore.test.ts +3 -3
- package/src/__tests__/implementation/EventStore.test.ts +3 -3
- package/src/__tests__/implementation/SchemaStore.test.ts +6 -6
- package/src/__tests__/implementation/SettingUpANodeModule.test.ts +2 -2
- package/src/__tests__/implementation/SkillStore.test.ts +5 -5
- package/src/__tests__/implementation/TestRunner.test.ts +2 -2
- package/src/features/schema/stores/SchemaStore.ts +35 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAnEvent.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","CreatingAnEventTest","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","nameReadable","nameKebab","nameCamel","version","expectedVersion","results","isArray","errors","errorAssertUtil","assertError","createEvent","skill","filesThatShouldExist","RegExp","namesUtil","toCamel","slug","checker","Service","name","match","testUtil","assertFileByPathInGeneratedFiles","files","check","cli","isFalsy","copyEventBuildersAndPermissions","syncResults","mixedResults","actionUtil","mergeActionResults","assertExpectedTargetAndPayload","assertExpectedPayloadSchemas","assertReturnsEventFromHealthCheck","createsExpectedPermissionContract","assertCreatesOptionsFile","meta","fqen","testFileContents","diskUtil","readFile","resolveTestPath","replace","testFile","resolvePath","writeFile","install","emitPayloadFile","assertFileByNameInGeneratedFiles","newContents","versionUtil","generateVersion","constValue","uiAssert","assertRendersSelect","ui","reset","options","registerCurrentSkill","getSkillFixture","phone","process","env","DEMO_NUMBER_CREATING_AN_EVENT","optionsFile","importDefault","imported","isEqualDeep","isGlobal","importSchema","schema","isEqual","id","isTruthy","fields","payload","target","builders","filename","builder","path","cwd","isTrue","doesFileExist","checkHealth","health","event","isLength","events","eventName","eventNamespace","toKebab","doesInclude","contracts","fullyQualifiedEventName","eventNameUtil","join","payloadSchemas","fileName","expectedId","schemas","eventDiskUtil","resolveEventPath","AbstractEventTest"],"mappings":"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","sourcesContent":["import { eventDiskUtil, eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../../cli'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\nimport actionUtil from '../../../utilities/action.utility'\n\nconst EVENT_NAME_READABLE = 'my fantastically amazing event'\nconst EVENT_NAME = 'my-fantastically-amazing-event'\nconst EVENT_CAMEL = 'myFantasticallyAmazingEvent'\n\nexport default class CreatingAnEventTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('event', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async cantCreateEventWithoutBeingRegistered() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.isArray(results.errors)\n\t\terrorAssertUtil.assertError(results.errors[0], 'SKILL_NOT_REGISTERED')\n\t}\n\n\t@test()\n\tprotected static async createsPayloadBuildersAndSchemas() {\n\t\tconst { results, skill } = await this.createEvent()\n\n\t\tconst filesThatShouldExist = [\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventResponsePayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\t'emitPayload.builder.ts',\n\t\t\t'emitTarget.builder.ts',\n\t\t]\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tfor (const name of filesThatShouldExist) {\n\t\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\t\tname,\n\t\t\t\tresults.files\n\t\t\t)\n\t\t\tawait checker.check(match)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async createsEventWithPayloadsPermissionsAndOptions() {\n\t\tconst { results, cli, skill } = await this.createEvent()\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\t\tassert.isFalsy(syncResults.errors)\n\n\t\tconst mixedResults = actionUtil.mergeActionResults(results, syncResults)\n\n\t\tawait this.assertExpectedTargetAndPayload(mixedResults, skill)\n\t\tawait this.assertExpectedPayloadSchemas(mixedResults)\n\t\tawait this.assertReturnsEventFromHealthCheck(cli, skill)\n\t\tawait this.createsExpectedPermissionContract(mixedResults)\n\t\tawait this.assertCreatesOptionsFile(mixedResults)\n\t}\n\n\t@test()\n\tprotected static async createdEventsAreTypedCorrectly() {\n\t\tconst { results } = await this.createEvent()\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tconst testFileContents = diskUtil\n\t\t\t.readFile(this.resolveTestPath('client-test.ts.hbs'))\n\t\t\t.replace('{{fqen}}', fqen)\n\n\t\tconst testFile = this.resolvePath('src', 'test-client.ts')\n\t\tdiskUtil.writeFile(testFile, testFileContents)\n\n\t\tawait this.Service('typeChecker').check(testFile)\n\t}\n\n\t@test()\n\tprotected static async canReferenceSchemaFromOtherModule() {\n\t\tconst { results } = await this.createEvent()\n\t\tawait this.Service('pkg').install('@sprucelabs/heartwood-view-controllers')\n\n\t\tconst emitPayloadFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'emitPayload.builder.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst newContents = `import { formBuilderImportExportObjectSchema } from '@sprucelabs/heartwood-view-controllers'\nimport { buildSchema } from '@sprucelabs/schema'\n\nconst createFormEmitPayloadBuilder = buildSchema({\n\tid: 'myFantasticallyAmazingEventEmitPayload',\n\tfields: {\n\t\t...formBuilderImportExportObjectSchema.fields,\n\t},\n})\n\nexport default createFormEmitPayloadBuilder\n\t\t`\n\n\t\tdiskUtil.writeFile(emitPayloadFile, newContents)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(syncResults.errors)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionIfPreviousVersionExistsOnDifferentDay() {\n\t\tawait this.createEvent({\n\t\t\tversion: versionUtil.generateVersion('2020_01_10').constValue,\n\t\t})\n\n\t\tvoid this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait uiAssert.assertRendersSelect(this.ui)\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async createEvent(options?: { version?: string }) {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.registerCurrentSkill()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t\t...options,\n\t\t})\n\n\t\treturn { results, cli, skill }\n\t}\n\n\tprivate static async registerCurrentSkill() {\n\t\treturn await this.getSkillFixture().registerCurrentSkill(\n\t\t\t{\n\t\t\t\tname: 'my new skill',\n\t\t\t},\n\t\t\t{\n\t\t\t\tphone: process.env.DEMO_NUMBER_CREATING_AN_EVENT,\n\t\t\t}\n\t\t)\n\t}\n\n\tprivate static async assertCreatesOptionsFile(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst optionsFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'event.options.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst imported = await this.Service('import').importDefault(optionsFile)\n\n\t\tassert.isEqualDeep(imported, { isGlobal: false })\n\t}\n\n\tprivate static async assertExpectedTargetAndPayload(\n\t\tresults: FeatureActionResponse,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('schema').importSchema(match)\n\n\t\tassert.isEqual(schema.id, 'myFantasticallyAmazingEventEmitTargetAndPayload')\n\t\tassert.isTruthy(schema.fields?.payload)\n\t\tassert.isTruthy(schema.fields?.target)\n\t}\n\n\tprotected static async createsExpectedPermissionContract(results: any) {\n\t\tconst builders = [\n\t\t\t{ filename: 'emitPermissions.builder.ts' },\n\t\t\t{ filename: 'listenPermissions.builder.ts' },\n\t\t]\n\n\t\tfor (const builder of builders) {\n\t\t\tconst { filename } = builder\n\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfilename,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tconst path = versionUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\t'src/events/',\n\t\t\t\tEVENT_NAME,\n\t\t\t\t'{{@latest}}',\n\t\t\t\tfilename\n\t\t\t)\n\n\t\t\tassert.isEqual(match, path)\n\t\t\tassert.isTrue(diskUtil.doesFileExist(path))\n\t\t}\n\t}\n\n\tprivate static async assertReturnsEventFromHealthCheck(\n\t\tcli: CliInterface,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isTruthy(health.event)\n\t\tassert.isLength(health.event.events, 1)\n\n\t\tconst eventName = EVENT_NAME\n\t\tconst eventNamespace = namesUtil.toKebab(skill.slug)\n\n\t\tassert.doesInclude(health.event.events, {\n\t\t\teventName,\n\t\t\teventNamespace,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.doesInclude(health.event.contracts, {\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace,\n\t\t\t\tversion: this.expectedVersion,\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate static async assertExpectedPayloadSchemas(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst payloadSchemas = [\n\t\t\t{\n\t\t\t\tfileName: 'emitPayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitPayload',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'emitTarget.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitTarget',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'responsePayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventResponsePayload',\n\t\t\t},\n\t\t]\n\n\t\tconst schemas = this.Service('schema')\n\n\t\tfor (const payload of payloadSchemas) {\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tpayload.fileName,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tassert.isEqual(\n\t\t\t\tmatch,\n\t\t\t\teventDiskUtil.resolveEventPath(this.cwd + '/src/events', {\n\t\t\t\t\tfileName: payload.fileName as any,\n\t\t\t\t\teventName: EVENT_NAME,\n\t\t\t\t\tversion: this.expectedVersion,\n\t\t\t\t})\n\t\t\t)\n\n\t\t\tconst imported = await schemas.importSchema(match)\n\t\t\tassert.isEqual(imported.id, payload.expectedId)\n\t\t}\n\t}\n}\n"],"file":"CreatingAnEvent.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAnEvent.test.ts"],"names":["EVENT_NAME_READABLE","EVENT_NAME","EVENT_CAMEL","CreatingAnEventTest","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","nameReadable","nameKebab","nameCamel","version","expectedVersion","results","isArray","errors","errorAssert","assertError","createEvent","skill","filesThatShouldExist","RegExp","namesUtil","toCamel","slug","checker","Service","name","match","testUtil","assertFileByPathInGeneratedFiles","files","check","cli","isFalsy","copyEventBuildersAndPermissions","syncResults","mixedResults","actionUtil","mergeActionResults","assertExpectedTargetAndPayload","assertExpectedPayloadSchemas","assertReturnsEventFromHealthCheck","createsExpectedPermissionContract","assertCreatesOptionsFile","meta","fqen","testFileContents","diskUtil","readFile","resolveTestPath","replace","testFile","resolvePath","writeFile","install","emitPayloadFile","assertFileByNameInGeneratedFiles","newContents","versionUtil","generateVersion","constValue","uiAssert","assertRendersSelect","ui","reset","options","registerCurrentSkill","getSkillFixture","phone","process","env","DEMO_NUMBER_CREATING_AN_EVENT","optionsFile","importDefault","imported","isEqualDeep","isGlobal","importSchema","schema","isEqual","id","isTruthy","fields","payload","target","builders","filename","builder","path","cwd","isTrue","doesFileExist","checkHealth","health","event","isLength","events","eventName","eventNamespace","toKebab","doesInclude","contracts","fullyQualifiedEventName","eventNameUtil","join","payloadSchemas","fileName","expectedId","schemas","eventDiskUtil","resolveEventPath","AbstractEventTest"],"mappings":"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","sourcesContent":["import { eventDiskUtil, eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tnamesUtil,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { CliInterface } from '../../../cli'\nimport { FeatureActionResponse } from '../../../features/features.types'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\nimport uiAssert from '../../../tests/utilities/uiAssert.utility'\nimport { RegisteredSkill } from '../../../types/cli.types'\nimport actionUtil from '../../../utilities/action.utility'\n\nconst EVENT_NAME_READABLE = 'my fantastically amazing event'\nconst EVENT_NAME = 'my-fantastically-amazing-event'\nconst EVENT_CAMEL = 'myFantasticallyAmazingEvent'\n\nexport default class CreatingAnEventTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async hasCreateAction() {\n\t\tassert.isFunction(this.Action('event', 'create').execute)\n\t}\n\n\t@test()\n\tprotected static async cantCreateEventWithoutBeingRegistered() {\n\t\tawait this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.isArray(results.errors)\n\t\terrorAssert.assertError(results.errors[0], 'SKILL_NOT_REGISTERED')\n\t}\n\n\t@test()\n\tprotected static async createsPayloadBuildersAndSchemas() {\n\t\tconst { results, skill } = await this.createEvent()\n\n\t\tconst filesThatShouldExist = [\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventResponsePayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\t'emitPayload.builder.ts',\n\t\t\t'emitTarget.builder.ts',\n\t\t]\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tfor (const name of filesThatShouldExist) {\n\t\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\t\tname,\n\t\t\t\tresults.files\n\t\t\t)\n\t\t\tawait checker.check(match)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async createsEventWithPayloadsPermissionsAndOptions() {\n\t\tconst { results, cli, skill } = await this.createEvent()\n\t\tassert.isFalsy(results.errors)\n\n\t\tawait this.copyEventBuildersAndPermissions(EVENT_NAME)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\t\tassert.isFalsy(syncResults.errors)\n\n\t\tconst mixedResults = actionUtil.mergeActionResults(results, syncResults)\n\n\t\tawait this.assertExpectedTargetAndPayload(mixedResults, skill)\n\t\tawait this.assertExpectedPayloadSchemas(mixedResults)\n\t\tawait this.assertReturnsEventFromHealthCheck(cli, skill)\n\t\tawait this.createsExpectedPermissionContract(mixedResults)\n\t\tawait this.assertCreatesOptionsFile(mixedResults)\n\t}\n\n\t@test()\n\tprotected static async createdEventsAreTypedCorrectly() {\n\t\tconst { results } = await this.createEvent()\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst { fqen } = results.meta ?? {}\n\n\t\tconst testFileContents = diskUtil\n\t\t\t.readFile(this.resolveTestPath('client-test.ts.hbs'))\n\t\t\t.replace('{{fqen}}', fqen)\n\n\t\tconst testFile = this.resolvePath('src', 'test-client.ts')\n\t\tdiskUtil.writeFile(testFile, testFileContents)\n\n\t\tawait this.Service('typeChecker').check(testFile)\n\t}\n\n\t@test()\n\tprotected static async canReferenceSchemaFromOtherModule() {\n\t\tconst { results } = await this.createEvent()\n\t\tawait this.Service('pkg').install('@sprucelabs/heartwood-view-controllers')\n\n\t\tconst emitPayloadFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'emitPayload.builder.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst newContents = `import { formBuilderImportExportObjectSchema } from '@sprucelabs/heartwood-view-controllers'\nimport { buildSchema } from '@sprucelabs/schema'\n\nconst createFormEmitPayloadBuilder = buildSchema({\n\tid: 'myFantasticallyAmazingEventEmitPayload',\n\tfields: {\n\t\t...formBuilderImportExportObjectSchema.fields,\n\t},\n})\n\nexport default createFormEmitPayloadBuilder\n\t\t`\n\n\t\tdiskUtil.writeFile(emitPayloadFile, newContents)\n\n\t\tconst syncResults = await this.Action('event', 'sync').execute({})\n\n\t\tassert.isFalsy(syncResults.errors)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionIfPreviousVersionExistsOnDifferentDay() {\n\t\tawait this.createEvent({\n\t\t\tversion: versionUtil.generateVersion('2020_01_10').constValue,\n\t\t})\n\n\t\tvoid this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t})\n\n\t\tawait uiAssert.assertRendersSelect(this.ui)\n\n\t\tthis.ui.reset()\n\t}\n\n\tprivate static async createEvent(options?: { version?: string }) {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('events')\n\n\t\tconst skill = await this.registerCurrentSkill()\n\n\t\tconst results = await this.Action('event', 'create').execute({\n\t\t\tnameReadable: EVENT_NAME_READABLE,\n\t\t\tnameKebab: EVENT_NAME,\n\t\t\tnameCamel: EVENT_CAMEL,\n\t\t\tversion: this.expectedVersion,\n\t\t\t...options,\n\t\t})\n\n\t\treturn { results, cli, skill }\n\t}\n\n\tprivate static async registerCurrentSkill() {\n\t\treturn await this.getSkillFixture().registerCurrentSkill(\n\t\t\t{\n\t\t\t\tname: 'my new skill',\n\t\t\t},\n\t\t\t{\n\t\t\t\tphone: process.env.DEMO_NUMBER_CREATING_AN_EVENT,\n\t\t\t}\n\t\t)\n\t}\n\n\tprivate static async assertCreatesOptionsFile(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst optionsFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'event.options.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst imported = await this.Service('import').importDefault(optionsFile)\n\n\t\tassert.isEqualDeep(imported, { isGlobal: false })\n\t}\n\n\tprivate static async assertExpectedTargetAndPayload(\n\t\tresults: FeatureActionResponse,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst match = testUtil.assertFileByPathInGeneratedFiles(\n\t\t\tnew RegExp(\n\t\t\t\t`${namesUtil.toCamel(skill.slug)}.*?${\n\t\t\t\t\tthis.expectedVersion\n\t\t\t\t}.*?myFantasticallyAmazingEventEmitTargetAndPayload`,\n\t\t\t\t'gis'\n\t\t\t),\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('schema').importSchema(match)\n\n\t\tassert.isEqual(schema.id, 'myFantasticallyAmazingEventEmitTargetAndPayload')\n\t\tassert.isTruthy(schema.fields?.payload)\n\t\tassert.isTruthy(schema.fields?.target)\n\t}\n\n\tprotected static async createsExpectedPermissionContract(results: any) {\n\t\tconst builders = [\n\t\t\t{ filename: 'emitPermissions.builder.ts' },\n\t\t\t{ filename: 'listenPermissions.builder.ts' },\n\t\t]\n\n\t\tfor (const builder of builders) {\n\t\t\tconst { filename } = builder\n\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tfilename,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tconst path = versionUtil.resolvePath(\n\t\t\t\tthis.cwd,\n\t\t\t\t'src/events/',\n\t\t\t\tEVENT_NAME,\n\t\t\t\t'{{@latest}}',\n\t\t\t\tfilename\n\t\t\t)\n\n\t\t\tassert.isEqual(match, path)\n\t\t\tassert.isTrue(diskUtil.doesFileExist(path))\n\t\t}\n\t}\n\n\tprivate static async assertReturnsEventFromHealthCheck(\n\t\tcli: CliInterface,\n\t\tskill: RegisteredSkill\n\t) {\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isTruthy(health.event)\n\t\tassert.isLength(health.event.events, 1)\n\n\t\tconst eventName = EVENT_NAME\n\t\tconst eventNamespace = namesUtil.toKebab(skill.slug)\n\n\t\tassert.doesInclude(health.event.events, {\n\t\t\teventName,\n\t\t\teventNamespace,\n\t\t\tversion: this.expectedVersion,\n\t\t})\n\n\t\tassert.doesInclude(health.event.contracts, {\n\t\t\tfullyQualifiedEventName: eventNameUtil.join({\n\t\t\t\teventName,\n\t\t\t\teventNamespace,\n\t\t\t\tversion: this.expectedVersion,\n\t\t\t}),\n\t\t})\n\t}\n\n\tprivate static async assertExpectedPayloadSchemas(\n\t\tresults: FeatureActionResponse\n\t) {\n\t\tconst payloadSchemas = [\n\t\t\t{\n\t\t\t\tfileName: 'emitPayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitPayload',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'emitTarget.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventEmitTarget',\n\t\t\t},\n\t\t\t{\n\t\t\t\tfileName: 'responsePayload.builder.ts',\n\t\t\t\texpectedId: 'myFantasticallyAmazingEventResponsePayload',\n\t\t\t},\n\t\t]\n\n\t\tconst schemas = this.Service('schema')\n\n\t\tfor (const payload of payloadSchemas) {\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\tpayload.fileName,\n\t\t\t\tresults.files\n\t\t\t)\n\n\t\t\tassert.isEqual(\n\t\t\t\tmatch,\n\t\t\t\teventDiskUtil.resolveEventPath(this.cwd + '/src/events', {\n\t\t\t\t\tfileName: payload.fileName as any,\n\t\t\t\t\teventName: EVENT_NAME,\n\t\t\t\t\tversion: this.expectedVersion,\n\t\t\t\t})\n\t\t\t)\n\n\t\t\tconst imported = await schemas.importSchema(match)\n\t\t\tassert.isEqual(imported.id, payload.expectedId)\n\t\t}\n\t}\n}\n"],"file":"CreatingAnEvent.test.js"}
|
|
@@ -111,7 +111,7 @@ var SkillEmitsBootEventsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
|
|
|
111
111
|
|
|
112
112
|
_test.assert.isTruthy(response.errors);
|
|
113
113
|
|
|
114
|
-
_testUtils.
|
|
114
|
+
_testUtils.errorAssert.assertError(response.errors[0], 'LISTENER_NOT_IMPLEMENTED');
|
|
115
115
|
|
|
116
116
|
case 12:
|
|
117
117
|
case "end":
|
|
@@ -168,7 +168,7 @@ var SkillEmitsBootEventsTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test
|
|
|
168
168
|
case 12:
|
|
169
169
|
err = _context3.sent;
|
|
170
170
|
|
|
171
|
-
_testUtils.
|
|
171
|
+
_testUtils.errorAssert.assertError(err, 'LISTENER_NOT_IMPLEMENTED');
|
|
172
172
|
|
|
173
173
|
case 14:
|
|
174
174
|
case "end":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts"],"names":["SkillEmitsBootEventsTest","LintService","enableLinting","installEventFeature","version","Action","execute","namespace","eventName","Service","build","response","assert","isTruthy","errors","
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/SkillEmitsBootEvents.test.ts"],"names":["SkillEmitsBootEventsTest","LintService","enableLinting","installEventFeature","version","Action","execute","namespace","eventName","Service","build","response","assert","isTruthy","errors","errorAssert","assertError","doesThrowAsync","meta","promise","err","AbstractEventTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,wB,WAMnB,iB,UAkBA,iB;;;;;;;;;;;;;sGAvBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAECC,wCAAYC,aAAZ;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;oHAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAGOC,gBAAAA,OAHP,GAGiB,aAHjB;AAAA;AAAA,uBAKO,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5CC,kBAAAA,SAAS,EAAE,OADiC;AAE5CC,kBAAAA,SAAS,EAAE,WAFiC;AAG5CJ,kBAAAA,OAAO,EAAPA;AAH4C,iBAAvC,CALP;;AAAA;AAAA;AAAA,uBAWO,KAAKK,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAXP;;AAAA;AAAA;AAAA,uBAawB,KAAKL,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAbxB;;AAAA;AAaOK,gBAAAA,QAbP;;AAcCC,6BAAOC,QAAP,CAAgBF,QAAQ,CAACG,MAAzB;;AACAC,uCAAYC,WAAZ,CAAwBL,QAAQ,CAACG,MAAT,CAAgB,CAAhB,CAAxB,EAA4C,0BAA5C;;AAfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;qIAkBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKX,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAGOC,gBAAAA,OAHP,GAGiB,aAHjB;AAAA;AAAA,uBAKO,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5CC,kBAAAA,SAAS,EAAE,OADiC;AAE5CC,kBAAAA,SAAS,EAAE,UAFiC;AAG5CJ,kBAAAA,OAAO,EAAPA;AAH4C,iBAAvC,CALP;;AAAA;AAAA;AAAA,uBAWO,KAAKK,OAAL,CAAa,OAAb,EAAsBC,KAAtB,EAXP;;AAAA;AAAA;AAAA,uBAawB,KAAKL,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC,EAArC,CAbxB;;AAAA;AAaOK,gBAAAA,QAbP;AAAA;AAAA,uBAcmBC,aAAOK,cAAP,CAAsB;AAAA;;AAAA,2CAAMN,QAAQ,CAACO,IAAf,mDAAM,eAAeC,OAArB;AAAA,iBAAtB,CAdnB;;AAAA;AAcOC,gBAAAA,GAdP;;AAeCL,uCAAYC,WAAZ,CAAwBI,GAAxB,EAA6B,0BAA7B;;AAfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAxBqDC,8B","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport LintService from '../../../services/LintService'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\n\nexport default class SkillEmitsBootEventsTest extends AbstractEventTest {\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tLintService.enableLinting()\n\t}\n\n\t@test()\n\tprotected static async skillEmitsWillBootEvents() {\n\t\tawait this.installEventFeature('events')\n\t\tconst version = 'v2020_01_01'\n\n\t\tawait this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'will-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst response = await this.Action('skill', 'boot').execute({})\n\t\tassert.isTruthy(response.errors)\n\t\terrorAssert.assertError(response.errors[0], 'LISTENER_NOT_IMPLEMENTED')\n\t}\n\n\t@test()\n\tprotected static async skillEmitsDidBootEventsThatErrorAfterBoot() {\n\t\tawait this.installEventFeature('events')\n\t\tconst version = 'v2020_01_01'\n\n\t\tawait this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'skill',\n\t\t\teventName: 'did-boot',\n\t\t\tversion,\n\t\t})\n\n\t\tawait this.Service('build').build()\n\n\t\tconst response = await this.Action('skill', 'boot').execute({})\n\t\tconst err = await assert.doesThrowAsync(() => response.meta?.promise)\n\t\terrorAssert.assertError(err, 'LISTENER_NOT_IMPLEMENTED')\n\t}\n}\n"],"file":"SkillEmitsBootEvents.test.js"}
|
|
@@ -235,7 +235,7 @@ var LoggingInAsPersonTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
|
|
|
235
235
|
|
|
236
236
|
_test.assert.isLength(results.errors, 1);
|
|
237
237
|
|
|
238
|
-
_testUtils.
|
|
238
|
+
_testUtils.errorAssert.assertError(results.errors[0], 'NOT_LOGGED_IN');
|
|
239
239
|
|
|
240
240
|
case 8:
|
|
241
241
|
case "end":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/person/LoggingInAsPerson.test.ts"],"names":["LoggingInAsPersonTest","test","skip","Cli","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","phone","DEMO_NUMBER","waitForInput","doesInclude","ui","invocations","command","options","type","reset","sendInput","installSkillAndLoginAsDemoPerson","person","Service","getLoggedInPerson","isTruthy","isString","id","token","isTrue","isLoggedIn","results","errors","isLength","
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/person/LoggingInAsPerson.test.ts"],"names":["LoggingInAsPersonTest","test","skip","Cli","assert","isFunction","Action","execute","FeatureFixture","installCachedFeatures","phone","DEMO_NUMBER","waitForInput","doesInclude","ui","invocations","command","options","type","reset","sendInput","installSkillAndLoginAsDemoPerson","person","Service","getLoggedInPerson","isTruthy","isString","id","token","isTrue","isLoggedIn","results","errors","isLength","errorAssert","assertError","isFalsy","isNull","setLoggedInPerson","casualName","loginAsPerson","cli","promise","substr","AbstractCliTest"],"mappings":"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","sourcesContent":["import { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport AbstractCliTest from '../../../tests/AbstractCliTest'\nimport { DEMO_NUMBER } from '../../../tests/fixtures/PersonFixture'\n\nexport default class LoggingInAsPersonTest extends AbstractCliTest {\n\t@test()\n\tprotected static async hasLoginAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('person', 'login').execute)\n\t}\n\n\t@test()\n\tprotected static async asksForPinWithoutBeingInstalled() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tvoid this.Action('person', 'login').execute({\n\t\t\tphone: DEMO_NUMBER,\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'prompt',\n\t\t\toptions: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test.skip('enable when there are demo numbers that throw with bad pin')\n\tprotected static async badPinRendersWarningAndAsksForPinAgain() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tvoid this.Action('person', 'login').execute({\n\t\t\tphone: DEMO_NUMBER,\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('0000')\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'renderWarning',\n\t\t})\n\n\t\tawait this.waitForInput()\n\n\t\tassert.doesInclude(this.ui.invocations, {\n\t\t\tcommand: 'prompt',\n\t\t\toptions: {\n\t\t\t\ttype: 'text',\n\t\t\t},\n\t\t})\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async canLoginAsDemoPerson() {\n\t\tawait this.installSkillAndLoginAsDemoPerson()\n\n\t\tconst person = this.Service('auth').getLoggedInPerson()\n\n\t\tassert.isTruthy(person)\n\t\tassert.isString(person.id)\n\t\tassert.isString(person.token)\n\t\tassert.isTrue(person.isLoggedIn)\n\t}\n\n\t@test()\n\tprotected static async cantLogoutWithoutBeingLoggedIn() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\t\tconst results = await this.Action('person', 'logout').execute({})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.isLength(results.errors, 1)\n\n\t\terrorAssert.assertError(results.errors[0], 'NOT_LOGGED_IN')\n\t}\n\n\t@test()\n\tprotected static async canLogOut() {\n\t\tawait this.installSkillAndLoginAsDemoPerson()\n\n\t\tconst results = await this.Action('person', 'logout').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst person = this.Service('auth').getLoggedInPerson()\n\n\t\tassert.isNull(person)\n\t}\n\n\t@test()\n\tprotected static async canLogInWithExpiredPinWithouHavingToLogOutFirst() {\n\t\tawait this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tthis.Service('auth').setLoggedInPerson({\n\t\t\ttoken: '234',\n\t\t\tid: 'test',\n\t\t\tcasualName: 'casual test',\n\t\t})\n\n\t\tawait this.loginAsPerson()\n\t}\n\n\tprivate static async installSkillAndLoginAsDemoPerson() {\n\t\tconst cli = await this.FeatureFixture().installCachedFeatures('skills')\n\n\t\tawait this.loginAsPerson()\n\n\t\treturn cli\n\t}\n\n\tprivate static async loginAsPerson() {\n\t\tconst promise = this.Action('person', 'login').execute({\n\t\t\tphone: DEMO_NUMBER,\n\t\t})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(DEMO_NUMBER.substr(-4))\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\t}\n}\n"],"file":"LoggingInAsPerson.test.js"}
|
|
@@ -77,7 +77,7 @@ var CreatingANewSchemaBuilderTest = (_dec = (0, _test.test)(), _dec2 = (0, _test
|
|
|
77
77
|
case 4:
|
|
78
78
|
err = _context.sent;
|
|
79
79
|
|
|
80
|
-
_testUtils.
|
|
80
|
+
_testUtils.errorAssert.assertError(err, 'FEATURE_NOT_INSTALLED');
|
|
81
81
|
|
|
82
82
|
case 6:
|
|
83
83
|
case "end":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts"],"names":["CreatingANewSchemaBuilderTest","Cli","assert","doesThrowAsync","Action","execute","nameReadable","namePascal","nameCamel","description","err","errorAssertUtil","assertError","syncSchemasAndGetCreateAction","createSchema","response","isFalsy","errors","expectedDestination","versionUtil","resolveNewLatestPath","cwd","isEqual","files","path","cacheKey","syncSchemas","buildTestSchema","checker","Service","check","schemaTypesFile","builderMatch","testUtil","assertFileByNameInGeneratedFiles","schemaMatch","schemaContents","diskUtil","readFile","doesInclude","action","version","results","isTruthy","message","firstResponse","validateSchemaFiles","secondResponse","newVersion","generateVersion","assertAnswersFirstTime","assertAnswersSecondTime","createPromise","wait","last","ui","invocations","length","command","isLength","options","choices","isEqualDeep","value","dirValue","label","sendInput","term","createResults","expectedFileName","expectedVersion","expectedSchemaInterfaceName","isUndefined","schemaFile","fail","friendlyMessage","RegExp","AbstractSchemaTest"],"mappings":"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","sourcesContent":["import { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport {\n\tFeatureActionResponse,\n\tFeatureAction,\n} from '../../../features/features.types'\nimport SpyInterface from '../../../interfaces/SpyInterface'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingANewSchemaBuilderTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async failsWhenASkillIsNotInstalled() {\n\t\tawait this.Cli()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Action('schema', 'create').execute({\n\t\t\t\tnameReadable: 'Test schema!',\n\t\t\t\tnamePascal: 'AnotherTest',\n\t\t\t\tnameCamel: 'anotherTest',\n\t\t\t\tdescription: 'this is so great!',\n\t\t\t})\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'FEATURE_NOT_INSTALLED')\n\t}\n\n\t@test()\n\tprotected static async canBuildFileWithoutCrashing() {\n\t\tconst createSchema = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await createSchema.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'Test',\n\t\t\tnameCamel: 'test',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isFalsy(response.errors)\n\n\t\tconst expectedDestination = versionUtil.resolveNewLatestPath(\n\t\t\tthis.cwd,\n\t\t\t'src',\n\t\t\t'schemas',\n\t\t\t'{{@latest}}',\n\t\t\t'test.builder.ts'\n\t\t)\n\n\t\tassert.isEqual(response.files?.[0].path, expectedDestination)\n\t}\n\n\tprivate static async syncSchemasAndGetCreateAction(cacheKey?: string) {\n\t\tawait this.syncSchemas(cacheKey)\n\t\tconst createSchema = this.Action('schema', 'create')\n\n\t\treturn createSchema\n\t}\n\n\t@test()\n\tprotected static async builderAndSchemaFilesValidate() {\n\t\tconst response = await this.buildTestSchema()\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tawait checker.check(response.files?.[0].path ?? '')\n\t\tawait checker.check(this.schemaTypesFile)\n\n\t\tconst builderMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.builder.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(builderMatch)\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.schema.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(schemaMatch)\n\n\t\tconst schemaContents = diskUtil.readFile(schemaMatch)\n\t\tassert.doesInclude(schemaContents, `namespace: 'TestingSchemas'`)\n\t}\n\n\t@test()\n\tprotected static async errorsWithBadVersion() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst results = await action.execute({\n\t\t\tnameReadable: 'Bad schema version!',\n\t\t\tnamePascal: 'BadSchemaVersion',\n\t\t\tnameCamel: 'badSchemaVersion',\n\t\t\tversion: 'v1',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].message, /must be in the form/i)\n\t}\n\n\t@test()\n\tprotected static async canBuild2SpecificVersions() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst firstResponse = await action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_10',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tfirstResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\n\t\tconst secondResponse = await action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'secondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t\tversion: 'v2020_01_11',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'secondSchema.schema.ts',\n\t\t\t'v2020_01_11',\n\t\t\t'SecondSchema'\n\t\t)\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionOnSecondSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst newVersion = versionUtil.generateVersion()\n\n\t\t// create old version first\n\t\tawait action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_01',\n\t\t})\n\n\t\tawait this.assertAnswersFirstTime(action, newVersion)\n\t\tawait this.assertAnswersSecondTime(action, newVersion)\n\t}\n\n\t// should ask if we want to use the old version we created above or a New Version\n\tprivate static async assertAnswersFirstTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'SecondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst last = this.ui.invocations[this.ui.invocations.length - 1]\n\n\t\tassert.isEqual(last?.command, 'prompt')\n\t\tassert.isLength(last?.options?.options?.choices, 2)\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: 'New Version',\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\tawait this.ui.sendInput(newVersion.dirValue)\n\t\tawait createPromise\n\t}\n\n\t// should only have 2 options, none of which are \"new version\" since that was created in secondAnswers\n\tprivate static async assertAnswersSecondTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Third schema',\n\t\t\tnamePascal: 'ThirdSchema',\n\t\t\tnameCamel: 'thirdSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst term = this.ui as SpyInterface\n\t\tconst last = term.invocations[term.invocations.length - 1]\n\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: newVersion.dirValue,\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.ui.sendInput(newVersion.dirValue)\n\n\t\tconst createResults = await createPromise\n\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'secondSchema.schema.ts',\n\t\t\tcreateResults.files\n\t\t)\n\n\t\tassert.doesInclude(schemaMatch, newVersion.dirValue)\n\t}\n\n\tprivate static validateSchemaFiles(\n\t\tresponse: FeatureActionResponse,\n\t\texpectedFileName: string,\n\t\texpectedVersion: string,\n\t\texpectedSchemaInterfaceName: string\n\t) {\n\t\tassert.isUndefined(response.errors)\n\n\t\tlet schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\texpectedFileName,\n\t\t\tresponse.files\n\t\t)\n\n\t\tconst errors = response.errors ?? []\n\t\tif (errors.length > 0) {\n\t\t\tassert.fail(errors[0].friendlyMessage())\n\t\t}\n\n\t\tassert.doesInclude(schemaFile, expectedVersion)\n\t\tconst schemaContents = diskUtil.readFile(schemaFile)\n\n\t\tassert.doesInclude(schemaContents, `version: '${expectedVersion}'`)\n\n\t\tassert.doesInclude(\n\t\t\tschemaContents,\n\t\t\tnew RegExp(\n\t\t\t\t'SpruceSchemas.TestingSchemas.' +\n\t\t\t\t\texpectedVersion +\n\t\t\t\t\t'.*?' +\n\t\t\t\t\texpectedSchemaInterfaceName,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\t}\n\n\tprivate static async buildTestSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await action.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'AnotherTest',\n\t\t\tnameCamel: 'anotherTest',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isUndefined(response.errors)\n\n\t\treturn response\n\t}\n}\n"],"file":"CreatingANewSchemaBuilder.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/schemas/CreatingANewSchemaBuilder.test.ts"],"names":["CreatingANewSchemaBuilderTest","Cli","assert","doesThrowAsync","Action","execute","nameReadable","namePascal","nameCamel","description","err","errorAssert","assertError","syncSchemasAndGetCreateAction","createSchema","response","isFalsy","errors","expectedDestination","versionUtil","resolveNewLatestPath","cwd","isEqual","files","path","cacheKey","syncSchemas","buildTestSchema","checker","Service","check","schemaTypesFile","builderMatch","testUtil","assertFileByNameInGeneratedFiles","schemaMatch","schemaContents","diskUtil","readFile","doesInclude","action","version","results","isTruthy","message","firstResponse","validateSchemaFiles","secondResponse","newVersion","generateVersion","assertAnswersFirstTime","assertAnswersSecondTime","createPromise","wait","last","ui","invocations","length","command","isLength","options","choices","isEqualDeep","value","dirValue","label","sendInput","term","createResults","expectedFileName","expectedVersion","expectedSchemaInterfaceName","isUndefined","schemaFile","fail","friendlyMessage","RegExp","AbstractSchemaTest"],"mappings":"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","sourcesContent":["import { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport {\n\tFeatureActionResponse,\n\tFeatureAction,\n} from '../../../features/features.types'\nimport SpyInterface from '../../../interfaces/SpyInterface'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingANewSchemaBuilderTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async failsWhenASkillIsNotInstalled() {\n\t\tawait this.Cli()\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Action('schema', 'create').execute({\n\t\t\t\tnameReadable: 'Test schema!',\n\t\t\t\tnamePascal: 'AnotherTest',\n\t\t\t\tnameCamel: 'anotherTest',\n\t\t\t\tdescription: 'this is so great!',\n\t\t\t})\n\t\t)\n\n\t\terrorAssert.assertError(err, 'FEATURE_NOT_INSTALLED')\n\t}\n\n\t@test()\n\tprotected static async canBuildFileWithoutCrashing() {\n\t\tconst createSchema = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await createSchema.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'Test',\n\t\t\tnameCamel: 'test',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isFalsy(response.errors)\n\n\t\tconst expectedDestination = versionUtil.resolveNewLatestPath(\n\t\t\tthis.cwd,\n\t\t\t'src',\n\t\t\t'schemas',\n\t\t\t'{{@latest}}',\n\t\t\t'test.builder.ts'\n\t\t)\n\n\t\tassert.isEqual(response.files?.[0].path, expectedDestination)\n\t}\n\n\tprivate static async syncSchemasAndGetCreateAction(cacheKey?: string) {\n\t\tawait this.syncSchemas(cacheKey)\n\t\tconst createSchema = this.Action('schema', 'create')\n\n\t\treturn createSchema\n\t}\n\n\t@test()\n\tprotected static async builderAndSchemaFilesValidate() {\n\t\tconst response = await this.buildTestSchema()\n\n\t\tconst checker = this.Service('typeChecker')\n\n\t\tawait checker.check(response.files?.[0].path ?? '')\n\t\tawait checker.check(this.schemaTypesFile)\n\n\t\tconst builderMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.builder.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(builderMatch)\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'anotherTest.schema.ts',\n\t\t\tresponse.files\n\t\t)\n\n\t\tawait checker.check(schemaMatch)\n\n\t\tconst schemaContents = diskUtil.readFile(schemaMatch)\n\t\tassert.doesInclude(schemaContents, `namespace: 'TestingSchemas'`)\n\t}\n\n\t@test()\n\tprotected static async errorsWithBadVersion() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst results = await action.execute({\n\t\t\tnameReadable: 'Bad schema version!',\n\t\t\tnamePascal: 'BadSchemaVersion',\n\t\t\tnameCamel: 'badSchemaVersion',\n\t\t\tversion: 'v1',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tassert.doesInclude(results.errors[0].message, /must be in the form/i)\n\t}\n\n\t@test()\n\tprotected static async canBuild2SpecificVersions() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst firstResponse = await action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_10',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tfirstResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\n\t\tconst secondResponse = await action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'secondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t\tversion: 'v2020_01_11',\n\t\t})\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'secondSchema.schema.ts',\n\t\t\t'v2020_01_11',\n\t\t\t'SecondSchema'\n\t\t)\n\n\t\tthis.validateSchemaFiles(\n\t\t\tsecondResponse,\n\t\t\t'firstSchema.schema.ts',\n\t\t\t'v2020_01_10',\n\t\t\t'FirstSchema'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async asksForVersionOnSecondSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst newVersion = versionUtil.generateVersion()\n\n\t\t// create old version first\n\t\tawait action.execute({\n\t\t\tnameReadable: 'First schema!',\n\t\t\tnamePascal: 'FirstSchema',\n\t\t\tnameCamel: 'firstSchema',\n\t\t\tversion: 'v2020_01_01',\n\t\t})\n\n\t\tawait this.assertAnswersFirstTime(action, newVersion)\n\t\tawait this.assertAnswersSecondTime(action, newVersion)\n\t}\n\n\t// should ask if we want to use the old version we created above or a New Version\n\tprivate static async assertAnswersFirstTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Second schema!',\n\t\t\tnamePascal: 'SecondSchema',\n\t\t\tnameCamel: 'secondSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst last = this.ui.invocations[this.ui.invocations.length - 1]\n\n\t\tassert.isEqual(last?.command, 'prompt')\n\t\tassert.isLength(last?.options?.options?.choices, 2)\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: 'New Version',\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\tawait this.ui.sendInput(newVersion.dirValue)\n\t\tawait createPromise\n\t}\n\n\t// should only have 2 options, none of which are \"new version\" since that was created in secondAnswers\n\tprivate static async assertAnswersSecondTime(\n\t\taction: FeatureAction,\n\t\tnewVersion: { intValue: number; constValue: string; dirValue: string }\n\t) {\n\t\tconst createPromise = action.execute({\n\t\t\tnameReadable: 'Third schema',\n\t\t\tnamePascal: 'ThirdSchema',\n\t\t\tnameCamel: 'thirdSchema',\n\t\t})\n\n\t\tawait this.wait(1000)\n\t\tconst term = this.ui as SpyInterface\n\t\tconst last = term.invocations[term.invocations.length - 1]\n\n\t\tassert.isEqualDeep(last?.options?.options?.choices, [\n\t\t\t{\n\t\t\t\tvalue: newVersion.dirValue,\n\t\t\t\tlabel: newVersion.dirValue,\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'v2020_01_01',\n\t\t\t\tlabel: 'v2020_01_01',\n\t\t\t},\n\t\t])\n\n\t\t// eslint-disable-next-line @typescript-eslint/no-floating-promises\n\t\tthis.ui.sendInput(newVersion.dirValue)\n\n\t\tconst createResults = await createPromise\n\n\t\tconst schemaMatch = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'secondSchema.schema.ts',\n\t\t\tcreateResults.files\n\t\t)\n\n\t\tassert.doesInclude(schemaMatch, newVersion.dirValue)\n\t}\n\n\tprivate static validateSchemaFiles(\n\t\tresponse: FeatureActionResponse,\n\t\texpectedFileName: string,\n\t\texpectedVersion: string,\n\t\texpectedSchemaInterfaceName: string\n\t) {\n\t\tassert.isUndefined(response.errors)\n\n\t\tlet schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\texpectedFileName,\n\t\t\tresponse.files\n\t\t)\n\n\t\tconst errors = response.errors ?? []\n\t\tif (errors.length > 0) {\n\t\t\tassert.fail(errors[0].friendlyMessage())\n\t\t}\n\n\t\tassert.doesInclude(schemaFile, expectedVersion)\n\t\tconst schemaContents = diskUtil.readFile(schemaFile)\n\n\t\tassert.doesInclude(schemaContents, `version: '${expectedVersion}'`)\n\n\t\tassert.doesInclude(\n\t\t\tschemaContents,\n\t\t\tnew RegExp(\n\t\t\t\t'SpruceSchemas.TestingSchemas.' +\n\t\t\t\t\texpectedVersion +\n\t\t\t\t\t'.*?' +\n\t\t\t\t\texpectedSchemaInterfaceName,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\t}\n\n\tprivate static async buildTestSchema() {\n\t\tconst action = await this.syncSchemasAndGetCreateAction('schemas')\n\n\t\tconst response = await action.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'AnotherTest',\n\t\t\tnameCamel: 'anotherTest',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tassert.isUndefined(response.errors)\n\n\t\treturn response\n\t}\n}\n"],"file":"CreatingANewSchemaBuilder.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
|
});
|
|
@@ -27,20 +25,16 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
|
|
|
27
25
|
|
|
28
26
|
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
|
|
29
27
|
|
|
30
|
-
var coreSchemas = _interopRequireWildcard(require("@sprucelabs/spruce-core-schemas"));
|
|
31
|
-
|
|
32
28
|
var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
33
29
|
|
|
34
30
|
var _test = require("@sprucelabs/test");
|
|
35
31
|
|
|
32
|
+
var _SchemaStore = require("../../../features/schema/stores/SchemaStore");
|
|
33
|
+
|
|
36
34
|
var _AbstractSchemaTest2 = _interopRequireDefault(require("../../../tests/AbstractSchemaTest"));
|
|
37
35
|
|
|
38
36
|
var _dec, _dec2, _class;
|
|
39
37
|
|
|
40
|
-
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); }
|
|
41
|
-
|
|
42
|
-
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; }
|
|
43
|
-
|
|
44
38
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
45
39
|
|
|
46
40
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -69,7 +63,7 @@ var GettingSchemasFromHealthCheckTest = (_dec = (0, _test.test)(), _dec2 = (0, _
|
|
|
69
63
|
|
|
70
64
|
case 2:
|
|
71
65
|
cli = _context.sent;
|
|
72
|
-
cleanedExpected = this.generateExpectedHealthSchemas(Object.values(coreSchemas));
|
|
66
|
+
cleanedExpected = this.generateExpectedHealthSchemas(Object.values(_SchemaStore.coreSchemas));
|
|
73
67
|
_context.next = 6;
|
|
74
68
|
return this.assertExpectedSchemas(cli, cleanedExpected);
|
|
75
69
|
|
|
@@ -148,7 +142,7 @@ var GettingSchemasFromHealthCheckTest = (_dec = (0, _test.test)(), _dec2 = (0, _
|
|
|
148
142
|
});
|
|
149
143
|
|
|
150
144
|
case 6:
|
|
151
|
-
cleanedExpected = this.generateExpectedHealthSchemas([].concat((0, _toConsumableArray2["default"])(Object.values(coreSchemas)), [{
|
|
145
|
+
cleanedExpected = this.generateExpectedHealthSchemas([].concat((0, _toConsumableArray2["default"])(Object.values(_SchemaStore.coreSchemas)), [{
|
|
152
146
|
id: 'test',
|
|
153
147
|
name: 'Test schema!',
|
|
154
148
|
version: _spruceSkillUtils.versionUtil.generateVersion().constValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts"],"names":["GettingSchemasFromHealthCheckTest","installAndSyncSchemas","cli","cleanedExpected","generateExpectedHealthSchemas","Object","values","coreSchemas","assertExpectedSchemas","expected","checkHealth","health","assert","isFalsy","skill","errors","isTruthy","schema","isEqual","status","isEqualDeep","sortSchemas","schemas","createSchema","Action","execute","nameReadable","namePascal","nameCamel","description","id","name","version","versionUtil","generateVersion","constValue","namespace","installSchemaFeature","AbstractSchemaTest"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/schemas/GettingSchemasFromHealthCheck.test.ts"],"names":["GettingSchemasFromHealthCheckTest","installAndSyncSchemas","cli","cleanedExpected","generateExpectedHealthSchemas","Object","values","coreSchemas","assertExpectedSchemas","expected","checkHealth","health","assert","isFalsy","skill","errors","isTruthy","schema","isEqual","status","isEqualDeep","sortSchemas","schemas","createSchema","Action","execute","nameReadable","namePascal","nameCamel","description","id","name","version","versionUtil","generateVersion","constValue","namespace","installSchemaFeature","AbstractSchemaTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAEA;;AACA;;;;;;;;IAEqBA,iC,WACnB,iB,UAuBA,iB;;;;;;;;;;;;;0HAvBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKC,qBAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAIOC,gBAAAA,eAJP,GAIyB,KAAKC,6BAAL,CACvBC,MAAM,CAACC,MAAP,CAAcC,wBAAd,CADuB,CAJzB;AAAA;AAAA,uBAQO,KAAKC,qBAAL,CAA2BN,GAA3B,EAAgCC,eAAhC,CARP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iHAWA,kBACCD,GADD,EAECO,QAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAIsBP,GAAG,CAACQ,WAAJ,EAJtB;;AAAA;AAIOC,gBAAAA,MAJP;;AAKCC,6BAAOC,OAAP,CAAeF,MAAM,CAACG,KAAP,CAAaC,MAA5B;;AACAH,6BAAOI,QAAP,CAAgBL,MAAM,CAACM,MAAvB;;AACAL,6BAAOM,OAAP,CAAeP,MAAM,CAACM,MAAP,CAAcE,MAA7B,EAAqC,QAArC;;AAEAP,6BAAOQ,WAAP,CAAmB,KAAKC,WAAL,CAAiBV,MAAM,CAACM,MAAP,CAAcK,OAA/B,CAAnB,EAA4Db,QAA5D;;AATD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kIAYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEmB,KAAKR,qBAAL,EAFnB;;AAAA;AAEOC,gBAAAA,GAFP;AAGOqB,gBAAAA,YAHP,GAGsB,KAAKC,MAAL,CAAY,QAAZ,EAAsB,QAAtB,CAHtB;AAAA;AAAA,uBAKOD,YAAY,CAACE,OAAb,CAAqB;AAC1BC,kBAAAA,YAAY,EAAE,cADY;AAE1BC,kBAAAA,UAAU,EAAE,MAFc;AAG1BC,kBAAAA,SAAS,EAAE,MAHe;AAI1BC,kBAAAA,WAAW,EAAE;AAJa,iBAArB,CALP;;AAAA;AAYO1B,gBAAAA,eAZP,GAYyB,KAAKC,6BAAL,+CACpBC,MAAM,CAACC,MAAP,CAAcC,wBAAd,CADoB,IAEvB;AACCuB,kBAAAA,EAAE,EAAE,MADL;AAECC,kBAAAA,IAAI,EAAE,cAFP;AAGCC,kBAAAA,OAAO,EAAEC,8BAAYC,eAAZ,GAA8BC,UAHxC;AAICC,kBAAAA,SAAS,EAAE,gBAJZ;AAKCP,kBAAAA,WAAW,EAAE;AALd,iBAFuB,GAZzB;AAAA;AAAA,uBAuBO,KAAKrB,qBAAL,CAA2BN,GAA3B,EAAgCC,eAAhC,CAvBP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iHA0BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACmB,KAAKkC,oBAAL,CAA0B,SAA1B,CADnB;;AAAA;AACOnC,gBAAAA,GADP;AAAA;AAAA,uBAEO,KAAKsB,MAAL,CAAY,QAAZ,EAAsB,MAAtB,EAA8BC,OAA9B,CAAsC,EAAtC,CAFP;;AAAA;AAAA,kDAGQvB,GAHR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EAlD8DoC,+B","sourcesContent":["import { Schema } from '@sprucelabs/schema'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { CliInterface } from '../../../cli'\nimport { coreSchemas } from '../../../features/schema/stores/SchemaStore'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\n\nexport default class GettingSchemasFromHealthCheckTest extends AbstractSchemaTest {\n\t@test()\n\tprotected static async getsCoreSchemasFromHealthCheck() {\n\t\tconst cli = await this.installAndSyncSchemas()\n\n\t\tconst cleanedExpected = this.generateExpectedHealthSchemas(\n\t\t\tObject.values(coreSchemas)\n\t\t)\n\n\t\tawait this.assertExpectedSchemas(cli, cleanedExpected)\n\t}\n\n\tprivate static async assertExpectedSchemas(\n\t\tcli: CliInterface,\n\t\texpected: Schema[]\n\t) {\n\t\tconst health = await cli.checkHealth()\n\t\tassert.isFalsy(health.skill.errors)\n\t\tassert.isTruthy(health.schema)\n\t\tassert.isEqual(health.schema.status, 'passed')\n\n\t\tassert.isEqualDeep(this.sortSchemas(health.schema.schemas), expected)\n\t}\n\n\t@test()\n\tprotected static async getsCoreAndLocalSchemasFromHealthCheck() {\n\t\tconst cli = await this.installAndSyncSchemas()\n\t\tconst createSchema = this.Action('schema', 'create')\n\n\t\tawait createSchema.execute({\n\t\t\tnameReadable: 'Test schema!',\n\t\t\tnamePascal: 'Test',\n\t\t\tnameCamel: 'test',\n\t\t\tdescription: 'this is so great!',\n\t\t})\n\n\t\tconst cleanedExpected = this.generateExpectedHealthSchemas([\n\t\t\t...Object.values(coreSchemas),\n\t\t\t{\n\t\t\t\tid: 'test',\n\t\t\t\tname: 'Test schema!',\n\t\t\t\tversion: versionUtil.generateVersion().constValue,\n\t\t\t\tnamespace: 'TestingSchemas',\n\t\t\t\tdescription: 'this is so great!',\n\t\t\t},\n\t\t])\n\n\t\tawait this.assertExpectedSchemas(cli, cleanedExpected)\n\t}\n\n\tprivate static async installAndSyncSchemas() {\n\t\tconst cli = await this.installSchemaFeature('schemas')\n\t\tawait this.Action('schema', 'sync').execute({})\n\t\treturn cli\n\t}\n}\n"],"file":"GettingSchemasFromHealthCheck.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,24 +27,20 @@ var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/
|
|
|
29
27
|
|
|
30
28
|
var _path = _interopRequireDefault(require("path"));
|
|
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");
|
|
37
33
|
|
|
38
34
|
var _testUtils = require("@sprucelabs/test-utils");
|
|
39
35
|
|
|
36
|
+
var _SchemaStore = require("../../../features/schema/stores/SchemaStore");
|
|
37
|
+
|
|
40
38
|
var _AbstractSchemaTest2 = _interopRequireDefault(require("../../../tests/AbstractSchemaTest"));
|
|
41
39
|
|
|
42
40
|
var _test2 = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
|
|
43
41
|
|
|
44
42
|
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _class, _class2;
|
|
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 _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
51
45
|
|
|
52
46
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
@@ -54,9 +48,9 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
|
|
|
54
48
|
//TODO rethink how to check for count of files and results or where it may make sense to move this test
|
|
55
49
|
var TYPE_FILE_COUNT = 2; // (only fieldMap and field.types... schema.types checked by +1 in tests)
|
|
56
50
|
|
|
57
|
-
var SYNC_FILE_COUNT = Object.keys(coreSchemas).length + TYPE_FILE_COUNT;
|
|
51
|
+
var SYNC_FILE_COUNT = Object.keys(_SchemaStore.coreSchemas).length + TYPE_FILE_COUNT;
|
|
58
52
|
var MOCK_CORE_SYNC_FILE_COUNT = 4 + TYPE_FILE_COUNT;
|
|
59
|
-
var KeepsSchemasInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), _dec5 = (0, _test.test)(), _dec6 = (0, _test.test)(), _dec7 = (0, _test.test)(), _dec8 = (0, _test.test)(), _dec9 = (0, _test.test)(), _dec10 = (0, _test.test)(), _dec11 = (0, _test.test)(), _dec12 = (0, _test.test)(), _dec13 = (0, _test.test)(), _dec14 = (0, _test.test)(), _dec15 = (0, _test.test)('syncs
|
|
53
|
+
var KeepsSchemasInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3 = (0, _test.test)(), _dec4 = (0, _test.test)(), _dec5 = (0, _test.test)(), _dec6 = (0, _test.test)(), _dec7 = (0, _test.test)(), _dec8 = (0, _test.test)(), _dec9 = (0, _test.test)(), _dec10 = (0, _test.test)(), _dec11 = (0, _test.test)(), _dec12 = (0, _test.test)(), _dec13 = (0, _test.test)(), _dec14 = (0, _test.test)(), _dec15 = (0, _test.test)('syncs minArrayLength, importsWhenRemote'), _dec16 = (0, _test.test)(), _dec17 = (0, _test.test)(), (_class = (_class2 = /*#__PURE__*/function (_AbstractSchemaTest) {
|
|
60
54
|
(0, _inherits2["default"])(KeepsSchemasInSyncTest, _AbstractSchemaTest);
|
|
61
55
|
|
|
62
56
|
var _super = _createSuper(KeepsSchemasInSyncTest);
|
|
@@ -117,7 +111,7 @@ var KeepsSchemasInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(
|
|
|
117
111
|
case 4:
|
|
118
112
|
err = _context2.sent;
|
|
119
113
|
|
|
120
|
-
_testUtils.
|
|
114
|
+
_testUtils.errorAssert.assertError(err, 'FEATURE_NOT_INSTALLED');
|
|
121
115
|
|
|
122
116
|
case 6:
|
|
123
117
|
case "end":
|
|
@@ -591,7 +585,7 @@ var KeepsSchemasInSyncTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(
|
|
|
591
585
|
case 4:
|
|
592
586
|
createResponse = _context12.sent;
|
|
593
587
|
|
|
594
|
-
for (_i = 0, _Object$values = Object.values(coreSchemas); _i < _Object$values.length; _i++) {
|
|
588
|
+
for (_i = 0, _Object$values = Object.values(_SchemaStore.coreSchemas); _i < _Object$values.length; _i++) {
|
|
595
589
|
schema = _Object$values[_i];
|
|
596
590
|
id = schema.id;
|
|
597
591
|
match = _test2["default"].assertFileByNameInGeneratedFiles("".concat(id, ".schema.ts"), createResponse.files);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/schemas/KeepingSchemasInSync.test.ts"],"names":["TYPE_FILE_COUNT","SYNC_FILE_COUNT","Object","keys","coreSchemas","length","MOCK_CORE_SYNC_FILE_COUNT","KeepsSchemasInSyncTest","Cli","assert","isFunction","Action","execute","doesThrowAsync","err","errorAssertUtil","assertError","installSchemaFeature","results","isFalsy","errors","testUtil","assertCountsByAction","files","updated","generated","skipped","shouldFetchCoreSchemas","tmpFile","resolveHashSprucePath","isFalse","diskUtil","doesFileExist","copyMockCoreSchemas","coreSyncOptions","isUndefined","isTruthy","isLength","isTrue","coreSchemaTypesFile","assertTypesFileGeneratesArraySelect","syncSchemas","isAbove","typesContents","readFile","doesInclude","RegExp","CORE_NAMESPACE","CORE_SCHEMA_VERSION","constValue","assertValidActionResponseFiles","doesNotInclude","DEFAULT_GLOBAL_SCHEMA_NAMESPACE","orgSchema","assertFileByNameInGeneratedFiles","locationSchemaContents","pkg","Service","set","path","value","nameReadable","nameCamel","createResponse","builderPath","contents","replace","writeFile","syncResults","testSchema","testSchemaContents","values","schema","id","match","version","versionUtil","generateVersion","typeChecker","createAction","matcher","pathUtil","dirname","schemaTypesFile","builderFile","dirValue","schemaFile","check","deleteFile","namespaceFolder","doesDirExist","FeatureFixture","installCachedFeatures","promise","waitForInput","ui","sendInput","schemasDir","resolvePath","copyDir","resolveTestPath","importSchema","fields","phone","minArrayLength","isEqual","favoriteColors","permissions","beforeFolder","afterFolder","Store","setCurrentSkillsNamespace","testSchemaPath","schemaPath","importDefault","imported","importsWhenRemote","typeSuffix","filename","file","typesFile","source","destination","AbstractSchemaTest","shouldGenerateCoreSchemaTypes"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport * as coreSchemas from '@sprucelabs/spruce-core-schemas'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tCORE_SCHEMA_VERSION,\n\tCORE_NAMESPACE,\n\tDEFAULT_GLOBAL_SCHEMA_NAMESPACE,\n} from '@sprucelabs/spruce-skill-utils'\nimport { assert, test } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\n//TODO rethink how to check for count of files and results or where it may make sense to move this test\nconst TYPE_FILE_COUNT = 2 // (only fieldMap and field.types... schema.types checked by +1 in tests)\nconst SYNC_FILE_COUNT = Object.keys(coreSchemas).length + TYPE_FILE_COUNT\nconst MOCK_CORE_SYNC_FILE_COUNT = 4 + TYPE_FILE_COUNT\n\nexport default class KeepsSchemasInSyncTest extends AbstractSchemaTest {\n\tprivate static readonly coreSyncOptions = {\n\t\tshouldGenerateCoreSchemaTypes: true,\n\t}\n\n\t@test()\n\tprotected static async hasSyncSchemaAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('schema', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async failsBecauseSchemasIsNotInstalled() {\n\t\tawait this.Cli()\n\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Action('schema', 'sync').execute({})\n\t\t)\n\n\t\terrorAssertUtil.assertError(err, 'FEATURE_NOT_INSTALLED')\n\t}\n\n\t@test()\n\tprotected static async syncingWithNoSchemasSucceeds() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\t//TODO determine better way to count files\n\t\ttestUtil.assertCountsByAction(results.files, {\n\t\t\tupdated: 0,\n\t\t\tgenerated: SYNC_FILE_COUNT,\n\t\t\tskipped: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async syncingWithNoSchemasAndFetchCoreSchemasFalseSucceeds() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst results = await this.Action('schema', 'sync').execute({\n\t\t\tshouldFetchCoreSchemas: false,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\ttestUtil.assertCountsByAction(results.files, {\n\t\t\tupdated: 0,\n\t\t\tgenerated: TYPE_FILE_COUNT,\n\t\t\tskipped: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async syncingCleansUpTempFiles() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst tmpFile = this.resolveHashSprucePath(\n\t\t\t'schemas',\n\t\t\t'tmp',\n\t\t\t'valueType.tmp.ts'\n\t\t)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(tmpFile))\n\t}\n\n\t@test()\n\tprotected static async syncingCoreSchemasGeneratesTypesFile() {\n\t\tawait this.installSchemaFeature('schemas')\n\t\tawait this.copyMockCoreSchemas()\n\n\t\tconst results = await this.Action('schema', 'sync').execute(\n\t\t\tthis.coreSyncOptions\n\t\t)\n\n\t\tassert.isUndefined(results.errors)\n\t\tassert.isTruthy(results.files)\n\n\t\tassert.isLength(results.files, MOCK_CORE_SYNC_FILE_COUNT)\n\n\t\ttestUtil.assertCountsByAction(results.files, {\n\t\t\tgenerated: MOCK_CORE_SYNC_FILE_COUNT,\n\t\t\tskipped: 0,\n\t\t\tupdated: 0,\n\t\t})\n\n\t\tassert.isTrue(diskUtil.doesFileExist(this.coreSchemaTypesFile))\n\n\t\tawait this.assertTypesFileGeneratesArraySelect(this.coreSchemaTypesFile)\n\t}\n\n\t@test()\n\tprotected static async syncSchemasTwiceSkipsFiles() {\n\t\tawait this.syncSchemas('schemas', this.coreSyncOptions)\n\t\tconst results = await this.Action('schema', 'sync').execute(\n\t\t\tthis.coreSyncOptions\n\t\t)\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isAbove(results.files?.length, 0)\n\n\t\ttestUtil.assertCountsByAction(results.files, {\n\t\t\tgenerated: 0,\n\t\t\tskipped: results.files?.length ?? 0,\n\t\t\tupdated: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async makeSureSchemaTypesAreVersioned() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tawait this.copyMockCoreSchemas()\n\n\t\tconst results = await this.Action('schema', 'sync').execute(\n\t\t\tthis.coreSyncOptions\n\t\t)\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst typesContents = diskUtil.readFile(this.coreSchemaTypesFile)\n\t\tassert.doesInclude(\n\t\t\ttypesContents,\n\t\t\tnew RegExp(\n\t\t\t\t`SpruceSchemas.${CORE_NAMESPACE}.${CORE_SCHEMA_VERSION.constValue}(.*?)interface Person`,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async shouldGenerateCoreSchemaTypesGeneratesValidFiles() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tawait this.copyMockCoreSchemas()\n\n\t\tconst results = await this.Action('schema', 'sync').execute(\n\t\t\tthis.coreSyncOptions\n\t\t)\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTruthy(results.files)\n\n\t\tawait this.assertValidActionResponseFiles(results)\n\n\t\tconst typesContents = diskUtil.readFile(this.coreSchemaTypesFile)\n\n\t\tassert.doesNotInclude(typesContents, /@sprucelabs\\/spruce-core-schemas/gi)\n\t\tassert.doesInclude(\n\t\t\ttypesContents,\n\t\t\tnew RegExp(\n\t\t\t\t`export declare namespace ${DEFAULT_GLOBAL_SCHEMA_NAMESPACE}.${CORE_NAMESPACE}.${CORE_SCHEMA_VERSION.constValue}`,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\n\t\tconst orgSchema = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'organization.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst locationSchemaContents = diskUtil.readFile(orgSchema)\n\t\tassert.doesInclude(locationSchemaContents, 'SchemaRegistry')\n\t}\n\n\t@test()\n\tprotected static async generateCoreSchemaInCoreSchemasModule() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: 'name', value: '@sprucelabs/spruce-core-schemas' })\n\n\t\tawait this.copyMockCoreSchemas()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTruthy(results.files)\n\n\t\tconst typesContents = diskUtil.readFile(this.coreSchemaTypesFile)\n\n\t\tassert.doesNotInclude(typesContents, /@sprucelabs\\/spruce-core-schemas/gi)\n\t\tassert.doesInclude(\n\t\t\ttypesContents,\n\t\t\tnew RegExp(\n\t\t\t\t`export declare namespace ${DEFAULT_GLOBAL_SCHEMA_NAMESPACE}.${CORE_NAMESPACE}.${CORE_SCHEMA_VERSION.constValue}`,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\n\t\tconst orgSchema = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'organization.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst locationSchemaContents = diskUtil.readFile(orgSchema)\n\t\tassert.doesInclude(locationSchemaContents, 'SchemaRegistry')\n\t}\n\n\t@test()\n\tprotected static async canHandleHyphenSchemaIds() {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tconst createResponse = await this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Test schema',\n\t\t\tnameCamel: 'testSchema',\n\t\t})\n\n\t\tassert.isFalsy(createResponse.errors)\n\n\t\tconst builderPath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'testSchema.builder.ts',\n\t\t\tcreateResponse.files\n\t\t)\n\n\t\tconst contents = diskUtil\n\t\t\t.readFile(builderPath)\n\t\t\t.replace(\"id: 'testSchema'\", \"id: 'test-schema'\")\n\n\t\tdiskUtil.writeFile(builderPath, contents)\n\n\t\tconst syncResults = await this.Action('schema', 'sync').execute({})\n\n\t\tconst testSchema = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'test-schema.schema.ts',\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst testSchemaContents = diskUtil.readFile(testSchema)\n\t\tassert.doesInclude(testSchemaContents, 'SchemaRegistry')\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\t}\n\n\t@test()\n\tprotected static async coreSchemasPullFromCoreSchemasModuleDuringNormalGeneration() {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tconst createResponse = await this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Test schema',\n\t\t\tnameCamel: 'testSchema',\n\t\t})\n\n\t\tfor (const schema of Object.values(coreSchemas)) {\n\t\t\tconst id = schema.id\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t`${id}.schema.ts`,\n\t\t\t\tcreateResponse.files\n\t\t\t)\n\t\t\tconst contents = diskUtil.readFile(match)\n\t\t\tassert.doesInclude(\n\t\t\t\tcontents,\n\t\t\t\t`export { ${id}Schema as default } from '@sprucelabs/spruce-core-schemas'`\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async schemasStayInSyncWhenBuildersAreDeleted() {\n\t\tawait this.syncSchemas('schemas')\n\t\tconst version = versionUtil.generateVersion()\n\t\tconst typeChecker = this.Service('typeChecker')\n\t\tconst createAction = this.Action('schema', 'create')\n\n\t\tconst matcher = new RegExp(\n\t\t\t`SpruceSchemas.TestingSchemas.${version.constValue}(.*?)interface TestSchema`,\n\t\t\t'gis'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(pathUtil.dirname(this.schemaTypesFile))\n\t\t)\n\n\t\tconst createResponse = await createAction.execute({\n\t\t\tnameReadable: 'Test schema',\n\t\t\tnameCamel: 'testSchema',\n\t\t})\n\n\t\tconst builderFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/testSchema\\.builder/,\n\t\t\tcreateResponse.files\n\t\t)\n\n\t\t// make sure builder is versioned\n\t\tassert.doesInclude(builderFile, version.dirValue)\n\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/testSchema\\.schema/,\n\t\t\tcreateResponse.files\n\t\t)\n\n\t\t// make sure this path is versioned\n\t\tassert.doesInclude(schemaFile, version.dirValue)\n\t\tassert.doesInclude(schemaFile, '/testingSchemas/')\n\n\t\t// schema types should be good\n\t\tawait typeChecker.check(this.schemaTypesFile)\n\n\t\t// the types should include our test schema\n\t\tlet typesContents = diskUtil.readFile(this.schemaTypesFile)\n\t\tassert.doesInclude(typesContents, matcher)\n\n\t\t// the schema file should exist\n\t\tassert.isTrue(diskUtil.doesFileExist(schemaFile))\n\n\t\t// DELETE builder and make sure we are cleaned up\n\t\tdiskUtil.deleteFile(builderFile)\n\n\t\t// this should cleanup types and schema files\n\t\tawait this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTrue(diskUtil.doesFileExist(this.schemaTypesFile))\n\n\t\t// and the schema should have been deleted\n\t\tassert.isFalse(diskUtil.doesFileExist(schemaFile))\n\n\t\t// and the namespace folder should have been deleted\n\t\tconst namespaceFolder = this.resolveHashSprucePath(\n\t\t\t'schemas',\n\t\t\t'testingSChemas'\n\t\t)\n\t\tassert.isFalse(diskUtil.doesDirExist(namespaceFolder))\n\t}\n\n\t@test()\n\tprotected static async canSyncSchemasWhenOnlyNodeModuleIsInstalledAfterDecliningToInstallSkill() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemasInNodeModule')\n\n\t\tconst promise = this.Action('schema', 'sync').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('n')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\t\tawait this.assertValidActionResponseFiles(results)\n\t}\n\n\t@test('syncs minAraryLength, importsWhenRemote')\n\tprotected static async syncsExpectedFields() {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tconst schemasDir = this.resolvePath('src', 'schemas')\n\n\t\tawait diskUtil.copyDir(this.resolveTestPath('test_builders'), schemasDir)\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\t\tconst schema = await this.importSchema(results, 'schemaTwo.schema.ts')\n\n\t\tassert.isUndefined(schema.fields.phone.minArrayLength)\n\t\tassert.isEqual(schema.fields.favoriteColors.minArrayLength, 3)\n\t\tassert.isEqual(schema.fields.permissions.minArrayLength, 0)\n\t}\n\n\t@test()\n\tprotected static async canChangeSkillNamespace() {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tawait this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Test schema',\n\t\t\tnameCamel: 'testSchema',\n\t\t})\n\n\t\tconst beforeFolder = this.resolveHashSprucePath('schemas', 'testingSchemas')\n\t\tconst afterFolder = this.resolveHashSprucePath('schemas', 'newNamespace')\n\n\t\tassert.isTrue(diskUtil.doesFileExist(beforeFolder))\n\t\tassert.isFalse(diskUtil.doesFileExist(afterFolder))\n\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('new-namespace')\n\n\t\tawait this.Action('schema', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(beforeFolder))\n\t\tassert.isTrue(diskUtil.doesFileExist(afterFolder))\n\t}\n\n\t@test()\n\tprotected static async generatedSchemasRetainImportsAndTypeSuffix() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst results = await this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Test schema',\n\t\t\tnameCamel: 'testSchema',\n\t\t})\n\n\t\tconst testSchemaPath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'testSchema.builder.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(\n\t\t\ttestSchemaPath,\n\t\t\t`import { buildSchema } from '@sprucelabs/schema'\n\n\t\texport default buildSchema({\n\t\t\tid: 'testSchema',\n\t\t\tname: 'Test schema',\n\t\t\tdescription: '',\n\t\t\timportsWhenLocal: ['import * as Local from \"@sprucelabs/schema\"'],\n\t\t\timportsWhenRemote: ['import * as Remote from \"@sprucelabs/schema\"'],\n\t\t\ttypeSuffix: '<S extends Record<string, any> = Record<string, any>>',\n\t\t\tfields: {\n\t\t\t\tfieldName1: {\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tlabel: 'First Field',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tfieldName2: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tlabel: 'Second Field',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t\thint: 'A hint',\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\t`\n\t\t)\n\n\t\tconst syncResults = await this.Action('schema', 'sync').execute({})\n\n\t\tconst schemaPath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'testSchema.schema.ts',\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst imported = await this.Service('import').importDefault(schemaPath)\n\n\t\tassert.doesInclude(imported, {\n\t\t\timportsWhenRemote: ['import * as Remote from \"@sprucelabs/schema\"'],\n\t\t\ttypeSuffix: '<S extends Record<string, any> = Record<string, any>>',\n\t\t})\n\t}\n\n\tprivate static async importSchema(results: any, filename: string) {\n\t\tconst file = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tfilename,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('import').importDefault(file)\n\n\t\treturn schema\n\t}\n\n\tprivate static async assertTypesFileGeneratesArraySelect(typesFile: string) {\n\t\tconst contents = diskUtil.readFile(typesFile)\n\t\tassert.doesInclude(contents, `'favoriteColors'?: (\"blue\" | \"red\")[]`)\n\t}\n\n\tprivate static async copyMockCoreSchemas() {\n\t\tconst source = this.resolveTestPath('mock_core_builders')\n\t\tconst destination = this.resolvePath('src', 'schemas')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\t}\n}\n"],"file":"KeepingSchemasInSync.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/schemas/KeepingSchemasInSync.test.ts"],"names":["TYPE_FILE_COUNT","SYNC_FILE_COUNT","Object","keys","coreSchemas","length","MOCK_CORE_SYNC_FILE_COUNT","KeepsSchemasInSyncTest","Cli","assert","isFunction","Action","execute","doesThrowAsync","err","errorAssert","assertError","installSchemaFeature","results","isFalsy","errors","testUtil","assertCountsByAction","files","updated","generated","skipped","shouldFetchCoreSchemas","tmpFile","resolveHashSprucePath","isFalse","diskUtil","doesFileExist","copyMockCoreSchemas","coreSyncOptions","isUndefined","isTruthy","isLength","isTrue","coreSchemaTypesFile","assertTypesFileGeneratesArraySelect","syncSchemas","isAbove","typesContents","readFile","doesInclude","RegExp","CORE_NAMESPACE","CORE_SCHEMA_VERSION","constValue","assertValidActionResponseFiles","doesNotInclude","DEFAULT_GLOBAL_SCHEMA_NAMESPACE","orgSchema","assertFileByNameInGeneratedFiles","locationSchemaContents","pkg","Service","set","path","value","nameReadable","nameCamel","createResponse","builderPath","contents","replace","writeFile","syncResults","testSchema","testSchemaContents","values","schema","id","match","version","versionUtil","generateVersion","typeChecker","createAction","matcher","pathUtil","dirname","schemaTypesFile","builderFile","dirValue","schemaFile","check","deleteFile","namespaceFolder","doesDirExist","FeatureFixture","installCachedFeatures","promise","waitForInput","ui","sendInput","schemasDir","resolvePath","copyDir","resolveTestPath","importSchema","fields","phone","minArrayLength","isEqual","favoriteColors","permissions","beforeFolder","afterFolder","Store","setCurrentSkillsNamespace","testSchemaPath","schemaPath","importDefault","imported","importsWhenRemote","typeSuffix","filename","file","typesFile","source","destination","AbstractSchemaTest","shouldGenerateCoreSchemaTypes"],"mappings":"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","sourcesContent":["import pathUtil from 'path'\nimport { versionUtil } from '@sprucelabs/spruce-skill-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport {\n\tCORE_SCHEMA_VERSION,\n\tCORE_NAMESPACE,\n\tDEFAULT_GLOBAL_SCHEMA_NAMESPACE,\n} from '@sprucelabs/spruce-skill-utils'\nimport { assert, test } from '@sprucelabs/test'\nimport { errorAssert } from '@sprucelabs/test-utils'\nimport { coreSchemas } from '../../../features/schema/stores/SchemaStore'\nimport AbstractSchemaTest from '../../../tests/AbstractSchemaTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\n//TODO rethink how to check for count of files and results or where it may make sense to move this test\nconst TYPE_FILE_COUNT = 2 // (only fieldMap and field.types... schema.types checked by +1 in tests)\nconst SYNC_FILE_COUNT = Object.keys(coreSchemas).length + TYPE_FILE_COUNT\nconst MOCK_CORE_SYNC_FILE_COUNT = 4 + TYPE_FILE_COUNT\n\nexport default class KeepsSchemasInSyncTest extends AbstractSchemaTest {\n\tprivate static readonly coreSyncOptions = {\n\t\tshouldGenerateCoreSchemaTypes: true,\n\t}\n\n\t@test()\n\tprotected static async hasSyncSchemaAction() {\n\t\tawait this.Cli()\n\t\tassert.isFunction(this.Action('schema', 'sync').execute)\n\t}\n\n\t@test()\n\tprotected static async failsBecauseSchemasIsNotInstalled() {\n\t\tawait this.Cli()\n\n\t\tconst err = await assert.doesThrowAsync(() =>\n\t\t\tthis.Action('schema', 'sync').execute({})\n\t\t)\n\n\t\terrorAssert.assertError(err, 'FEATURE_NOT_INSTALLED')\n\t}\n\n\t@test()\n\tprotected static async syncingWithNoSchemasSucceeds() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\t//TODO determine better way to count files\n\t\ttestUtil.assertCountsByAction(results.files, {\n\t\t\tupdated: 0,\n\t\t\tgenerated: SYNC_FILE_COUNT,\n\t\t\tskipped: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async syncingWithNoSchemasAndFetchCoreSchemasFalseSucceeds() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst results = await this.Action('schema', 'sync').execute({\n\t\t\tshouldFetchCoreSchemas: false,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\ttestUtil.assertCountsByAction(results.files, {\n\t\t\tupdated: 0,\n\t\t\tgenerated: TYPE_FILE_COUNT,\n\t\t\tskipped: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async syncingCleansUpTempFiles() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst tmpFile = this.resolveHashSprucePath(\n\t\t\t'schemas',\n\t\t\t'tmp',\n\t\t\t'valueType.tmp.ts'\n\t\t)\n\n\t\tassert.isFalse(diskUtil.doesFileExist(tmpFile))\n\t}\n\n\t@test()\n\tprotected static async syncingCoreSchemasGeneratesTypesFile() {\n\t\tawait this.installSchemaFeature('schemas')\n\t\tawait this.copyMockCoreSchemas()\n\n\t\tconst results = await this.Action('schema', 'sync').execute(\n\t\t\tthis.coreSyncOptions\n\t\t)\n\n\t\tassert.isUndefined(results.errors)\n\t\tassert.isTruthy(results.files)\n\n\t\tassert.isLength(results.files, MOCK_CORE_SYNC_FILE_COUNT)\n\n\t\ttestUtil.assertCountsByAction(results.files, {\n\t\t\tgenerated: MOCK_CORE_SYNC_FILE_COUNT,\n\t\t\tskipped: 0,\n\t\t\tupdated: 0,\n\t\t})\n\n\t\tassert.isTrue(diskUtil.doesFileExist(this.coreSchemaTypesFile))\n\n\t\tawait this.assertTypesFileGeneratesArraySelect(this.coreSchemaTypesFile)\n\t}\n\n\t@test()\n\tprotected static async syncSchemasTwiceSkipsFiles() {\n\t\tawait this.syncSchemas('schemas', this.coreSyncOptions)\n\t\tconst results = await this.Action('schema', 'sync').execute(\n\t\t\tthis.coreSyncOptions\n\t\t)\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isAbove(results.files?.length, 0)\n\n\t\ttestUtil.assertCountsByAction(results.files, {\n\t\t\tgenerated: 0,\n\t\t\tskipped: results.files?.length ?? 0,\n\t\t\tupdated: 0,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async makeSureSchemaTypesAreVersioned() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tawait this.copyMockCoreSchemas()\n\n\t\tconst results = await this.Action('schema', 'sync').execute(\n\t\t\tthis.coreSyncOptions\n\t\t)\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst typesContents = diskUtil.readFile(this.coreSchemaTypesFile)\n\t\tassert.doesInclude(\n\t\t\ttypesContents,\n\t\t\tnew RegExp(\n\t\t\t\t`SpruceSchemas.${CORE_NAMESPACE}.${CORE_SCHEMA_VERSION.constValue}(.*?)interface Person`,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async shouldGenerateCoreSchemaTypesGeneratesValidFiles() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tawait this.copyMockCoreSchemas()\n\n\t\tconst results = await this.Action('schema', 'sync').execute(\n\t\t\tthis.coreSyncOptions\n\t\t)\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTruthy(results.files)\n\n\t\tawait this.assertValidActionResponseFiles(results)\n\n\t\tconst typesContents = diskUtil.readFile(this.coreSchemaTypesFile)\n\n\t\tassert.doesNotInclude(typesContents, /@sprucelabs\\/spruce-core-schemas/gi)\n\t\tassert.doesInclude(\n\t\t\ttypesContents,\n\t\t\tnew RegExp(\n\t\t\t\t`export declare namespace ${DEFAULT_GLOBAL_SCHEMA_NAMESPACE}.${CORE_NAMESPACE}.${CORE_SCHEMA_VERSION.constValue}`,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\n\t\tconst orgSchema = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'organization.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst locationSchemaContents = diskUtil.readFile(orgSchema)\n\t\tassert.doesInclude(locationSchemaContents, 'SchemaRegistry')\n\t}\n\n\t@test()\n\tprotected static async generateCoreSchemaInCoreSchemasModule() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst pkg = this.Service('pkg')\n\t\tpkg.set({ path: 'name', value: '@sprucelabs/spruce-core-schemas' })\n\n\t\tawait this.copyMockCoreSchemas()\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\n\t\tassert.isFalsy(results.errors)\n\t\tassert.isTruthy(results.files)\n\n\t\tconst typesContents = diskUtil.readFile(this.coreSchemaTypesFile)\n\n\t\tassert.doesNotInclude(typesContents, /@sprucelabs\\/spruce-core-schemas/gi)\n\t\tassert.doesInclude(\n\t\t\ttypesContents,\n\t\t\tnew RegExp(\n\t\t\t\t`export declare namespace ${DEFAULT_GLOBAL_SCHEMA_NAMESPACE}.${CORE_NAMESPACE}.${CORE_SCHEMA_VERSION.constValue}`,\n\t\t\t\t'gis'\n\t\t\t)\n\t\t)\n\n\t\tconst orgSchema = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'organization.schema.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tconst locationSchemaContents = diskUtil.readFile(orgSchema)\n\t\tassert.doesInclude(locationSchemaContents, 'SchemaRegistry')\n\t}\n\n\t@test()\n\tprotected static async canHandleHyphenSchemaIds() {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tconst createResponse = await this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Test schema',\n\t\t\tnameCamel: 'testSchema',\n\t\t})\n\n\t\tassert.isFalsy(createResponse.errors)\n\n\t\tconst builderPath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'testSchema.builder.ts',\n\t\t\tcreateResponse.files\n\t\t)\n\n\t\tconst contents = diskUtil\n\t\t\t.readFile(builderPath)\n\t\t\t.replace(\"id: 'testSchema'\", \"id: 'test-schema'\")\n\n\t\tdiskUtil.writeFile(builderPath, contents)\n\n\t\tconst syncResults = await this.Action('schema', 'sync').execute({})\n\n\t\tconst testSchema = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'test-schema.schema.ts',\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst testSchemaContents = diskUtil.readFile(testSchema)\n\t\tassert.doesInclude(testSchemaContents, 'SchemaRegistry')\n\n\t\tawait this.assertValidActionResponseFiles(syncResults)\n\t}\n\n\t@test()\n\tprotected static async coreSchemasPullFromCoreSchemasModuleDuringNormalGeneration() {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tconst createResponse = await this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Test schema',\n\t\t\tnameCamel: 'testSchema',\n\t\t})\n\n\t\tfor (const schema of Object.values(coreSchemas)) {\n\t\t\tconst id = schema.id\n\t\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t\t`${id}.schema.ts`,\n\t\t\t\tcreateResponse.files\n\t\t\t)\n\t\t\tconst contents = diskUtil.readFile(match)\n\t\t\tassert.doesInclude(\n\t\t\t\tcontents,\n\t\t\t\t`export { ${id}Schema as default } from '@sprucelabs/spruce-core-schemas'`\n\t\t\t)\n\t\t}\n\t}\n\n\t@test()\n\tprotected static async schemasStayInSyncWhenBuildersAreDeleted() {\n\t\tawait this.syncSchemas('schemas')\n\t\tconst version = versionUtil.generateVersion()\n\t\tconst typeChecker = this.Service('typeChecker')\n\t\tconst createAction = this.Action('schema', 'create')\n\n\t\tconst matcher = new RegExp(\n\t\t\t`SpruceSchemas.TestingSchemas.${version.constValue}(.*?)interface TestSchema`,\n\t\t\t'gis'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(pathUtil.dirname(this.schemaTypesFile))\n\t\t)\n\n\t\tconst createResponse = await createAction.execute({\n\t\t\tnameReadable: 'Test schema',\n\t\t\tnameCamel: 'testSchema',\n\t\t})\n\n\t\tconst builderFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/testSchema\\.builder/,\n\t\t\tcreateResponse.files\n\t\t)\n\n\t\t// make sure builder is versioned\n\t\tassert.doesInclude(builderFile, version.dirValue)\n\n\t\tconst schemaFile = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t/testSchema\\.schema/,\n\t\t\tcreateResponse.files\n\t\t)\n\n\t\t// make sure this path is versioned\n\t\tassert.doesInclude(schemaFile, version.dirValue)\n\t\tassert.doesInclude(schemaFile, '/testingSchemas/')\n\n\t\t// schema types should be good\n\t\tawait typeChecker.check(this.schemaTypesFile)\n\n\t\t// the types should include our test schema\n\t\tlet typesContents = diskUtil.readFile(this.schemaTypesFile)\n\t\tassert.doesInclude(typesContents, matcher)\n\n\t\t// the schema file should exist\n\t\tassert.isTrue(diskUtil.doesFileExist(schemaFile))\n\n\t\t// DELETE builder and make sure we are cleaned up\n\t\tdiskUtil.deleteFile(builderFile)\n\n\t\t// this should cleanup types and schema files\n\t\tawait this.Action('schema', 'sync').execute({})\n\n\t\tassert.isTrue(diskUtil.doesFileExist(this.schemaTypesFile))\n\n\t\t// and the schema should have been deleted\n\t\tassert.isFalse(diskUtil.doesFileExist(schemaFile))\n\n\t\t// and the namespace folder should have been deleted\n\t\tconst namespaceFolder = this.resolveHashSprucePath(\n\t\t\t'schemas',\n\t\t\t'testingSChemas'\n\t\t)\n\t\tassert.isFalse(diskUtil.doesDirExist(namespaceFolder))\n\t}\n\n\t@test()\n\tprotected static async canSyncSchemasWhenOnlyNodeModuleIsInstalledAfterDecliningToInstallSkill() {\n\t\tawait this.FeatureFixture().installCachedFeatures('schemasInNodeModule')\n\n\t\tconst promise = this.Action('schema', 'sync').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('n')\n\n\t\tawait this.waitForInput()\n\n\t\tawait this.ui.sendInput('')\n\n\t\tconst results = await promise\n\n\t\tassert.isFalsy(results.errors)\n\t\tawait this.assertValidActionResponseFiles(results)\n\t}\n\n\t@test('syncs minArrayLength, importsWhenRemote')\n\tprotected static async syncsExpectedFields() {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tconst schemasDir = this.resolvePath('src', 'schemas')\n\n\t\tawait diskUtil.copyDir(this.resolveTestPath('test_builders'), schemasDir)\n\n\t\tconst results = await this.Action('schema', 'sync').execute({})\n\t\tconst schema = await this.importSchema(results, 'schemaTwo.schema.ts')\n\n\t\tassert.isUndefined(schema.fields.phone.minArrayLength)\n\t\tassert.isEqual(schema.fields.favoriteColors.minArrayLength, 3)\n\t\tassert.isEqual(schema.fields.permissions.minArrayLength, 0)\n\t}\n\n\t@test()\n\tprotected static async canChangeSkillNamespace() {\n\t\tawait this.syncSchemas('schemas')\n\n\t\tawait this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Test schema',\n\t\t\tnameCamel: 'testSchema',\n\t\t})\n\n\t\tconst beforeFolder = this.resolveHashSprucePath('schemas', 'testingSchemas')\n\t\tconst afterFolder = this.resolveHashSprucePath('schemas', 'newNamespace')\n\n\t\tassert.isTrue(diskUtil.doesFileExist(beforeFolder))\n\t\tassert.isFalse(diskUtil.doesFileExist(afterFolder))\n\n\t\tawait this.Store('skill').setCurrentSkillsNamespace('new-namespace')\n\n\t\tawait this.Action('schema', 'sync').execute({})\n\n\t\tassert.isFalse(diskUtil.doesFileExist(beforeFolder))\n\t\tassert.isTrue(diskUtil.doesFileExist(afterFolder))\n\t}\n\n\t@test()\n\tprotected static async generatedSchemasRetainImportsAndTypeSuffix() {\n\t\tawait this.installSchemaFeature('schemas')\n\n\t\tconst results = await this.Action('schema', 'create').execute({\n\t\t\tnameReadable: 'Test schema',\n\t\t\tnameCamel: 'testSchema',\n\t\t})\n\n\t\tconst testSchemaPath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'testSchema.builder.ts',\n\t\t\tresults.files\n\t\t)\n\n\t\tdiskUtil.writeFile(\n\t\t\ttestSchemaPath,\n\t\t\t`import { buildSchema } from '@sprucelabs/schema'\n\n\t\texport default buildSchema({\n\t\t\tid: 'testSchema',\n\t\t\tname: 'Test schema',\n\t\t\tdescription: '',\n\t\t\timportsWhenLocal: ['import * as Local from \"@sprucelabs/schema\"'],\n\t\t\timportsWhenRemote: ['import * as Remote from \"@sprucelabs/schema\"'],\n\t\t\ttypeSuffix: '<S extends Record<string, any> = Record<string, any>>',\n\t\t\tfields: {\n\t\t\t\tfieldName1: {\n\t\t\t\t\ttype: 'text',\n\t\t\t\t\tlabel: 'First Field',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t},\n\t\t\t\tfieldName2: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tlabel: 'Second Field',\n\t\t\t\t\tisRequired: true,\n\t\t\t\t\thint: 'A hint',\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\t`\n\t\t)\n\n\t\tconst syncResults = await this.Action('schema', 'sync').execute({})\n\n\t\tconst schemaPath = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t'testSchema.schema.ts',\n\t\t\tsyncResults.files\n\t\t)\n\n\t\tconst imported = await this.Service('import').importDefault(schemaPath)\n\n\t\tassert.doesInclude(imported, {\n\t\t\timportsWhenRemote: ['import * as Remote from \"@sprucelabs/schema\"'],\n\t\t\ttypeSuffix: '<S extends Record<string, any> = Record<string, any>>',\n\t\t})\n\t}\n\n\tprivate static async importSchema(results: any, filename: string) {\n\t\tconst file = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\tfilename,\n\t\t\tresults.files\n\t\t)\n\n\t\tconst schema = await this.Service('import').importDefault(file)\n\n\t\treturn schema\n\t}\n\n\tprivate static async assertTypesFileGeneratesArraySelect(typesFile: string) {\n\t\tconst contents = diskUtil.readFile(typesFile)\n\t\tassert.doesInclude(contents, `'favoriteColors'?: (\"blue\" | \"red\")[]`)\n\t}\n\n\tprivate static async copyMockCoreSchemas() {\n\t\tconst source = this.resolveTestPath('mock_core_builders')\n\t\tconst destination = this.resolvePath('src', 'schemas')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\t}\n}\n"],"file":"KeepingSchemasInSync.test.js"}
|