@sprucelabs/spruce-cli 15.2.15 → 15.2.18
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/events/events.contract.d.ts +102 -4
- package/build/.spruce/events/events.contract.js +3 -1
- package/build/.spruce/events/events.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.d.ts +15 -0
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js +18 -3
- package/build/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.d.ts +21 -4
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js +24 -7
- package/build/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.d.ts +18 -1
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js +21 -4
- package/build/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.d.ts +39 -0
- package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js +53 -0
- package/build/.spruce/events/heartwood/listViews.v2021_02_11.contract.js.map +1 -0
- package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.d.ts +11 -0
- package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js +13 -2
- package/build/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.js.map +1 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill.test.d.ts +0 -7
- package/build/__tests__/behavioral/skill/UpgradingASkill.test.js +38 -403
- package/build/__tests__/behavioral/skill/UpgradingASkill.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill2.test.d.ts +7 -15
- package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js +218 -341
- package/build/__tests__/behavioral/skill/UpgradingASkill2.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill3.test.d.ts +16 -5
- package/build/__tests__/behavioral/skill/UpgradingASkill3.test.js +416 -141
- package/build/__tests__/behavioral/skill/UpgradingASkill3.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill4.test.d.ts +5 -8
- package/build/__tests__/behavioral/skill/UpgradingASkill4.test.js +147 -205
- package/build/__tests__/behavioral/skill/UpgradingASkill4.test.js.map +1 -1
- package/build/__tests__/behavioral/skill/UpgradingASkill5.test.d.ts +11 -0
- package/build/__tests__/behavioral/skill/UpgradingASkill5.test.js +357 -0
- package/build/__tests__/behavioral/skill/UpgradingASkill5.test.js.map +1 -0
- package/build/__tests__/behavioral/tests/CreatingATest.test.d.ts +3 -0
- package/build/__tests__/behavioral/tests/CreatingATest.test.js +142 -45
- package/build/__tests__/behavioral/tests/CreatingATest.test.js.map +1 -1
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.d.ts +1 -0
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js +105 -11
- package/build/__tests__/implementation/EventTemplateItemBuilder.test.js.map +1 -1
- package/build/templateItemBuilders/EventTemplateItemBuilder.js +2 -2
- package/build/templateItemBuilders/EventTemplateItemBuilder.js.map +1 -1
- package/package.json +37 -37
- package/src/.spruce/events/events.contract.ts +6 -0
- package/src/.spruce/events/heartwood/didRegisterSkillViews.v2021_02_11.contract.ts +15 -0
- package/src/.spruce/events/heartwood/generateUrl.v2021_02_11.contract.ts +21 -4
- package/src/.spruce/events/heartwood/getSkillViews.v2021_02_11.contract.ts +18 -1
- package/src/.spruce/events/heartwood/listViews.v2021_02_11.contract.ts +47 -0
- package/src/.spruce/events/heartwood/registerSkillViews.v2021_02_11.contract.ts +11 -0
- package/src/__tests__/behavioral/skill/UpgradingASkill.test.ts +0 -184
- package/src/__tests__/behavioral/skill/UpgradingASkill2.test.ts +120 -157
- package/src/__tests__/behavioral/skill/UpgradingASkill3.test.ts +184 -78
- package/src/__tests__/behavioral/skill/UpgradingASkill4.test.ts +90 -91
- package/src/__tests__/behavioral/skill/UpgradingASkill5.test.ts +128 -0
- package/src/__tests__/behavioral/tests/CreatingATest.test.ts +29 -12
- package/src/__tests__/implementation/EventTemplateItemBuilder.test.ts +124 -9
- package/src/templateItemBuilders/EventTemplateItemBuilder.ts +8 -2
|
@@ -34,16 +34,7 @@ export default class CreatingBehavioralTestsTest extends AbstractTestTest {
|
|
|
34
34
|
)
|
|
35
35
|
protected static async canCreateBehavioralTest(testName: string) {
|
|
36
36
|
LintService.enableLinting()
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
this.selectOptionBasedOnLabel(testName)
|
|
40
|
-
|
|
41
|
-
const response = await promise
|
|
42
|
-
|
|
43
|
-
const match = testUtil.assertFileByNameInGeneratedFiles(
|
|
44
|
-
'CanBookAppointment.test.ts',
|
|
45
|
-
response.files
|
|
46
|
-
)
|
|
37
|
+
const match = await this.createTestAndGetFile(testName)
|
|
47
38
|
|
|
48
39
|
assert.doesInclude(match, 'behavioral')
|
|
49
40
|
|
|
@@ -100,8 +91,8 @@ export default class CreatingBehavioralTestsTest extends AbstractTestTest {
|
|
|
100
91
|
await promise
|
|
101
92
|
}
|
|
102
93
|
|
|
103
|
-
@test('can select
|
|
104
|
-
@test('can select
|
|
94
|
+
@test('can select sub dir 1', 'test')
|
|
95
|
+
@test('can select sub dir 2', 'test-2')
|
|
105
96
|
protected static async selectingAnOptionRendersToSubDir(dirName: string) {
|
|
106
97
|
await this.installTests()
|
|
107
98
|
this.createTestSubDir('behavioral', dirName)
|
|
@@ -146,6 +137,13 @@ export default class CreatingBehavioralTestsTest extends AbstractTestTest {
|
|
|
146
137
|
this.ui.reset()
|
|
147
138
|
}
|
|
148
139
|
|
|
140
|
+
@test()
|
|
141
|
+
protected static async allTestsComeFakedToStart() {
|
|
142
|
+
const testFile = await this.createTestAndGetFile()
|
|
143
|
+
const contents = diskUtil.readFile(testFile)
|
|
144
|
+
assert.doesInclude(contents, 'fake.login()')
|
|
145
|
+
}
|
|
146
|
+
|
|
149
147
|
private static createTestSubDir(...testDirs: string[]) {
|
|
150
148
|
const newDir = this.resolveTestDir(...testDirs)
|
|
151
149
|
diskUtil.createDir(newDir)
|
|
@@ -155,6 +153,15 @@ export default class CreatingBehavioralTestsTest extends AbstractTestTest {
|
|
|
155
153
|
return this.resolvePath('src', '__tests__', ...testDirs)
|
|
156
154
|
}
|
|
157
155
|
|
|
156
|
+
private static async createTest(testName = 'AbstractSpruceFixtureTest') {
|
|
157
|
+
const { promise } = await this.installAndStartTestActionAndWaitForInput()
|
|
158
|
+
|
|
159
|
+
this.selectOptionBasedOnLabel(testName)
|
|
160
|
+
|
|
161
|
+
const response = await promise
|
|
162
|
+
return response
|
|
163
|
+
}
|
|
164
|
+
|
|
158
165
|
private static async installAndStartTestActionAndWaitForInput(
|
|
159
166
|
testType = 'behavioral'
|
|
160
167
|
) {
|
|
@@ -174,4 +181,14 @@ export default class CreatingBehavioralTestsTest extends AbstractTestTest {
|
|
|
174
181
|
await this.waitForInput()
|
|
175
182
|
await this.ui.sendInput(selectedSubClass ?? '')
|
|
176
183
|
}
|
|
184
|
+
|
|
185
|
+
private static async createTestAndGetFile(testName?: string) {
|
|
186
|
+
const response = await this.createTest(testName)
|
|
187
|
+
|
|
188
|
+
const match = testUtil.assertFileByNameInGeneratedFiles(
|
|
189
|
+
'CanBookAppointment.test.ts',
|
|
190
|
+
response.files
|
|
191
|
+
)
|
|
192
|
+
return match
|
|
193
|
+
}
|
|
177
194
|
}
|
|
@@ -120,14 +120,14 @@ const relatedToRelatedToProximitySchema = buildSchema({
|
|
|
120
120
|
})
|
|
121
121
|
|
|
122
122
|
const relatedToRelatedToProximitySchemaTemplateItem: SchemaTemplateItem = {
|
|
123
|
-
namespace: '
|
|
123
|
+
namespace: 'proximity',
|
|
124
124
|
id: relatedToRelatedToProximitySchema.id,
|
|
125
125
|
nameCamel: 'relatedToRelatedToProximitySchema',
|
|
126
126
|
namePascal: 'RelatedToRelatedToProximitySchema',
|
|
127
127
|
nameReadable: 'relatedToRelatedToProximitySchema',
|
|
128
128
|
schema: {
|
|
129
129
|
...relatedToRelatedToProximitySchema,
|
|
130
|
-
namespace: '
|
|
130
|
+
namespace: 'proximity',
|
|
131
131
|
},
|
|
132
132
|
isNested: true,
|
|
133
133
|
destinationDir: '#spruce/events',
|
|
@@ -150,14 +150,14 @@ const relatedToProximitySchema = buildSchema({
|
|
|
150
150
|
})
|
|
151
151
|
|
|
152
152
|
const relatedToProximitySchemaTemplateItem: SchemaTemplateItem = {
|
|
153
|
-
namespace: '
|
|
153
|
+
namespace: 'proximity',
|
|
154
154
|
id: relatedToProximitySchema.id,
|
|
155
155
|
nameCamel: 'relatedToProximitySchema',
|
|
156
156
|
namePascal: 'RelatedToProximitySchema',
|
|
157
157
|
nameReadable: 'relatedToProximitySchema',
|
|
158
158
|
schema: {
|
|
159
159
|
id: 'relatedToProximitySchema',
|
|
160
|
-
namespace: '
|
|
160
|
+
namespace: 'proximity',
|
|
161
161
|
version: expectedVersion,
|
|
162
162
|
fields: {
|
|
163
163
|
boolField: {
|
|
@@ -169,7 +169,7 @@ const relatedToProximitySchemaTemplateItem: SchemaTemplateItem = {
|
|
|
169
169
|
schemaIds: [
|
|
170
170
|
{
|
|
171
171
|
id: 'relatedToRelatedToProximitySchema',
|
|
172
|
-
namespace: '
|
|
172
|
+
namespace: 'proximity',
|
|
173
173
|
version: expectedVersion,
|
|
174
174
|
},
|
|
175
175
|
],
|
|
@@ -184,6 +184,7 @@ const relatedToProximitySchemaTemplateItem: SchemaTemplateItem = {
|
|
|
184
184
|
const proximityEmitPayloadSchema = buildSchema({
|
|
185
185
|
version: expectedVersion,
|
|
186
186
|
id: 'proximityEmitPayload',
|
|
187
|
+
namespace: 'proximity',
|
|
187
188
|
fields: {
|
|
188
189
|
textField: {
|
|
189
190
|
type: 'text',
|
|
@@ -198,14 +199,14 @@ const proximityEmitPayloadSchema = buildSchema({
|
|
|
198
199
|
})
|
|
199
200
|
|
|
200
201
|
const proximityEmitPayloadTemplateItem: SchemaTemplateItem = {
|
|
201
|
-
namespace: '
|
|
202
|
+
namespace: 'proximity',
|
|
202
203
|
id: proximityEmitPayloadSchema.id,
|
|
203
204
|
nameCamel: 'proximityEmitPayload',
|
|
204
205
|
namePascal: 'ProximityEmitPayload',
|
|
205
206
|
nameReadable: 'proximityEmitPayload',
|
|
206
207
|
schema: {
|
|
207
208
|
id: 'proximityEmitPayload',
|
|
208
|
-
namespace: '
|
|
209
|
+
namespace: 'proximity',
|
|
209
210
|
version: expectedVersion,
|
|
210
211
|
fields: {
|
|
211
212
|
textField: {
|
|
@@ -217,7 +218,7 @@ const proximityEmitPayloadTemplateItem: SchemaTemplateItem = {
|
|
|
217
218
|
schemaIds: [
|
|
218
219
|
{
|
|
219
220
|
id: 'relatedToProximitySchema',
|
|
220
|
-
namespace: '
|
|
221
|
+
namespace: 'proximity',
|
|
221
222
|
version: expectedVersion,
|
|
222
223
|
},
|
|
223
224
|
],
|
|
@@ -339,7 +340,6 @@ export default class EventTemplateItemBuilderTest extends AbstractCliTest {
|
|
|
339
340
|
eventContractTemplateItems,
|
|
340
341
|
expectedEventContractTemplateItems
|
|
341
342
|
)
|
|
342
|
-
|
|
343
343
|
assert.isEqualDeep(schemaTemplateItems, expectedSchemaTemplateItems)
|
|
344
344
|
}
|
|
345
345
|
|
|
@@ -379,4 +379,119 @@ export default class EventTemplateItemBuilderTest extends AbstractCliTest {
|
|
|
379
379
|
assert.isEqual(eventContractTemplateItems[0].nameCamel, 'registerEvents')
|
|
380
380
|
assert.isEqual(eventContractTemplateItems[1].nameCamel, 'zebraCheeta')
|
|
381
381
|
}
|
|
382
|
+
|
|
383
|
+
@test()
|
|
384
|
+
protected static eventContractTemplateItemsHaveProperNamespacesImports() {
|
|
385
|
+
const groupsExpectedImports = [
|
|
386
|
+
{
|
|
387
|
+
package:
|
|
388
|
+
'#spruce/schemas/groups/v2021_12_01/listEmitTargetAndPayload.schema',
|
|
389
|
+
importAs: 'listEmitTargetAndPayloadSchema',
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
package:
|
|
393
|
+
'#spruce/schemas/groups/v2021_12_01/listResponsePayload.schema',
|
|
394
|
+
importAs: 'listResponsePayloadSchema',
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
importAs: '{ buildEventContract }',
|
|
398
|
+
package: '@sprucelabs/mercury-types',
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
importAs: '{ buildPermissionContract }',
|
|
402
|
+
package: '@sprucelabs/mercury-types',
|
|
403
|
+
},
|
|
404
|
+
]
|
|
405
|
+
|
|
406
|
+
const appointmentsExpectedImports = [
|
|
407
|
+
{
|
|
408
|
+
package:
|
|
409
|
+
'#spruce/schemas/appointments/v2021_06_23/listEmitTargetAndPayload.schema',
|
|
410
|
+
importAs: 'listEmitTargetAndPayloadSchema',
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
package:
|
|
414
|
+
'#spruce/schemas/appointments/v2021_06_23/listResponsePayload.schema',
|
|
415
|
+
importAs: 'listResponsePayloadSchema',
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
importAs: '{ buildEventContract }',
|
|
419
|
+
package: '@sprucelabs/mercury-types',
|
|
420
|
+
},
|
|
421
|
+
{
|
|
422
|
+
importAs: '{ buildPermissionContract }',
|
|
423
|
+
package: '@sprucelabs/mercury-types',
|
|
424
|
+
},
|
|
425
|
+
]
|
|
426
|
+
|
|
427
|
+
const { eventContractTemplateItems } = this.itemBuilder.buildTemplateItems({
|
|
428
|
+
contracts: [
|
|
429
|
+
{
|
|
430
|
+
eventSignatures: {
|
|
431
|
+
'groups.list::v2021_12_01': {
|
|
432
|
+
emitPayloadSchema: {
|
|
433
|
+
id: 'listEmitTargetAndPayload',
|
|
434
|
+
version: 'v2021_12_01',
|
|
435
|
+
namespace: 'Groups',
|
|
436
|
+
name: '',
|
|
437
|
+
fields: {},
|
|
438
|
+
},
|
|
439
|
+
responsePayloadSchema: {
|
|
440
|
+
id: 'listResponsePayload',
|
|
441
|
+
version: 'v2021_12_01',
|
|
442
|
+
namespace: 'Groups',
|
|
443
|
+
name: '',
|
|
444
|
+
fields: {},
|
|
445
|
+
},
|
|
446
|
+
emitPermissionContract: {
|
|
447
|
+
id: 'listEmitPermissions',
|
|
448
|
+
name: 'list',
|
|
449
|
+
requireAllPermissions: false,
|
|
450
|
+
permissions: [],
|
|
451
|
+
},
|
|
452
|
+
},
|
|
453
|
+
|
|
454
|
+
'appointments.list::v2021_06_23': {
|
|
455
|
+
emitPayloadSchema: {
|
|
456
|
+
id: 'listEmitTargetAndPayload',
|
|
457
|
+
version: 'v2021_06_23',
|
|
458
|
+
namespace: 'Appointments',
|
|
459
|
+
name: '',
|
|
460
|
+
fields: {},
|
|
461
|
+
},
|
|
462
|
+
responsePayloadSchema: {
|
|
463
|
+
id: 'listResponsePayload',
|
|
464
|
+
version: 'v2021_06_23',
|
|
465
|
+
namespace: 'Appointments',
|
|
466
|
+
name: '',
|
|
467
|
+
fields: {},
|
|
468
|
+
},
|
|
469
|
+
emitPermissionContract: {
|
|
470
|
+
id: 'listEmitPermissions',
|
|
471
|
+
name: 'list appointments',
|
|
472
|
+
requireAllPermissions: false,
|
|
473
|
+
permissions: [],
|
|
474
|
+
},
|
|
475
|
+
listenPermissionContract: {
|
|
476
|
+
id: 'listListenPermissions',
|
|
477
|
+
name: 'list appointments',
|
|
478
|
+
requireAllPermissions: false,
|
|
479
|
+
permissions: [],
|
|
480
|
+
},
|
|
481
|
+
},
|
|
482
|
+
},
|
|
483
|
+
},
|
|
484
|
+
],
|
|
485
|
+
localNamespace: 'testing',
|
|
486
|
+
})
|
|
487
|
+
|
|
488
|
+
assert.isEqualDeep(
|
|
489
|
+
eventContractTemplateItems[0].imports,
|
|
490
|
+
groupsExpectedImports
|
|
491
|
+
)
|
|
492
|
+
assert.isEqualDeep(
|
|
493
|
+
eventContractTemplateItems[1].imports,
|
|
494
|
+
appointmentsExpectedImports
|
|
495
|
+
)
|
|
496
|
+
}
|
|
382
497
|
}
|
|
@@ -197,13 +197,19 @@ export default class EventTemplateItemBuilder {
|
|
|
197
197
|
|
|
198
198
|
if (emitPayloadSchema) {
|
|
199
199
|
signatureTemplateItem.emitPayloadSchema = schemaItems.find(
|
|
200
|
-
(i) =>
|
|
200
|
+
(i) =>
|
|
201
|
+
i.id === emitPayloadSchema.id &&
|
|
202
|
+
(!emitPayloadSchema.namespace ||
|
|
203
|
+
i.namespace === emitPayloadSchema.namespace)
|
|
201
204
|
)
|
|
202
205
|
}
|
|
203
206
|
|
|
204
207
|
if (responsePayloadSchema) {
|
|
205
208
|
signatureTemplateItem.responsePayloadSchema = schemaItems.find(
|
|
206
|
-
(i) =>
|
|
209
|
+
(i) =>
|
|
210
|
+
i.id === responsePayloadSchema.id &&
|
|
211
|
+
(!responsePayloadSchema.namespace ||
|
|
212
|
+
i.namespace === responsePayloadSchema.namespace)
|
|
207
213
|
)
|
|
208
214
|
}
|
|
209
215
|
return signatureTemplateItem
|