@sprucelabs/spruce-cli 28.2.2 → 29.0.0
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/.spruce/errors/errors.types.d.ts +23 -2
- package/build/.spruce/errors/options.types.d.ts +4 -1
- package/build/.spruce/errors/spruceCli/directoryNotGoModule.schema.d.ts +3 -0
- package/build/.spruce/errors/spruceCli/directoryNotGoModule.schema.js +20 -0
- package/build/.spruce/errors/spruceCli/directoryNotGoModule.schema.js.map +1 -0
- package/build/.spruce/schemas/schemas.types.d.ts +2 -2
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js +1 -1
- package/build/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.js.map +1 -1
- package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.d.ts +7 -2
- package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js +36 -13
- package/build/__tests__/behavioral/OverridingCommandsInPackageJson.test.js.map +1 -1
- package/build/__tests__/behavioral/features/InstallFeaturesInGo.test.d.ts +5 -0
- package/build/__tests__/behavioral/features/InstallFeaturesInGo.test.js +32 -0
- package/build/__tests__/behavioral/features/InstallFeaturesInGo.test.js.map +1 -0
- package/build/__tests__/behavioral/organization/CreatingAnOrg.test.d.ts +5 -0
- package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js +21 -13
- package/build/__tests__/behavioral/organization/CreatingAnOrg.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.d.ts +1 -1
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js +7 -7
- package/build/__tests__/behavioral/schemas/KeepingSchemasInSync.test.js.map +1 -1
- package/build/__tests__/behavioral/schemas/SyncingCoreSchemasInGo.test.d.ts +39 -0
- package/build/__tests__/behavioral/schemas/SyncingCoreSchemasInGo.test.js +289 -0
- package/build/__tests__/behavioral/schemas/SyncingCoreSchemasInGo.test.js.map +1 -0
- package/build/__tests__/behavioral/schemas/SyncingSchemasInChildDirInGo.test.d.ts +7 -0
- package/build/__tests__/behavioral/schemas/SyncingSchemasInChildDirInGo.test.js +46 -0
- package/build/__tests__/behavioral/schemas/SyncingSchemasInChildDirInGo.test.js.map +1 -0
- package/build/__tests__/behavioral/schemas/SyncingSchemasInGo.test.d.ts +5 -0
- package/build/__tests__/behavioral/schemas/SyncingSchemasInGo.test.js +31 -0
- package/build/__tests__/behavioral/schemas/SyncingSchemasInGo.test.js.map +1 -0
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js +1 -1
- package/build/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.js.map +1 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js +10 -1
- package/build/__tests__/behavioral/upgrading/UpdatingDependencies2.test.js.map +1 -1
- package/build/__tests__/implementation/SkillStore.test.d.ts +5 -0
- package/build/__tests__/implementation/SkillStore.test.js +37 -0
- package/build/__tests__/implementation/SkillStore.test.js.map +1 -1
- package/build/__tests__/support/EventFaker.d.ts +4 -0
- package/build/__tests__/support/EventFaker.js +16 -0
- package/build/__tests__/support/EventFaker.js.map +1 -1
- package/build/cli/Cli.js +12 -9
- package/build/cli/Cli.js.map +1 -1
- package/build/errors/SpruceError.js +3 -0
- package/build/errors/SpruceError.js.map +1 -1
- package/build/errors/directoryNotGoModule.builder.d.ts +12 -0
- package/build/errors/directoryNotGoModule.builder.js +15 -0
- package/build/errors/directoryNotGoModule.builder.js.map +1 -0
- package/build/features/AbstractAction.d.ts +1 -0
- package/build/features/AbstractAction.js +5 -1
- package/build/features/AbstractAction.js.map +1 -1
- package/build/features/AbstractFeature.d.ts +8 -1
- package/build/features/AbstractFeature.js +12 -1
- package/build/features/AbstractFeature.js.map +1 -1
- package/build/features/ActionFactory.js +1 -2
- package/build/features/ActionFactory.js.map +1 -1
- package/build/features/ActionQuestionAsker.js +0 -1
- package/build/features/ActionQuestionAsker.js.map +1 -1
- package/build/features/FeatureInstaller.d.ts +1 -0
- package/build/features/FeatureInstaller.js +21 -7
- package/build/features/FeatureInstaller.js.map +1 -1
- package/build/features/FeatureInstallerFactory.d.ts +1 -0
- package/build/features/FeatureInstallerFactory.js +7 -0
- package/build/features/FeatureInstallerFactory.js.map +1 -1
- package/build/features/OverrideActionDecorator.js +1 -1
- package/build/features/OverrideActionDecorator.js.map +1 -1
- package/build/features/VersionResolver.js +1 -1
- package/build/features/VersionResolver.js.map +1 -1
- package/build/features/agent/AgentFeature.d.ts +1 -1
- package/build/features/agent/AgentFeature.js +1 -1
- package/build/features/agent/AgentFeature.js.map +1 -1
- package/build/features/conversation/ConversationFeature.d.ts +1 -1
- package/build/features/conversation/ConversationFeature.js +1 -1
- package/build/features/conversation/ConversationFeature.js.map +1 -1
- package/build/features/dependencies/DependencyFeature.d.ts +0 -1
- package/build/features/dependencies/DependencyFeature.js +0 -1
- package/build/features/dependencies/DependencyFeature.js.map +1 -1
- package/build/features/deploy/DeployFeature.d.ts +1 -1
- package/build/features/deploy/DeployFeature.js +1 -1
- package/build/features/deploy/DeployFeature.js.map +1 -1
- package/build/features/error/ErrorFeature.d.ts +1 -1
- package/build/features/error/ErrorFeature.js +1 -1
- package/build/features/error/ErrorFeature.js.map +1 -1
- package/build/features/event/EventFeature.d.ts +1 -1
- package/build/features/event/EventFeature.js +1 -1
- package/build/features/event/EventFeature.js.map +1 -1
- package/build/features/eventContract/EventContractFeature.d.ts +1 -3
- package/build/features/eventContract/EventContractFeature.js +0 -2
- package/build/features/eventContract/EventContractFeature.js.map +1 -1
- package/build/features/node/NodeFeature.d.ts +1 -1
- package/build/features/node/NodeFeature.js +1 -1
- package/build/features/node/NodeFeature.js.map +1 -1
- package/build/features/onboard/OnboardFeature.d.ts +1 -3
- package/build/features/onboard/OnboardFeature.js +0 -2
- package/build/features/onboard/OnboardFeature.js.map +1 -1
- package/build/features/organization/OrganizationFeature.d.ts +0 -1
- package/build/features/organization/OrganizationFeature.js +0 -1
- package/build/features/organization/OrganizationFeature.js.map +1 -1
- package/build/features/permission/PermissionFeature.d.ts +2 -3
- package/build/features/permission/PermissionFeature.js +1 -2
- package/build/features/permission/PermissionFeature.js.map +1 -1
- package/build/features/person/PersonFeature.d.ts +1 -3
- package/build/features/person/PersonFeature.js +0 -2
- package/build/features/person/PersonFeature.js.map +1 -1
- package/build/features/polish/PolishFeature.d.ts +1 -1
- package/build/features/polish/PolishFeature.js +1 -1
- package/build/features/polish/PolishFeature.js.map +1 -1
- package/build/features/sandbox/SandboxFeature.d.ts +0 -1
- package/build/features/sandbox/SandboxFeature.js +0 -1
- package/build/features/sandbox/SandboxFeature.js.map +1 -1
- package/build/features/schema/SchemaFeature.d.ts +2 -3
- package/build/features/schema/SchemaFeature.js +6 -1
- package/build/features/schema/SchemaFeature.js.map +1 -1
- package/build/features/schema/actions/SyncAction.d.ts +5 -2
- package/build/features/schema/actions/SyncAction.js +50 -16
- package/build/features/schema/actions/SyncAction.js.map +1 -1
- package/build/features/schema/utilities/schemaDisk.utility.d.ts +7 -0
- package/build/features/schema/utilities/schemaDisk.utility.js +22 -4
- package/build/features/schema/utilities/schemaDisk.utility.js.map +1 -1
- package/build/features/schema/utilities/schemaGenerator.utility.d.ts +1 -0
- package/build/features/schema/utilities/schemaGenerator.utility.js +18 -10
- package/build/features/schema/utilities/schemaGenerator.utility.js.map +1 -1
- package/build/features/schema/writers/SchemaWriter.d.ts +9 -9
- package/build/features/schema/writers/SchemaWriter.js +38 -17
- package/build/features/schema/writers/SchemaWriter.js.map +1 -1
- package/build/features/skill/SkillFeature.d.ts +1 -1
- package/build/features/skill/SkillFeature.js +1 -1
- package/build/features/skill/SkillFeature.js.map +1 -1
- package/build/features/skill/stores/SkillStore.d.ts +4 -0
- package/build/features/skill/stores/SkillStore.js +37 -3
- package/build/features/skill/stores/SkillStore.js.map +1 -1
- package/build/features/store/StoreFeature.d.ts +1 -1
- package/build/features/store/StoreFeature.js +1 -1
- package/build/features/store/StoreFeature.js.map +1 -1
- package/build/features/test/TestFeature.d.ts +1 -1
- package/build/features/test/TestFeature.js +1 -1
- package/build/features/test/TestFeature.js.map +1 -1
- package/build/features/test/TestReporter.js +1 -1
- package/build/features/test/TestReporter.js.map +1 -1
- package/build/features/view/ViewFeature.d.ts +1 -1
- package/build/features/view/ViewFeature.js +1 -1
- package/build/features/view/ViewFeature.js.map +1 -1
- package/build/migration/EsLint9Migrator.d.ts +1 -0
- package/build/packageManager/NodePackageManager.d.ts +14 -0
- package/build/packageManager/NodePackageManager.js +88 -0
- package/build/packageManager/NodePackageManager.js.map +1 -0
- package/build/packageManager/packageManager.types.d.ts +16 -0
- package/build/packageManager/packageManager.types.js +3 -0
- package/build/packageManager/packageManager.types.js.map +1 -0
- package/build/schemas/v2020_07_22/onboardOptions.builder.js +1 -1
- package/build/schemas/v2020_07_22/onboardOptions.builder.js.map +1 -1
- package/build/services/GoPackageManager.d.ts +10 -0
- package/build/services/GoPackageManager.js +39 -0
- package/build/services/GoPackageManager.js.map +1 -0
- package/build/services/PkgService.d.ts +3 -7
- package/build/services/PkgService.js +13 -68
- package/build/services/PkgService.js.map +1 -1
- package/build/templateItemBuilders/SchemaTemplateItemBuilder.js.map +1 -1
- package/build/tests/AbstractCliTest.d.ts +5 -1
- package/build/tests/AbstractCliTest.js +15 -3
- package/build/tests/AbstractCliTest.js.map +1 -1
- package/build/tests/fixtures/FeatureFixture.js +4 -1
- package/build/tests/fixtures/FeatureFixture.js.map +1 -1
- package/build/tests/fixtures/GoFixture.d.ts +12 -0
- package/build/tests/fixtures/GoFixture.js +39 -0
- package/build/tests/fixtures/GoFixture.js.map +1 -0
- package/build/tests/staticToInstanceMigration/StaticToInstanceMigrator.d.ts +1 -0
- package/build/widgets/terminalKit/TkTextWidget.js +1 -1
- package/build/widgets/terminalKit/TkTextWidget.js.map +1 -1
- package/build/writers/AbstractWriter.js +7 -6
- package/build/writers/AbstractWriter.js.map +1 -1
- package/package.json +29 -29
- package/src/.spruce/errors/errors.types.ts +32 -2
- package/src/.spruce/errors/options.types.ts +4 -1
- package/src/.spruce/errors/spruceCli/directoryNotGoModule.schema.ts +23 -0
- package/src/.spruce/schemas/schemas.types.ts +2 -2
- package/src/.spruce/schemas/spruceCli/v2020_07_22/onboardOptions.schema.ts +1 -1
- package/src/__tests__/behavioral/OverridingCommandsInPackageJson.test.ts +60 -13
- package/src/__tests__/behavioral/features/InstallFeaturesInGo.test.ts +17 -0
- package/src/__tests__/behavioral/organization/CreatingAnOrg.test.ts +29 -22
- package/src/__tests__/behavioral/schemas/KeepingSchemasInSync.test.ts +6 -9
- package/src/__tests__/behavioral/schemas/SyncingCoreSchemasInGo.test.ts +376 -0
- package/src/__tests__/behavioral/schemas/SyncingSchemasInChildDirInGo.test.ts +46 -0
- package/src/__tests__/behavioral/schemas/SyncingSchemasInGo.test.ts +23 -0
- package/src/__tests__/behavioral/tests/SelectingAnAbstractTestClass.test.ts +1 -1
- package/src/__tests__/behavioral/upgrading/UpdatingDependencies2.test.ts +15 -2
- package/src/__tests__/implementation/SkillStore.test.ts +44 -1
- package/src/__tests__/support/EventFaker.ts +29 -0
- package/src/cli/Cli.ts +20 -12
- package/src/errors/SpruceError.ts +4 -0
- package/src/errors/directoryNotGoModule.builder.ts +13 -0
- package/src/features/AbstractAction.ts +6 -4
- package/src/features/AbstractFeature.ts +20 -1
- package/src/features/ActionFactory.ts +2 -2
- package/src/features/ActionQuestionAsker.ts +0 -1
- package/src/features/FeatureInstaller.ts +30 -6
- package/src/features/FeatureInstallerFactory.ts +9 -0
- package/src/features/OverrideActionDecorator.ts +1 -1
- package/src/features/VersionResolver.ts +2 -1
- package/src/features/agent/AgentFeature.ts +1 -1
- package/src/features/conversation/ConversationFeature.ts +1 -1
- package/src/features/dependencies/DependencyFeature.ts +0 -1
- package/src/features/deploy/DeployFeature.ts +1 -1
- package/src/features/error/ErrorFeature.ts +1 -1
- package/src/features/event/EventFeature.ts +1 -1
- package/src/features/eventContract/EventContractFeature.ts +1 -3
- package/src/features/node/NodeFeature.ts +1 -1
- package/src/features/onboard/OnboardFeature.ts +1 -7
- package/src/features/organization/OrganizationFeature.ts +0 -1
- package/src/features/permission/PermissionFeature.ts +1 -3
- package/src/features/person/PersonFeature.ts +1 -4
- package/src/features/polish/PolishFeature.ts +1 -1
- package/src/features/sandbox/SandboxFeature.ts +0 -1
- package/src/features/schema/SchemaFeature.ts +8 -2
- package/src/features/schema/actions/SyncAction.ts +68 -26
- package/src/features/schema/utilities/schemaDisk.utility.ts +43 -11
- package/src/features/schema/utilities/schemaGenerator.utility.ts +33 -13
- package/src/features/schema/writers/SchemaWriter.ts +71 -25
- package/src/features/skill/SkillFeature.ts +1 -1
- package/src/features/skill/stores/SkillStore.ts +47 -5
- package/src/features/store/StoreFeature.ts +1 -1
- package/src/features/test/TestFeature.ts +1 -1
- package/src/features/test/TestReporter.ts +1 -1
- package/src/features/view/ViewFeature.ts +1 -1
- package/src/packageManager/NodePackageManager.ts +115 -0
- package/src/packageManager/packageManager.types.ts +21 -0
- package/src/schemas/v2020_07_22/onboardOptions.builder.ts +1 -1
- package/src/services/GoPackageManager.ts +45 -0
- package/src/services/PkgService.ts +17 -92
- package/src/templateItemBuilders/SchemaTemplateItemBuilder.ts +6 -6
- package/src/tests/AbstractCliTest.ts +19 -5
- package/src/tests/fixtures/FeatureFixture.ts +3 -1
- package/src/tests/fixtures/GoFixture.ts +39 -0
- package/src/widgets/terminalKit/TkTextWidget.ts +1 -1
- package/src/writers/AbstractWriter.ts +15 -6
|
@@ -5,10 +5,36 @@ import MockProgramFactory from '../../tests/MockProgramFactory'
|
|
|
5
5
|
|
|
6
6
|
export default class OverridingCommandsInPackageJsonTest extends AbstractSkillTest {
|
|
7
7
|
protected static skillCacheKey = 'schemas'
|
|
8
|
+
private static originalPackageJson: string
|
|
9
|
+
private static originalSettingsJson: string
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
this.
|
|
11
|
+
protected static async beforeEach() {
|
|
12
|
+
await super.beforeEach()
|
|
13
|
+
if (!this.originalPackageJson) {
|
|
14
|
+
this.originalPackageJson = diskUtil.readFile(
|
|
15
|
+
this.resolvePath('package.json')
|
|
16
|
+
)
|
|
17
|
+
this.originalSettingsJson = diskUtil.readFile(
|
|
18
|
+
this.resolveHashSprucePath('settings.json')
|
|
19
|
+
)
|
|
20
|
+
} else {
|
|
21
|
+
diskUtil.writeFile(
|
|
22
|
+
this.resolvePath('package.json'),
|
|
23
|
+
this.originalPackageJson
|
|
24
|
+
)
|
|
25
|
+
diskUtil.writeFile(
|
|
26
|
+
this.resolveHashSprucePath('settings.json'),
|
|
27
|
+
this.originalSettingsJson
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@test('running honors overrides in package.json', 'package.json')
|
|
33
|
+
@test('running honors overrides in settings.json', 'settings.json')
|
|
34
|
+
protected static async runningCommandHonorsOverrides(
|
|
35
|
+
override: OverrideFile
|
|
36
|
+
) {
|
|
37
|
+
this.overrideOptions(override)
|
|
12
38
|
|
|
13
39
|
const cli = await this.FeatureFixture().Cli({
|
|
14
40
|
program: MockProgramFactory.Program(),
|
|
@@ -21,9 +47,18 @@ export default class OverridingCommandsInPackageJsonTest extends AbstractSkillTe
|
|
|
21
47
|
this.assertCoreSchemasDidNotSync()
|
|
22
48
|
}
|
|
23
49
|
|
|
24
|
-
@test(
|
|
25
|
-
|
|
26
|
-
|
|
50
|
+
@test(
|
|
51
|
+
'running honors overrides in package.json when command is forwarded',
|
|
52
|
+
'package.json'
|
|
53
|
+
)
|
|
54
|
+
@test(
|
|
55
|
+
'running honors overrides in settings.json when command is forwarded',
|
|
56
|
+
'settings.json'
|
|
57
|
+
)
|
|
58
|
+
protected static async runningCommandHonorsOverridesWhenCommandIsForwarded(
|
|
59
|
+
override: OverrideFile
|
|
60
|
+
) {
|
|
61
|
+
this.overrideOptions(override)
|
|
27
62
|
|
|
28
63
|
const cli = await this.FeatureFixture().Cli({
|
|
29
64
|
program: MockProgramFactory.Program(),
|
|
@@ -49,14 +84,26 @@ export default class OverridingCommandsInPackageJsonTest extends AbstractSkillTe
|
|
|
49
84
|
'person.schema.ts'
|
|
50
85
|
)
|
|
51
86
|
|
|
52
|
-
assert.isFalse(
|
|
87
|
+
assert.isFalse(
|
|
88
|
+
diskUtil.doesFileExist(personPath),
|
|
89
|
+
'did not expect to find person.schema.ts'
|
|
90
|
+
)
|
|
53
91
|
}
|
|
54
92
|
|
|
55
|
-
private static overrideOptions() {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
93
|
+
private static overrideOptions(override: OverrideFile) {
|
|
94
|
+
if (override === 'settings.json') {
|
|
95
|
+
const settings = this.Service('settings')
|
|
96
|
+
settings.set('commandOverrides', {
|
|
97
|
+
'sync.schemas': '--shouldFetchCoreSchemas false',
|
|
98
|
+
})
|
|
99
|
+
} else {
|
|
100
|
+
const pkg = this.Service('pkg')
|
|
101
|
+
pkg.set({
|
|
102
|
+
path: ['skill', 'commandOverrides', 'sync.schemas'],
|
|
103
|
+
value: '--shouldFetchCoreSchemas false',
|
|
104
|
+
})
|
|
105
|
+
}
|
|
61
106
|
}
|
|
62
107
|
}
|
|
108
|
+
|
|
109
|
+
type OverrideFile = 'package.json' | 'settings.json'
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { fake } from '@sprucelabs/spruce-test-fixtures'
|
|
2
|
+
import { test, assert } from '@sprucelabs/test-utils'
|
|
3
|
+
import AbstractCliTest from '../../../tests/AbstractCliTest'
|
|
4
|
+
|
|
5
|
+
@fake.login()
|
|
6
|
+
export default class InstallFeaturesInGoTest extends AbstractCliTest {
|
|
7
|
+
protected static async beforeEach(): Promise<void> {
|
|
8
|
+
await super.beforeEach()
|
|
9
|
+
await this.go.initGoProject()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@test()
|
|
13
|
+
protected static async schemaFeatureNotInstalledToStart() {
|
|
14
|
+
const isInstalled = await this.featureInstaller.isInstalled('schema')
|
|
15
|
+
assert.isFalse(isInstalled, 'Schema feature should not be installed')
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,8 +1,30 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { MercuryClientFactory } from '@sprucelabs/mercury-client'
|
|
2
|
+
import { Organization } from '@sprucelabs/spruce-core-schemas'
|
|
3
|
+
import { test, assert, generateId } from '@sprucelabs/test-utils'
|
|
3
4
|
import AbstractCliTest from '../../../tests/AbstractCliTest'
|
|
5
|
+
import { CreateOrganizationTargetAndPayload } from '../../support/EventFaker'
|
|
4
6
|
|
|
5
7
|
export default class CreatingAnOrgTest extends AbstractCliTest {
|
|
8
|
+
private static organization: Organization
|
|
9
|
+
private static slug = generateId()
|
|
10
|
+
private static nameReadable = generateId()
|
|
11
|
+
private static lastCreateOrgTargetAndPayload: CreateOrganizationTargetAndPayload
|
|
12
|
+
|
|
13
|
+
protected static async beforeEach(): Promise<void> {
|
|
14
|
+
await super.beforeEach()
|
|
15
|
+
|
|
16
|
+
MercuryClientFactory.setIsTestMode(true)
|
|
17
|
+
|
|
18
|
+
this.organization = this.eventFaker.generateOrganizationValues()
|
|
19
|
+
|
|
20
|
+
await this.eventFaker.fakeRequestPin()
|
|
21
|
+
await this.eventFaker.fakeConfirmPin()
|
|
22
|
+
await this.eventFaker.fakeCreateOrganization((targetAndPayload) => {
|
|
23
|
+
this.lastCreateOrgTargetAndPayload = targetAndPayload
|
|
24
|
+
return this.organization
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
|
|
6
28
|
@test()
|
|
7
29
|
protected static async hasCreateAction() {
|
|
8
30
|
await this.Cli()
|
|
@@ -11,33 +33,18 @@ export default class CreatingAnOrgTest extends AbstractCliTest {
|
|
|
11
33
|
|
|
12
34
|
@test()
|
|
13
35
|
protected static async createsAnOrg() {
|
|
14
|
-
const slug = `my-org-${new Date().getTime()}`
|
|
15
|
-
|
|
16
36
|
await this.FeatureFixture().installCachedFeatures('organizations')
|
|
17
37
|
await this.people.loginAsDemoPerson()
|
|
18
38
|
|
|
19
39
|
const results = await this.Action('organization', 'create').execute({
|
|
20
|
-
nameReadable:
|
|
21
|
-
nameKebab: slug,
|
|
40
|
+
nameReadable: this.nameReadable,
|
|
41
|
+
nameKebab: this.slug,
|
|
22
42
|
})
|
|
23
43
|
|
|
24
44
|
assert.isFalsy(results.errors)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
assert.isTruthy(organization)
|
|
29
|
-
|
|
30
|
-
const client = await this.connectToApi()
|
|
31
|
-
|
|
32
|
-
const orgResults = await client.emit('get-organization::v2020_12_25', {
|
|
33
|
-
target: {
|
|
34
|
-
organizationId: organization.id,
|
|
35
|
-
},
|
|
45
|
+
assert.isEqualDeep(this.lastCreateOrgTargetAndPayload.payload, {
|
|
46
|
+
name: this.nameReadable,
|
|
47
|
+
slug: this.slug,
|
|
36
48
|
})
|
|
37
|
-
|
|
38
|
-
const { organization: getOrganization } =
|
|
39
|
-
eventResponseUtil.getFirstResponseOrThrow(orgResults)
|
|
40
|
-
|
|
41
|
-
assert.isEqual(getOrganization.slug, slug)
|
|
42
49
|
}
|
|
43
50
|
}
|
|
@@ -156,7 +156,6 @@ export default class KeepsSchemasInSyncTest extends AbstractSchemaTest {
|
|
|
156
156
|
@test()
|
|
157
157
|
protected static async shouldGenerateCoreSchemaTypesGeneratesValidFiles() {
|
|
158
158
|
await this.installSchemaFeature('schemas')
|
|
159
|
-
|
|
160
159
|
await this.copyMockCoreSchemas()
|
|
161
160
|
|
|
162
161
|
const results = await this.Action('schema', 'sync').execute(
|
|
@@ -192,18 +191,16 @@ export default class KeepsSchemasInSyncTest extends AbstractSchemaTest {
|
|
|
192
191
|
}
|
|
193
192
|
|
|
194
193
|
@test()
|
|
195
|
-
protected static async
|
|
194
|
+
protected static async generateCoreSchemasWithShouldGenerateCoreSchemaTypes() {
|
|
196
195
|
await this.installSchemaFeature('schemas')
|
|
197
|
-
|
|
198
|
-
const pkg = this.Service('pkg')
|
|
199
|
-
pkg.set({ path: 'name', value: '@sprucelabs/spruce-core-schemas' })
|
|
200
|
-
|
|
201
196
|
await this.copyMockCoreSchemas()
|
|
202
197
|
|
|
203
|
-
const results = await this.Action('schema', 'sync').execute({
|
|
198
|
+
const results = await this.Action('schema', 'sync').execute({
|
|
199
|
+
shouldGenerateCoreSchemaTypes: true,
|
|
200
|
+
})
|
|
204
201
|
|
|
205
|
-
assert.isFalsy(results.errors)
|
|
206
|
-
assert.isTruthy(results.files)
|
|
202
|
+
assert.isFalsy(results.errors, 'sync schemas had errors')
|
|
203
|
+
assert.isTruthy(results.files, 'sync should have generated files')
|
|
207
204
|
|
|
208
205
|
const typesContents = diskUtil.readFile(this.coreSchemaTypesFile)
|
|
209
206
|
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import globby from '@sprucelabs/globby'
|
|
2
|
+
import { buildSchema, Schema, SchemaTypesRenderer } from '@sprucelabs/schema'
|
|
3
|
+
import {
|
|
4
|
+
CORE_NAMESPACE,
|
|
5
|
+
diskUtil,
|
|
6
|
+
namesUtil,
|
|
7
|
+
randomUtil,
|
|
8
|
+
versionUtil,
|
|
9
|
+
} from '@sprucelabs/spruce-skill-utils'
|
|
10
|
+
import { test, assert, generateId } from '@sprucelabs/test-utils'
|
|
11
|
+
import CommandServiceImpl from '../../../services/CommandService'
|
|
12
|
+
import LintService from '../../../services/LintService'
|
|
13
|
+
import SchemaTemplateItemBuilder from '../../../templateItemBuilders/SchemaTemplateItemBuilder'
|
|
14
|
+
import AbstractSkillTest from '../../../tests/AbstractSkillTest'
|
|
15
|
+
import testUtil from '../../../tests/utilities/test.utility'
|
|
16
|
+
import { GeneratedFile } from '../../../types/cli.types'
|
|
17
|
+
|
|
18
|
+
export default class SyncingSchemasInGoTest extends AbstractSkillTest {
|
|
19
|
+
protected static skillCacheKey = 'schemas'
|
|
20
|
+
private static goDir: string
|
|
21
|
+
private static builder1Name = 'aSchemaIBuilt'
|
|
22
|
+
private static builder2Name = 'anotherSchemaIBuilt'
|
|
23
|
+
private static renderer: SchemaTypesRenderer
|
|
24
|
+
private static goModuleName = randomUtil.rand([
|
|
25
|
+
'my-skill',
|
|
26
|
+
'awesome-skill',
|
|
27
|
+
'super-skill',
|
|
28
|
+
])
|
|
29
|
+
|
|
30
|
+
private static version = versionUtil.generateVersion().constValue
|
|
31
|
+
private static skillNamespace: string = CORE_NAMESPACE
|
|
32
|
+
private static schemaTemplateItemBuilder: SchemaTemplateItemBuilder
|
|
33
|
+
private static goFullModuleName: string
|
|
34
|
+
|
|
35
|
+
protected static async beforeEach(): Promise<void> {
|
|
36
|
+
await super.beforeEach()
|
|
37
|
+
|
|
38
|
+
if (!this.goDir) {
|
|
39
|
+
this.goDir = this.resolvePath(this.skillDir, 'go-schemas')
|
|
40
|
+
diskUtil.createDir(this.goDir)
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
CommandServiceImpl.fakeCommand(/yarn.*?/, {
|
|
44
|
+
code: 1,
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
this.renderer = SchemaTypesRenderer.Renderer()
|
|
48
|
+
this.schemaTemplateItemBuilder = new SchemaTemplateItemBuilder(
|
|
49
|
+
CORE_NAMESPACE
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
@test()
|
|
54
|
+
protected static async canSyncCoreSchemasWithoutError() {
|
|
55
|
+
this.moveToGoDir()
|
|
56
|
+
|
|
57
|
+
this.goFullModuleName = await this.go.initGoProject(this.goModuleName)
|
|
58
|
+
await this.sync()
|
|
59
|
+
|
|
60
|
+
const tsFiles = await globby('**/*.ts', {
|
|
61
|
+
cwd: this.cwd,
|
|
62
|
+
ignore: ['go/pkg/**'],
|
|
63
|
+
})
|
|
64
|
+
assert.isLength(tsFiles, 0, 'Expected no .ts files to be generated.')
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@test()
|
|
68
|
+
protected static async syncingGeneratesCoreGoFileIfSchemaDoesExist() {
|
|
69
|
+
await this.createSchema(this.builder1Name)
|
|
70
|
+
|
|
71
|
+
this.moveToGoDir()
|
|
72
|
+
|
|
73
|
+
const syncResults = await this.sync()
|
|
74
|
+
testUtil.assertFileByPathInGeneratedFiles(
|
|
75
|
+
this.coreSchemaGoFilepath,
|
|
76
|
+
syncResults.files
|
|
77
|
+
)
|
|
78
|
+
|
|
79
|
+
assert.isTrue(
|
|
80
|
+
diskUtil.doesFileExist(this.coreSchemaGoFilepath),
|
|
81
|
+
'Expected core_schemas.go file to exist.'
|
|
82
|
+
)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@test()
|
|
86
|
+
protected static async coreSchemasFileHasStructBasedOnSchema() {
|
|
87
|
+
await this.assertCoreFileIncludesSchema(this.builder1Name)
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
@test()
|
|
91
|
+
protected static async coreShowsDifferentSchema() {
|
|
92
|
+
await this.createSchema(this.builder2Name)
|
|
93
|
+
this.moveToGoDir()
|
|
94
|
+
await this.sync()
|
|
95
|
+
await this.assertCoreFileIncludesSchema(this.builder2Name)
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
@test()
|
|
99
|
+
protected static async doesNotIncludeSchemaIfDeleted() {
|
|
100
|
+
diskUtil.deleteFile(this.getBuilderFilepath(this.builder1Name))
|
|
101
|
+
|
|
102
|
+
this.moveToGoDir()
|
|
103
|
+
await this.sync()
|
|
104
|
+
|
|
105
|
+
const contents = this.loadCoreSchemasFile()
|
|
106
|
+
assert.doesNotInclude(
|
|
107
|
+
contents,
|
|
108
|
+
namesUtil.toPascal(this.builder1Name),
|
|
109
|
+
'Expected core_schemas.go to not include deleted schema.'
|
|
110
|
+
)
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@test()
|
|
114
|
+
protected static async coreSchemasFileIncludesPackageDeclaration() {
|
|
115
|
+
this.assertCoreSchemaFileIncludes('package schemas')
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
@test()
|
|
119
|
+
protected static async goFileIsValid() {
|
|
120
|
+
this.moveToGoDir()
|
|
121
|
+
await this.go.exec('build', './...')
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@test()
|
|
125
|
+
protected static async canRenderNestedSchemas() {
|
|
126
|
+
const schema2 = await this.importBuilder(this.builder2Name)
|
|
127
|
+
schema2.fields = {
|
|
128
|
+
...schema2.fields,
|
|
129
|
+
hasNestedSchema: {
|
|
130
|
+
type: 'schema',
|
|
131
|
+
options: {
|
|
132
|
+
schema: nestedSchema,
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
dateOfBirth: {
|
|
136
|
+
type: 'date',
|
|
137
|
+
},
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
diskUtil.writeFile(
|
|
141
|
+
this.getBuilderFilepath(this.builder2Name),
|
|
142
|
+
`import { buildSchema } from '@sprucelabs/schema'
|
|
143
|
+
|
|
144
|
+
export default buildSchema(${JSON.stringify(schema2, null, 4)})`
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
await this.lintBuilders()
|
|
148
|
+
|
|
149
|
+
schema2.namespace = this.skillNamespace
|
|
150
|
+
const expected = this.renderSchemaAsStruct(schema2)
|
|
151
|
+
|
|
152
|
+
this.moveToGoDir()
|
|
153
|
+
await this.sync()
|
|
154
|
+
|
|
155
|
+
this.assertCoreSchemaFileIncludes(expected)
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@test()
|
|
159
|
+
protected static async generatedFileShouldPassVet() {
|
|
160
|
+
this.moveToGoDir()
|
|
161
|
+
await this.go.vet()
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
@test()
|
|
165
|
+
protected static async writesSchemaFileForEachSchemaFound() {
|
|
166
|
+
this.moveToGoDir()
|
|
167
|
+
const results = await this.sync()
|
|
168
|
+
const generated = ['nestedSchema', 'anotherSchemaIBuilt']
|
|
169
|
+
for (const schema of generated) {
|
|
170
|
+
this.assertSchemaFileWrittenWithExpectedPackage(
|
|
171
|
+
schema,
|
|
172
|
+
results.files
|
|
173
|
+
)
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
@test()
|
|
178
|
+
protected static async canActuallyUseGeneratedSchemasInGoTest() {
|
|
179
|
+
this.moveToGoDir()
|
|
180
|
+
const testSrc = buildGoTest({
|
|
181
|
+
pwd: this.goFullModuleName,
|
|
182
|
+
name: generateId(),
|
|
183
|
+
age: Date.now() % 100,
|
|
184
|
+
version: this.version,
|
|
185
|
+
})
|
|
186
|
+
|
|
187
|
+
diskUtil.writeFile(
|
|
188
|
+
this.resolvePath(this.cwd, 'test_schema.go'),
|
|
189
|
+
testSrc
|
|
190
|
+
)
|
|
191
|
+
|
|
192
|
+
await this.go.exec('test', './...')
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
@test()
|
|
196
|
+
protected static async creatingSchemaWithDifferentVersionAlsoWorks() {
|
|
197
|
+
this.version = versionUtil.generateVersion('2020_01_01').constValue
|
|
198
|
+
await this.createSchema('versionedSchema')
|
|
199
|
+
this.moveToGoDir()
|
|
200
|
+
const results = await this.sync()
|
|
201
|
+
this.assertSchemaFileWrittenWithExpectedPackage(
|
|
202
|
+
'versionedSchema',
|
|
203
|
+
results.files
|
|
204
|
+
)
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
private static assertSchemaFileWrittenWithExpectedPackage(
|
|
208
|
+
schema: string,
|
|
209
|
+
files: GeneratedFile[] = []
|
|
210
|
+
) {
|
|
211
|
+
assert.isAbove(files.length, 0, 'Expected at least one generated file.')
|
|
212
|
+
|
|
213
|
+
const path = testUtil.assertFileByPathInGeneratedFiles(
|
|
214
|
+
`schemas/${this.skillNamespace.toLowerCase()}/${this.version}/${namesUtil.toSnake(schema)}.go`,
|
|
215
|
+
files
|
|
216
|
+
)
|
|
217
|
+
const contents = diskUtil.readFile(path)
|
|
218
|
+
assert.doesInclude(
|
|
219
|
+
contents,
|
|
220
|
+
`package ${this.version}`,
|
|
221
|
+
'Did not include expected package declaration.'
|
|
222
|
+
)
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
private static async lintBuilders() {
|
|
226
|
+
LintService.enableLinting()
|
|
227
|
+
await this.Service('lint').fix(`**/*.builder.ts`)
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
private static async assertCoreFileIncludesSchema(name: string) {
|
|
231
|
+
const struct = await this.importStructForSchema(name)
|
|
232
|
+
this.assertCoreSchemaFileIncludes(struct)
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
private static assertCoreSchemaFileIncludes(needle: string) {
|
|
236
|
+
const contents = this.loadCoreSchemasFile()
|
|
237
|
+
|
|
238
|
+
assert.doesInclude(
|
|
239
|
+
contents,
|
|
240
|
+
needle,
|
|
241
|
+
'core_schemas.go missing expected content'
|
|
242
|
+
)
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
private static async importStructForSchema(name: string) {
|
|
246
|
+
const imported = await this.importBuilder(name)
|
|
247
|
+
imported.namespace = this.skillNamespace
|
|
248
|
+
const struct = this.renderSchemaAsStruct(imported)
|
|
249
|
+
|
|
250
|
+
return struct
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
private static loadCoreSchemasFile() {
|
|
254
|
+
return diskUtil.readFile(this.coreSchemaGoFilepath)
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
private static renderSchemaAsStruct(imported: Schema) {
|
|
258
|
+
const templateItems = this.schemaTemplateItemBuilder.buildTemplateItems(
|
|
259
|
+
{
|
|
260
|
+
[CORE_NAMESPACE]: [imported],
|
|
261
|
+
}
|
|
262
|
+
)
|
|
263
|
+
|
|
264
|
+
return this.renderer.render(imported, {
|
|
265
|
+
language: 'go',
|
|
266
|
+
schemaTemplateItems: templateItems,
|
|
267
|
+
})
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
private static async importBuilder(name: string) {
|
|
271
|
+
return (await this.Service('import').importDefault(
|
|
272
|
+
this.getBuilderFilepath(name)
|
|
273
|
+
)) as Schema
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
private static async createSchema(name: string) {
|
|
277
|
+
const results = await this.Action('schema', 'create').execute({
|
|
278
|
+
nameReadable: 'A schema i built!',
|
|
279
|
+
nameCamel: name,
|
|
280
|
+
version: this.version,
|
|
281
|
+
})
|
|
282
|
+
|
|
283
|
+
assert.isFalsy(
|
|
284
|
+
results.errors,
|
|
285
|
+
'Expected no errors when creating schema.'
|
|
286
|
+
)
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
private static getBuilderFilepath(name: string) {
|
|
290
|
+
return this.resolvePath(
|
|
291
|
+
this.skillDir,
|
|
292
|
+
'src',
|
|
293
|
+
'schemas',
|
|
294
|
+
versionUtil.generateVersion().dirValue,
|
|
295
|
+
`${name}.builder.ts`
|
|
296
|
+
)
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
private static get coreSchemaGoFilepath() {
|
|
300
|
+
return diskUtil.resolvePath(this.goDir, 'schemas/core_schemas.go')
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
private static async sync() {
|
|
304
|
+
const results = await this.Action('schema', 'sync', {
|
|
305
|
+
shouldAutoHandleDependencies: true,
|
|
306
|
+
}).execute({
|
|
307
|
+
shouldGenerateCoreSchemaTypes: true,
|
|
308
|
+
schemaLookupDir: this.resolvePath(this.skillDir, 'src'),
|
|
309
|
+
})
|
|
310
|
+
|
|
311
|
+
assert.isFalsy(
|
|
312
|
+
results.errors,
|
|
313
|
+
'Expected no errors when syncing core schemas in a go project.'
|
|
314
|
+
)
|
|
315
|
+
|
|
316
|
+
assert.isTruthy(
|
|
317
|
+
results.files,
|
|
318
|
+
'Expected some generated files when syncing core schemas in a go project.'
|
|
319
|
+
)
|
|
320
|
+
|
|
321
|
+
return results
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
private static moveToGoDir() {
|
|
325
|
+
this.cwd = this.goDir
|
|
326
|
+
this.setCwd(this.cwd)
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
const nestedSchema = buildSchema({
|
|
331
|
+
id: 'nestedSchema',
|
|
332
|
+
fields: {
|
|
333
|
+
name: {
|
|
334
|
+
type: 'text',
|
|
335
|
+
},
|
|
336
|
+
age: {
|
|
337
|
+
type: 'number',
|
|
338
|
+
},
|
|
339
|
+
},
|
|
340
|
+
})
|
|
341
|
+
|
|
342
|
+
const buildGoTest = (options: {
|
|
343
|
+
pwd: string
|
|
344
|
+
name: string
|
|
345
|
+
age: number
|
|
346
|
+
version: string
|
|
347
|
+
}) => `
|
|
348
|
+
package goschemas
|
|
349
|
+
|
|
350
|
+
import (
|
|
351
|
+
"testing"
|
|
352
|
+
spruce "${options.pwd}/schemas/spruce/${options.version}"
|
|
353
|
+
)
|
|
354
|
+
|
|
355
|
+
func TestMakeASchemaIBuilt(t *testing.T) {
|
|
356
|
+
data := map[string]interface{}{
|
|
357
|
+
"name": "${options.name}",
|
|
358
|
+
"age": ${options.age},
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
result, err := spruce.MakeNestedSchema(data)
|
|
362
|
+
if err != nil {
|
|
363
|
+
t.Fatalf("MakeNestedSchema failed: %v", err)
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
if result.Name != "${options.name}" {
|
|
367
|
+
t.Errorf("Expected Name to be '${options.name}', got '%s'",
|
|
368
|
+
result.Name)
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
if result.Age != ${options.age} {
|
|
372
|
+
t.Errorf("Expected Age to be ${options.age}, got %f",
|
|
373
|
+
result.Age)
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
`
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { diskUtil } from '@sprucelabs/spruce-skill-utils'
|
|
2
|
+
import { test, assert } from '@sprucelabs/test-utils'
|
|
3
|
+
import AbstractSkillTest from '../../../tests/AbstractSkillTest'
|
|
4
|
+
import generateShortAlphaId from '../permissions/support/generateShortAlphaId'
|
|
5
|
+
|
|
6
|
+
export default class SyncingSchemasInChildDirInGoTest extends AbstractSkillTest {
|
|
7
|
+
protected static skillCacheKey = 'schemas'
|
|
8
|
+
private static schemaNameCamel = generateShortAlphaId()
|
|
9
|
+
|
|
10
|
+
@test()
|
|
11
|
+
protected static async importsTheCorrectPath() {
|
|
12
|
+
await this.go.initGoProject()
|
|
13
|
+
await this.createSchema()
|
|
14
|
+
|
|
15
|
+
const dir = 'pgk'
|
|
16
|
+
diskUtil.createDir(this.resolvePath(dir))
|
|
17
|
+
|
|
18
|
+
this.cwd = this.resolvePath(dir)
|
|
19
|
+
this.setCwd(this.cwd)
|
|
20
|
+
|
|
21
|
+
const results = await this.Action('schema', 'sync', {
|
|
22
|
+
shouldAutoHandleDependencies: true,
|
|
23
|
+
}).execute({
|
|
24
|
+
schemaLookupDir: '../src/',
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
assert.isFalsy(
|
|
28
|
+
results.errors,
|
|
29
|
+
'Expected no errors when syncing schema.'
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
await this.go.vet()
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
private static async createSchema() {
|
|
36
|
+
const results = await this.Action('schema', 'create').execute({
|
|
37
|
+
nameReadable: 'A schema i built!',
|
|
38
|
+
nameCamel: this.schemaNameCamel,
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
assert.isFalsy(
|
|
42
|
+
results.errors,
|
|
43
|
+
'Expected no errors when creating schema.'
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { assert, test } from '@sprucelabs/test-utils'
|
|
2
|
+
import AbstractCliTest from '../../../tests/AbstractCliTest'
|
|
3
|
+
|
|
4
|
+
export default class SyncingSchemasInGoTest extends AbstractCliTest {
|
|
5
|
+
@test()
|
|
6
|
+
protected static async canSyncWithoutError() {
|
|
7
|
+
await this.go.initGoProject()
|
|
8
|
+
await this.sync()
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
private static async sync() {
|
|
12
|
+
const results = await this.Action('schema', 'sync', {
|
|
13
|
+
shouldAutoHandleDependencies: true,
|
|
14
|
+
}).execute({})
|
|
15
|
+
|
|
16
|
+
assert.isFalsy(
|
|
17
|
+
results.errors,
|
|
18
|
+
'Expected no errors when syncing core schemas in a go project.'
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
return results
|
|
22
|
+
}
|
|
23
|
+
}
|