@sprucelabs/spruce-cli 14.29.2 → 14.29.3
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 +8 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +1 -0
- package/build/__tests__/behavioral/events/CreatingAListener.test.js +67 -24
- package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
- package/build/__tests__/behavioral/{ListeningToAnEventYouCreate.test.d.ts → events/ListeningToAnEventYouCreate.test.d.ts} +1 -1
- package/build/__tests__/behavioral/{ListeningToAnEventYouCreate.test.js → events/ListeningToAnEventYouCreate.test.js} +2 -2
- package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -0
- package/build/schemas/v2020_07_22/personWithToken.builder.js +1 -0
- package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
- package/package.json +3 -3
- package/src/__tests__/behavioral/events/CreatingAListener.test.ts +20 -0
- package/src/__tests__/behavioral/{ListeningToAnEventYouCreate.test.ts → events/ListeningToAnEventYouCreate.test.ts} +2 -2
- package/src/schemas/v2020_07_22/personWithToken.builder.ts +1 -0
- package/build/__tests__/behavioral/ListeningToAnEventYouCreate.test.js.map +0 -1
- package/build/__tests__/behavioral/README.md +0 -8
- package/build/__tests__/implementation/README.md +0 -5
- package/build/components/README.md +0 -5
- package/src/__tests__/behavioral/README.md +0 -8
- package/src/__tests__/implementation/README.md +0 -5
- package/src/components/README.md +0 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [14.29.3](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.2...v14.29.3) (2021-12-11)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
## [14.29.2](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.1...v14.29.2) (2021-12-08)
|
|
7
15
|
|
|
8
16
|
**Note:** Version bump only for package @sprucelabs/spruce-cli
|
|
@@ -9,6 +9,7 @@ export default class CreatingAListenerTest extends AbstractEventTest {
|
|
|
9
9
|
protected static generatesTypedListenerWithoutPayloads(): Promise<void>;
|
|
10
10
|
protected static generatesTypedListenerWithEmitPayload(): Promise<void>;
|
|
11
11
|
protected static emittingEventTriggersListenerAndCrashesWithListenerNotImplemented(): Promise<void>;
|
|
12
|
+
protected static listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener(): Promise<void>;
|
|
12
13
|
private static installEventsAndCreateListener;
|
|
13
14
|
private static setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener;
|
|
14
15
|
}
|
|
@@ -39,13 +39,13 @@ var _AbstractEventTest2 = _interopRequireDefault(require("../../../tests/Abstrac
|
|
|
39
39
|
|
|
40
40
|
var _test2 = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
|
|
41
41
|
|
|
42
|
-
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2, _temp;
|
|
42
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _class2, _temp;
|
|
43
43
|
|
|
44
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); }; }
|
|
45
45
|
|
|
46
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; } }
|
|
47
47
|
|
|
48
|
-
var CreatingAListenerTest = (_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)(), (_class = (_temp = _class2 = /*#__PURE__*/function (_AbstractEventTest) {
|
|
48
|
+
var CreatingAListenerTest = (_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)(), (_class = (_temp = _class2 = /*#__PURE__*/function (_AbstractEventTest) {
|
|
49
49
|
(0, _inherits2["default"])(CreatingAListenerTest, _AbstractEventTest);
|
|
50
50
|
|
|
51
51
|
var _super = _createSuper(CreatingAListenerTest);
|
|
@@ -526,21 +526,64 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
|
|
|
526
526
|
return emittingEventTriggersListenerAndCrashesWithListenerNotImplemented;
|
|
527
527
|
}()
|
|
528
528
|
}, {
|
|
529
|
-
key: "
|
|
529
|
+
key: "listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener",
|
|
530
530
|
value: function () {
|
|
531
|
-
var
|
|
532
|
-
var
|
|
531
|
+
var _listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
|
|
532
|
+
var _yield$this$setupSkil4, listenerPath;
|
|
533
|
+
|
|
533
534
|
return _regenerator["default"].wrap(function _callee9$(_context9) {
|
|
534
535
|
while (1) {
|
|
535
536
|
switch (_context9.prev = _context9.next) {
|
|
536
537
|
case 0:
|
|
537
538
|
_context9.next = 2;
|
|
539
|
+
return this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener({
|
|
540
|
+
isGlobal: true,
|
|
541
|
+
responsePayloadSchema: {
|
|
542
|
+
id: 'test',
|
|
543
|
+
fields: {
|
|
544
|
+
id: {
|
|
545
|
+
type: 'id'
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
});
|
|
550
|
+
|
|
551
|
+
case 2:
|
|
552
|
+
_yield$this$setupSkil4 = _context9.sent;
|
|
553
|
+
listenerPath = _yield$this$setupSkil4.listenerPath;
|
|
554
|
+
_context9.next = 6;
|
|
555
|
+
return this.Service('typeChecker').check(listenerPath);
|
|
556
|
+
|
|
557
|
+
case 6:
|
|
558
|
+
case "end":
|
|
559
|
+
return _context9.stop();
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
}, _callee9, this);
|
|
563
|
+
}));
|
|
564
|
+
|
|
565
|
+
function listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener() {
|
|
566
|
+
return _listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener.apply(this, arguments);
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
return listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener;
|
|
570
|
+
}()
|
|
571
|
+
}, {
|
|
572
|
+
key: "installEventsAndCreateListener",
|
|
573
|
+
value: function () {
|
|
574
|
+
var _installEventsAndCreateListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10() {
|
|
575
|
+
var cli, version, results;
|
|
576
|
+
return _regenerator["default"].wrap(function _callee10$(_context10) {
|
|
577
|
+
while (1) {
|
|
578
|
+
switch (_context10.prev = _context10.next) {
|
|
579
|
+
case 0:
|
|
580
|
+
_context10.next = 2;
|
|
538
581
|
return this.installEventFeature('events');
|
|
539
582
|
|
|
540
583
|
case 2:
|
|
541
|
-
cli =
|
|
584
|
+
cli = _context10.sent;
|
|
542
585
|
version = 'v2020_01_01';
|
|
543
|
-
|
|
586
|
+
_context10.next = 6;
|
|
544
587
|
return this.Action('event', 'listen').execute({
|
|
545
588
|
namespace: 'skill',
|
|
546
589
|
eventName: 'will-boot',
|
|
@@ -548,11 +591,11 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
|
|
|
548
591
|
});
|
|
549
592
|
|
|
550
593
|
case 6:
|
|
551
|
-
results =
|
|
594
|
+
results = _context10.sent;
|
|
552
595
|
|
|
553
596
|
_test.assert.isFalsy(results.errors);
|
|
554
597
|
|
|
555
|
-
return
|
|
598
|
+
return _context10.abrupt("return", {
|
|
556
599
|
version: version,
|
|
557
600
|
results: results,
|
|
558
601
|
cli: cli
|
|
@@ -560,10 +603,10 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
|
|
|
560
603
|
|
|
561
604
|
case 9:
|
|
562
605
|
case "end":
|
|
563
|
-
return
|
|
606
|
+
return _context10.stop();
|
|
564
607
|
}
|
|
565
608
|
}
|
|
566
|
-
},
|
|
609
|
+
}, _callee10, this);
|
|
567
610
|
}));
|
|
568
611
|
|
|
569
612
|
function installEventsAndCreateListener() {
|
|
@@ -575,28 +618,28 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
|
|
|
575
618
|
}, {
|
|
576
619
|
key: "setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener",
|
|
577
620
|
value: function () {
|
|
578
|
-
var _setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function
|
|
621
|
+
var _setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee11(eventSignature) {
|
|
579
622
|
var expectedVersion, eventContract, _yield$this$seedDummy, skillFixture, skill2, currentSkill, cli, org, results, listener, contents;
|
|
580
623
|
|
|
581
|
-
return _regenerator["default"].wrap(function
|
|
624
|
+
return _regenerator["default"].wrap(function _callee11$(_context11) {
|
|
582
625
|
while (1) {
|
|
583
|
-
switch (
|
|
626
|
+
switch (_context11.prev = _context11.next) {
|
|
584
627
|
case 0:
|
|
585
628
|
expectedVersion = this.expectedVersion;
|
|
586
629
|
eventContract = {
|
|
587
630
|
eventSignatures: (0, _defineProperty2["default"])({}, "my-new-event::".concat(expectedVersion), eventSignature)
|
|
588
631
|
};
|
|
589
|
-
|
|
632
|
+
_context11.next = 4;
|
|
590
633
|
return this.seedDummySkillRegisterCurrentSkillAndInstallToOrg();
|
|
591
634
|
|
|
592
635
|
case 4:
|
|
593
|
-
_yield$this$seedDummy =
|
|
636
|
+
_yield$this$seedDummy = _context11.sent;
|
|
594
637
|
skillFixture = _yield$this$seedDummy.skillFixture;
|
|
595
638
|
skill2 = _yield$this$seedDummy.skill2;
|
|
596
639
|
currentSkill = _yield$this$seedDummy.currentSkill;
|
|
597
640
|
cli = _yield$this$seedDummy.cli;
|
|
598
641
|
org = _yield$this$seedDummy.org;
|
|
599
|
-
|
|
642
|
+
_context11.next = 12;
|
|
600
643
|
return skillFixture.registerEventContract(skill2, eventContract);
|
|
601
644
|
|
|
602
645
|
case 12:
|
|
@@ -604,7 +647,7 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
|
|
|
604
647
|
id: skill2.id,
|
|
605
648
|
namespace: skill2.slug
|
|
606
649
|
});
|
|
607
|
-
|
|
650
|
+
_context11.next = 15;
|
|
608
651
|
return this.Action('event', 'listen').execute({
|
|
609
652
|
namespace: skill2.slug,
|
|
610
653
|
eventName: "my-new-event",
|
|
@@ -612,17 +655,17 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
|
|
|
612
655
|
});
|
|
613
656
|
|
|
614
657
|
case 15:
|
|
615
|
-
results =
|
|
658
|
+
results = _context11.sent;
|
|
616
659
|
|
|
617
660
|
_test.assert.isFalsy(results.errors);
|
|
618
661
|
|
|
619
662
|
listener = _test2["default"].assertFileByNameInGeneratedFiles("my-new-event.".concat(expectedVersion, ".listener.ts"), results.files);
|
|
620
|
-
|
|
663
|
+
_context11.next = 20;
|
|
621
664
|
return this.Service('typeChecker').check(listener);
|
|
622
665
|
|
|
623
666
|
case 20:
|
|
624
667
|
contents = _spruceSkillUtils.diskUtil.readFile(listener);
|
|
625
|
-
return
|
|
668
|
+
return _context11.abrupt("return", {
|
|
626
669
|
contents: contents,
|
|
627
670
|
skill2: skill2,
|
|
628
671
|
listenerPath: listener,
|
|
@@ -634,10 +677,10 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
|
|
|
634
677
|
|
|
635
678
|
case 22:
|
|
636
679
|
case "end":
|
|
637
|
-
return
|
|
680
|
+
return _context11.stop();
|
|
638
681
|
}
|
|
639
682
|
}
|
|
640
|
-
},
|
|
683
|
+
}, _callee11, this);
|
|
641
684
|
}));
|
|
642
685
|
|
|
643
686
|
function setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(_x) {
|
|
@@ -648,6 +691,6 @@ var CreatingAListenerTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)()
|
|
|
648
691
|
}()
|
|
649
692
|
}]);
|
|
650
693
|
return CreatingAListenerTest;
|
|
651
|
-
}(_AbstractEventTest2["default"]), (0, _defineProperty2["default"])(_class2, "expectedVersion", _spruceSkillUtils.versionUtil.generateVersion().constValue), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "throwsWithBadNamespace", [_dec], Object.getOwnPropertyDescriptor(_class, "throwsWithBadNamespace"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "throwsWithBadEventName", [_dec2], Object.getOwnPropertyDescriptor(_class, "throwsWithBadEventName"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesMapFile", [_dec3], Object.getOwnPropertyDescriptor(_class, "generatesMapFile"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "createsValidListener", [_dec4], Object.getOwnPropertyDescriptor(_class, "createsValidListener"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "creatingANewListenerAsksWhichEventToListenTo", [_dec5], Object.getOwnPropertyDescriptor(_class, "creatingANewListenerAsksWhichEventToListenTo"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesTypedListenerWithoutPayloads", [_dec6], Object.getOwnPropertyDescriptor(_class, "generatesTypedListenerWithoutPayloads"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesTypedListenerWithEmitPayload", [_dec7], Object.getOwnPropertyDescriptor(_class, "generatesTypedListenerWithEmitPayload"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "emittingEventTriggersListenerAndCrashesWithListenerNotImplemented", [_dec8], Object.getOwnPropertyDescriptor(_class, "emittingEventTriggersListenerAndCrashesWithListenerNotImplemented"), _class)), _class));
|
|
694
|
+
}(_AbstractEventTest2["default"]), (0, _defineProperty2["default"])(_class2, "expectedVersion", _spruceSkillUtils.versionUtil.generateVersion().constValue), _temp), ((0, _applyDecoratedDescriptor2["default"])(_class, "throwsWithBadNamespace", [_dec], Object.getOwnPropertyDescriptor(_class, "throwsWithBadNamespace"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "throwsWithBadEventName", [_dec2], Object.getOwnPropertyDescriptor(_class, "throwsWithBadEventName"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesMapFile", [_dec3], Object.getOwnPropertyDescriptor(_class, "generatesMapFile"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "createsValidListener", [_dec4], Object.getOwnPropertyDescriptor(_class, "createsValidListener"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "creatingANewListenerAsksWhichEventToListenTo", [_dec5], Object.getOwnPropertyDescriptor(_class, "creatingANewListenerAsksWhichEventToListenTo"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesTypedListenerWithoutPayloads", [_dec6], Object.getOwnPropertyDescriptor(_class, "generatesTypedListenerWithoutPayloads"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "generatesTypedListenerWithEmitPayload", [_dec7], Object.getOwnPropertyDescriptor(_class, "generatesTypedListenerWithEmitPayload"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "emittingEventTriggersListenerAndCrashesWithListenerNotImplemented", [_dec8], Object.getOwnPropertyDescriptor(_class, "emittingEventTriggersListenerAndCrashesWithListenerNotImplemented"), _class), (0, _applyDecoratedDescriptor2["default"])(_class, "listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener", [_dec9], Object.getOwnPropertyDescriptor(_class, "listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener"), _class)), _class));
|
|
652
695
|
exports["default"] = CreatingAListenerTest;
|
|
653
696
|
//# sourceMappingURL=CreatingAListener.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"names":["CreatingAListenerTest","installEventFeature","Action","execute","namespace","results","assert","isTruthy","errors","err","errorAssertUtil","assertError","namespaces","eventName","parameters","installEventsAndCreateListener","match","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","version","cli","doesInclude","checkHealth","health","isFalsy","event","skill","isUndefined","listeners","eventNamespace","waitForInput","lastInvocation","ui","getLastInvocation","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","reset","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","currentSkill","eventContract","org","connectToApi","shouldAuthAsCurrentSkill","currentClient","disconnect","local","boot","wait","skillId","apiKey","client","mixinContract","eventSignatures","emit","target","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventAssertUtil","responderRef","responses","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","add","listener","diskUtil","readFile","listenerPath","AbstractEventTest","versionUtil","generateVersion","constValue"],"mappings":"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","sourcesContent":["import { EventSignature } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_NAMESPACES', {\n\t\t\tnamespaces: ['taco-bell'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'heartwood',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesMapFile() {\n\t\tconst { results } = await this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`listeners.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(match)\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst { version, results, cli } =\n\t\t\tawait this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isFalsy(health?.event?.errors)\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\n\t\tvoid this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet lastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tconst currentClient = await this.connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait currentClient.disconnect()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\tprivate static async installEventsAndCreateListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await 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\tassert.isFalsy(results.errors)\n\t\treturn { version, results, cli }\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n}\n"],"file":"CreatingAListener.test.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/CreatingAListener.test.ts"],"names":["CreatingAListenerTest","installEventFeature","Action","execute","namespace","results","assert","isTruthy","errors","err","errorAssertUtil","assertError","namespaces","eventName","parameters","installEventsAndCreateListener","match","testUtil","assertFileByNameInGeneratedFiles","files","Service","check","version","cli","doesInclude","checkHealth","health","isFalsy","event","skill","isUndefined","listeners","eventNamespace","waitForInput","lastInvocation","ui","getLastInvocation","isEqual","command","options","label","sendInput","MERCURY_API_NAMESPACE","reset","setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener","isGlobal","contents","emitPayloadSchema","targetSchema","eventTargetSchema","payloadSchema","id","fields","booleanField","type","skill2","slug","expectedVersion","organizationId","isRequired","responsePayloadSchema","currentSkill","eventContract","org","connectToApi","shouldAuthAsCurrentSkill","currentClient","disconnect","local","boot","wait","skillId","apiKey","client","mixinContract","eventSignatures","emit","target","payload","totalContracts","totalErrors","totalResponses","meta","promise","fail","stack","kill","error","doesThrow","eventResponseUtil","getFirstResponseOrThrow","eventAssertUtil","responderRef","responses","listenerPath","eventSignature","seedDummySkillRegisterCurrentSkillAndInstallToOrg","skillFixture","registerEventContract","add","listener","diskUtil","readFile","AbstractEventTest","versionUtil","generateVersion","constValue"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AACA;;AACA;;AAMA;;AAKA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,qB,WAInB,iB,UAeA,iB,UAgBA,iB,UAYA,iB,UA6BA,iB,UAwBA,iB,UAeA,iB,UA+BA,iB,UAuGA,iB;;;;;;;;;;;;;kHArPD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKC,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAAA;AAAA,uBAGuB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5DC,kBAAAA,SAAS,EAAE;AADiD,iBAAvC,CAHvB;;AAAA;AAGOC,gBAAAA,OAHP;;AAOCC,6BAAOC,QAAP,CAAgBF,OAAO,CAACG,MAAxB;;AACMC,gBAAAA,GARP,GAQaJ,OAAO,CAACG,MAAR,CAAe,CAAf,CARb;;AAUCE,2CAAgBC,WAAhB,CAA4BF,GAA5B,EAAiC,oBAAjC,EAAuD;AACtDG,kBAAAA,UAAU,EAAE,CAAC,WAAD;AAD0C,iBAAvD;;AAVD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;kHAeA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKX,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAAA;AAAA,uBAGuB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5DC,kBAAAA,SAAS,EAAE,WADiD;AAE5DS,kBAAAA,SAAS,EAAE;AAFiD,iBAAvC,CAHvB;;AAAA;AAGOR,gBAAAA,OAHP;;AAQCC,6BAAOC,QAAP,CAAgBF,OAAO,CAACG,MAAxB;;AACMC,gBAAAA,GATP,GASaJ,OAAO,CAACG,MAAR,CAAe,CAAf,CATb;;AAWCE,2CAAgBC,WAAhB,CAA4BF,GAA5B,EAAiC,oBAAjC,EAAuD;AACtDK,kBAAAA,UAAU,EAAE,CAAC,WAAD;AAD0C,iBAAvD;;AAXD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;4GAgBA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAE2B,KAAKC,8BAAL,EAF3B;;AAAA;AAAA;AAESV,gBAAAA,OAFT,yBAESA,OAFT;AAIOW,gBAAAA,KAJP,GAIeC,kBAASC,gCAAT,iBAEbb,OAAO,CAACc,KAFK,CAJf;AAAA;AAAA,uBASO,KAAKC,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCL,KAAlC,CATP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;gHAYA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAGQ,KAAKD,8BAAL,EAHR;;AAAA;AAAA;AAESO,gBAAAA,OAFT,0BAESA,OAFT;AAEkBjB,gBAAAA,OAFlB,0BAEkBA,OAFlB;AAE2BkB,gBAAAA,GAF3B,0BAE2BA,GAF3B;AAKOP,gBAAAA,KALP,GAKeC,kBAASC,gCAAT,qBACAI,OADA,mBAEbjB,OAAO,CAACc,KAFK,CALf;;AAUCb,6BAAOkB,WAAP,CAAmBR,KAAnB,EAA0BM,OAA1B;;AAVD;AAAA,uBAYO,KAAKF,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCL,KAAlC,CAZP;;AAAA;AAAA;AAAA,uBAcsBO,GAAG,CAACE,WAAJ,EAdtB;;AAAA;AAcOC,gBAAAA,MAdP;;AAgBCpB,6BAAOqB,OAAP,CAAeD,MAAf,aAAeA,MAAf,wCAAeA,MAAM,CAAEE,KAAvB,kDAAe,cAAepB,MAA9B;;AACAF,6BAAOC,QAAP,CAAgBmB,MAAM,CAACG,KAAvB;;AAEAvB,6BAAOwB,WAAP,CAAmBJ,MAAM,CAACG,KAAP,CAAarB,MAAhC;;AACAF,6BAAOC,QAAP,CAAgBmB,MAAM,CAACE,KAAvB;;AAEAtB,6BAAOkB,WAAP,CAAmBE,MAAM,CAACE,KAAP,CAAaG,SAAhC,EAA2C;AAC1ClB,kBAAAA,SAAS,EAAE,WAD+B;AAE1CmB,kBAAAA,cAAc,EAAE,OAF0B;AAG1CV,kBAAAA,OAAO,EAAPA;AAH0C,iBAA3C;;AAtBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;wIA6BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEO,KAAKrB,mBAAL,CAAyB,QAAzB,CAFP;;AAAA;AAIC,qBAAK,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC,EAAvC,CAAL;AAJD;AAAA,uBAMO,KAAK8B,YAAL,EANP;;AAAA;AAQKC,gBAAAA,cARL,GAQsB,KAAKC,EAAL,CAAQC,iBAAR,EARtB;;AAUC9B,6BAAO+B,OAAP,CAAeH,cAAc,CAACI,OAA9B,EAAuC,QAAvC;;AACAhC,6BAAOkB,WAAP,CAAmBU,cAAc,CAACK,OAAf,CAAuBC,KAA1C,EAAiD,WAAjD;;AAXD;AAAA,uBAaO,KAAKL,EAAL,CAAQM,SAAR,CAAkBC,uCAAlB,CAbP;;AAAA;AAAA;AAAA,uBAeO,KAAKT,YAAL,EAfP;;AAAA;AAiBCC,gBAAAA,cAAc,GAAG,KAAKC,EAAL,CAAQC,iBAAR,EAAjB;;AAEA9B,6BAAOkB,WAAP,CAAmBU,cAAc,CAACK,OAAf,CAAuBC,KAA1C,EAAiD,OAAjD;;AAEA,qBAAKL,EAAL,CAAQQ,KAAR;;AArBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iIAwBA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAGQ,KAAKC,+DAAL,CACL;AACCC,kBAAAA,QAAQ,EAAE;AADX,iBADK,CAHR;;AAAA;AAAA;AAESC,gBAAAA,QAFT,yBAESA,QAFT;;AASCxC,6BAAOkB,WAAP,CACCsB,QADD,EAEC,gEAFD;;AATD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iIAeA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAGQ,KAAKF,+DAAL,CACL;AACCG,kBAAAA,iBAAiB,EAAE,uDAAgC;AAClDlC,oBAAAA,SAAS,EAAE,cADuC;AAElDmC,oBAAAA,YAAY,EAAEC,mCAFoC;AAGlDC,oBAAAA,aAAa,EAAE;AACdC,sBAAAA,EAAE,EAAE,uBADU;AAEdC,sBAAAA,MAAM,EAAE;AACPC,wBAAAA,YAAY,EAAE;AACbC,0BAAAA,IAAI,EAAE;AADO;AADP;AAFM;AAHmC,mBAAhC;AADpB,iBADK,CAHR;;AAAA;AAAA;AAESR,gBAAAA,QAFT,0BAESA,QAFT;AAEmBS,gBAAAA,MAFnB,0BAEmBA,MAFnB;;AAoBCjD,6BAAOkB,WAAP,CACCsB,QADD,EAEC,qDAFD;;AAKAxC,6BAAOkB,WAAP,CACCsB,QADD,sCAE8BS,MAAM,CAACC,IAFrC,4BAE2D,KAAKC,eAFhE;;AAzBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6JA+BA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAGQ,KAAKb,+DAAL,CACL;AACCG,kBAAAA,iBAAiB,EAAE,uDAAgC;AAClDlC,oBAAAA,SAAS,EAAE,cADuC;AAElDmC,oBAAAA,YAAY,EAAE;AACbG,sBAAAA,EAAE,EAAE,sBADS;AAEbC,sBAAAA,MAAM,EAAE;AACPM,wBAAAA,cAAc,EAAE;AACfJ,0BAAAA,IAAI,EAAE,IADS;AAEfK,0BAAAA,UAAU,EAAE;AAFG;AADT;AAFK,qBAFoC;AAWlDT,oBAAAA,aAAa,EAAE;AACdC,sBAAAA,EAAE,EAAE,uBADU;AAEdC,sBAAAA,MAAM,EAAE;AACPC,wBAAAA,YAAY,EAAE;AACbC,0BAAAA,IAAI,EAAE;AADO;AADP;AAFM;AAXmC,mBAAhC,CADpB;AAqBCM,kBAAAA,qBAAqB,EAAE,yBAAY;AAClCT,oBAAAA,EAAE,EAAE,2BAD8B;AAElCC,oBAAAA,MAAM,EAAE;AACPC,sBAAAA,YAAY,EAAE;AACbC,wBAAAA,IAAI,EAAE;AADO;AADP;AAF0B,mBAAZ;AArBxB,iBADK,CAHR;;AAAA;AAAA;AAESO,gBAAAA,YAFT,0BAESA,YAFT;AAEuBN,gBAAAA,MAFvB,0BAEuBA,MAFvB;AAE+BO,gBAAAA,aAF/B,0BAE+BA,aAF/B;AAE8CC,gBAAAA,GAF9C,0BAE8CA,GAF9C;AAAA;AAAA,uBAoC6B,KAAKC,YAAL,CAAkB;AAC7CC,kBAAAA,wBAAwB,EAAE;AADmB,iBAAlB,CApC7B;;AAAA;AAoCOC,gBAAAA,aApCP;AAAA;AAAA,uBAwCOA,aAAa,CAACC,UAAd,EAxCP;;AAAA;AAAA;AAAA,uBA0CoB,KAAKjE,MAAL,CAAY,OAAZ,EAAqB,MAArB,EAA6BC,OAA7B,CAAqC;AAAEiE,kBAAAA,KAAK,EAAE;AAAT,iBAArC,CA1CpB;;AAAA;AA0COC,gBAAAA,IA1CP;;AA4CC/D,6BAAOqB,OAAP,CAAe0C,IAAI,CAAC7D,MAApB,EA5CD,CA8CC;;;AA9CD;AAAA,uBA+CO,KAAK8D,IAAL,CAAU,KAAV,CA/CP;;AAAA;AAAA;AAAA,uBAiDuB,KAAKN,YAAL,CAAkB;AACvCO,kBAAAA,OAAO,EAAEhB,MAAM,CAACJ,EADuB;AAEvCqB,kBAAAA,MAAM,EAAEjB,MAAM,CAACiB;AAFwB,iBAAlB,CAjDvB;;AAAA;AAiDOC,gBAAAA,MAjDP;AAsDO5D,gBAAAA,SAtDP,aAsDsB0C,MAAM,CAACC,IAtD7B,4BAsDmD,KAAKC,eAtDxD;AAwDCgB,gBAAAA,MAAM,CAACC,aAAP,CAAqB;AACpBC,kBAAAA,eAAe,uCACb9D,SADa,EAEbiD,aAAa,CAACa,eAAd,yBACkB,KAAKlB,eADvB,EAFa;AADK,iBAArB;;AAxDD;AAAA;AAAA,uBAoEQ,KAAKa,IAAL,CAAU,IAAV,CApER;;AAAA;AAAA;AAAA,uBAsEkBG,MAAM,CAACG,IAAP,CAAY/D,SAAZ,EAAuB;AACtCgE,kBAAAA,MAAM,EAAE;AACPnB,oBAAAA,cAAc,EAAEK,GAAG,CAACZ;AADb,mBAD8B;AAItC2B,kBAAAA,OAAO,EAAE;AACRzB,oBAAAA,YAAY,EAAE;AADN;AAJ6B,iBAAvB,CAtElB;;AAAA;AAsEEhD,gBAAAA,OAtEF;;AAAA;AAAA,oBA8EUA,OAAO,CAAC0E,cAAR,GAAyB,CA9EnC;AAAA;AAAA;AAAA;;AAAA;AAgFCzE,6BAAO+B,OAAP,CAAehC,OAAO,CAAC0E,cAAvB,EAAuC,CAAvC;;AACAzE,6BAAO+B,OAAP,CAAehC,OAAO,CAAC2E,WAAvB,EAAoC,CAApC;;AACA1E,6BAAO+B,OAAP,CAAehC,OAAO,CAAC4E,cAAvB,EAAuC,CAAvC;;AAEA,8BAAAZ,IAAI,CAACa,IAAL,gFAAWC,OAAX,mFAA0B,UAAC1E,GAAD,EAAgB;AACzCH,+BAAO8E,IAAP,CAAY3E,GAAG,CAAC4E,KAAhB;AACA,iBAFD;AApFD;AAAA,sCAwFOhB,IAAI,CAACa,IAxFZ,gDAwFO,YAAWI,IAAX,EAxFP;;AAAA;AA0FOC,gBAAAA,KA1FP,GA0FejF,aAAOkF,SAAP,CAAiB;AAAA,yBAC9BC,oCAAkBC,uBAAlB,CAA0CrF,OAA1C,CAD8B;AAAA,iBAAjB,CA1Ff;;AA8FCsF,kDAAgBhF,WAAhB,CAA4B4E,KAA5B,EAAmC,0BAAnC;;AAEMK,gBAAAA,YAhGP,GAgGsBvF,OAAO,CAACwF,SAAR,CAAkB,CAAlB,EAAqBD,YAhG3C;;AAiGCtF,6BAAO+B,OAAP,CACCuD,YADD,kBAEU/B,YAAY,CAACV,EAFvB,cAE6BU,YAAY,CAACL,IAF1C;;AAjGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;6JAuGA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAGQ,KAAKZ,+DAAL,CACL;AACCC,kBAAAA,QAAQ,EAAE,IADX;AAECe,kBAAAA,qBAAqB,EAAE;AACtBT,oBAAAA,EAAE,EAAE,MADkB;AAEtBC,oBAAAA,MAAM,EAAE;AACPD,sBAAAA,EAAE,EAAE;AACHG,wBAAAA,IAAI,EAAE;AADH;AADG;AAFc;AAFxB,iBADK,CAHR;;AAAA;AAAA;AAESwC,gBAAAA,YAFT,0BAESA,YAFT;AAAA;AAAA,uBAiBO,KAAK1E,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCyE,YAAlC,CAjBP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;0HAoBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBACmB,KAAK7F,mBAAL,CAAyB,QAAzB,CADnB;;AAAA;AACOsB,gBAAAA,GADP;AAGOD,gBAAAA,OAHP,GAGiB,aAHjB;AAAA;AAAA,uBAKuB,KAAKpB,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5DC,kBAAAA,SAAS,EAAE,OADiD;AAE5DS,kBAAAA,SAAS,EAAE,WAFiD;AAG5DS,kBAAAA,OAAO,EAAPA;AAH4D,iBAAvC,CALvB;;AAAA;AAKOjB,gBAAAA,OALP;;AAWCC,6BAAOqB,OAAP,CAAetB,OAAO,CAACG,MAAvB;;AAXD,mDAYQ;AAAEc,kBAAAA,OAAO,EAAPA,OAAF;AAAWjB,kBAAAA,OAAO,EAAPA,OAAX;AAAoBkB,kBAAAA,GAAG,EAAHA;AAApB,iBAZR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;2JAeA,mBACCwE,cADD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAGOtC,gBAAAA,eAHP,GAGyB,KAAKA,eAH9B;AAKOK,gBAAAA,aALP,GAKuB;AACrBa,kBAAAA,eAAe,+DACIlB,eADJ,GACwBsC,cADxB;AADM,iBALvB;AAAA;AAAA,uBAYQ,KAAKC,iDAAL,EAZR;;AAAA;AAAA;AAWSC,gBAAAA,YAXT,yBAWSA,YAXT;AAWuB1C,gBAAAA,MAXvB,yBAWuBA,MAXvB;AAW+BM,gBAAAA,YAX/B,yBAW+BA,YAX/B;AAW6CtC,gBAAAA,GAX7C,yBAW6CA,GAX7C;AAWkDwC,gBAAAA,GAXlD,yBAWkDA,GAXlD;AAAA;AAAA,uBAcOkC,YAAY,CAACC,qBAAb,CAAmC3C,MAAnC,EAA2CO,aAA3C,CAdP;;AAAA;AAgBC,qBAAK1C,OAAL,CAAa,YAAb,EAA2B+E,GAA3B,CAA+B;AAC9BhD,kBAAAA,EAAE,EAAEI,MAAM,CAACJ,EADmB;AAE9B/C,kBAAAA,SAAS,EAAEmD,MAAM,CAACC;AAFY,iBAA/B;AAhBD;AAAA,uBAqBuB,KAAKtD,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC;AAC5DC,kBAAAA,SAAS,EAAEmD,MAAM,CAACC,IAD0C;AAE5D3C,kBAAAA,SAAS,gBAFmD;AAG5DS,kBAAAA,OAAO,EAAEmC;AAHmD,iBAAvC,CArBvB;;AAAA;AAqBOpD,gBAAAA,OArBP;;AA2BCC,6BAAOqB,OAAP,CAAetB,OAAO,CAACG,MAAvB;;AAEM4F,gBAAAA,QA7BP,GA6BkBnF,kBAASC,gCAAT,wBACAuC,eADA,mBAEhBpD,OAAO,CAACc,KAFQ,CA7BlB;AAAA;AAAA,uBAkCO,KAAKC,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkC+E,QAAlC,CAlCP;;AAAA;AAoCOtD,gBAAAA,QApCP,GAoCkBuD,2BAASC,QAAT,CAAkBF,QAAlB,CApClB;AAAA,mDAsCQ;AACNtD,kBAAAA,QAAQ,EAARA,QADM;AAENS,kBAAAA,MAAM,EAANA,MAFM;AAGNuC,kBAAAA,YAAY,EAAEM,QAHR;AAIN7E,kBAAAA,GAAG,EAAHA,GAJM;AAKNuC,kBAAAA,aAAa,EAAbA,aALM;AAMNC,kBAAAA,GAAG,EAAHA,GANM;AAONF,kBAAAA,YAAY,EAAZA;AAPM,iBAtCR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA5RkD0C,8B,gEAEjDC,8BAAYC,eAAZ,GAA8BC,U","sourcesContent":["import { EventSignature } from '@sprucelabs/mercury-types'\nimport { buildSchema } from '@sprucelabs/schema'\nimport {\n\tbuildEmitTargetAndPayloadSchema,\n\teventAssertUtil,\n\teventResponseUtil,\n\teventTargetSchema,\n} from '@sprucelabs/spruce-event-utils'\nimport {\n\tdiskUtil,\n\tMERCURY_API_NAMESPACE,\n\tversionUtil,\n} from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport { errorAssertUtil } from '@sprucelabs/test-utils'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class CreatingAListenerTest extends AbstractEventTest {\n\tprivate static readonly expectedVersion =\n\t\tversionUtil.generateVersion().constValue\n\n\t@test()\n\tprotected static async throwsWithBadNamespace() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'taco-bell',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_NAMESPACES', {\n\t\t\tnamespaces: ['taco-bell'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async throwsWithBadEventName() {\n\t\tawait this.installEventFeature('events')\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: 'heartwood',\n\t\t\teventName: 'bad-time',\n\t\t})\n\n\t\tassert.isTruthy(results.errors)\n\t\tconst err = results.errors[0]\n\n\t\terrorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {\n\t\t\tparameters: ['eventName'],\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async generatesMapFile() {\n\t\tconst { results } = await this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`listeners.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(match)\n\t}\n\n\t@test()\n\tprotected static async createsValidListener() {\n\t\tconst { version, results, cli } =\n\t\t\tawait this.installEventsAndCreateListener()\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`will-boot.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(match, version)\n\n\t\tawait this.Service('typeChecker').check(match)\n\n\t\tconst health = await cli.checkHealth()\n\n\t\tassert.isFalsy(health?.event?.errors)\n\t\tassert.isTruthy(health.skill)\n\n\t\tassert.isUndefined(health.skill.errors)\n\t\tassert.isTruthy(health.event)\n\n\t\tassert.doesInclude(health.event.listeners, {\n\t\t\teventName: 'will-boot',\n\t\t\teventNamespace: 'skill',\n\t\t\tversion,\n\t\t})\n\t}\n\n\t@test()\n\tprotected static async creatingANewListenerAsksWhichEventToListenTo() {\n\t\tawait this.installEventFeature('events')\n\n\t\tvoid this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\n\t\tlet lastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.isEqual(lastInvocation.command, 'prompt')\n\t\tassert.doesInclude(lastInvocation.options.label, 'namespace')\n\n\t\tawait this.ui.sendInput(MERCURY_API_NAMESPACE)\n\n\t\tawait this.waitForInput()\n\n\t\tlastInvocation = this.ui.getLastInvocation()\n\n\t\tassert.doesInclude(lastInvocation.options.label, 'event')\n\n\t\tthis.ui.reset()\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithoutPayloads() {\n\t\tconst { contents } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'export default async (event: SpruceEvent): SpruceEventResponse'\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async generatesTypedListenerWithEmitPayload() {\n\t\tconst { contents, skill2 } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: eventTargetSchema,\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t'event: SpruceEvent<SkillEventContract, EmitPayload>'\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tcontents,\n\t\t\t`fullyQualifiedEventName: '${skill2.slug}.my-new-event::${this.expectedVersion}'`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async emittingEventTriggersListenerAndCrashesWithListenerNotImplemented() {\n\t\tconst { currentSkill, skill2, eventContract, org } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\temitPayloadSchema: buildEmitTargetAndPayloadSchema({\n\t\t\t\t\t\teventName: 'my-new-event',\n\t\t\t\t\t\ttargetSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitTarget',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\torganizationId: {\n\t\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t\t\tisRequired: true,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpayloadSchema: {\n\t\t\t\t\t\t\tid: 'myNewEventEmitPayload',\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\tresponsePayloadSchema: buildSchema({\n\t\t\t\t\t\tid: 'myNewEventResponsePayload',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tbooleanField: {\n\t\t\t\t\t\t\t\ttype: 'boolean',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t}\n\t\t\t)\n\n\t\tconst currentClient = await this.connectToApi({\n\t\t\tshouldAuthAsCurrentSkill: true,\n\t\t})\n\n\t\tawait currentClient.disconnect()\n\n\t\tconst boot = await this.Action('skill', 'boot').execute({ local: true })\n\n\t\tassert.isFalsy(boot.errors)\n\n\t\t//give the skill time to boot\n\t\tawait this.wait(20000)\n\n\t\tconst client = (await this.connectToApi({\n\t\t\tskillId: skill2.id,\n\t\t\tapiKey: skill2.apiKey,\n\t\t})) as any\n\n\t\tconst eventName = `${skill2.slug}.my-new-event::${this.expectedVersion}`\n\n\t\tclient.mixinContract({\n\t\t\teventSignatures: {\n\t\t\t\t[eventName]:\n\t\t\t\t\teventContract.eventSignatures[\n\t\t\t\t\t\t`my-new-event::${this.expectedVersion}`\n\t\t\t\t\t],\n\t\t\t},\n\t\t})\n\n\t\tlet results: any\n\n\t\tdo {\n\t\t\tawait this.wait(5000)\n\n\t\t\tresults = await client.emit(eventName, {\n\t\t\t\ttarget: {\n\t\t\t\t\torganizationId: org.id,\n\t\t\t\t},\n\t\t\t\tpayload: {\n\t\t\t\t\tbooleanField: true,\n\t\t\t\t},\n\t\t\t})\n\t\t} while (results.totalContracts < 1)\n\n\t\tassert.isEqual(results.totalContracts, 1)\n\t\tassert.isEqual(results.totalErrors, 1)\n\t\tassert.isEqual(results.totalResponses, 1)\n\n\t\tboot.meta?.promise?.catch((err: Error) => {\n\t\t\tassert.fail(err.stack)\n\t\t})\n\n\t\tawait boot.meta?.kill()\n\n\t\tconst error = assert.doesThrow(() =>\n\t\t\teventResponseUtil.getFirstResponseOrThrow(results)\n\t\t)\n\n\t\teventAssertUtil.assertError(error, 'LISTENER_NOT_IMPLEMENTED')\n\n\t\tconst responderRef = results.responses[0].responderRef\n\t\tassert.isEqual(\n\t\t\tresponderRef,\n\t\t\t`skill:${currentSkill.id}:${currentSkill.slug}`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener() {\n\t\tconst { listenerPath } =\n\t\t\tawait this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\t\t\t{\n\t\t\t\t\tisGlobal: true,\n\t\t\t\t\tresponsePayloadSchema: {\n\t\t\t\t\t\tid: 'test',\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tid: {\n\t\t\t\t\t\t\t\ttype: 'id',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t)\n\n\t\tawait this.Service('typeChecker').check(listenerPath)\n\t}\n\n\tprivate static async installEventsAndCreateListener() {\n\t\tconst cli = await this.installEventFeature('events')\n\n\t\tconst version = 'v2020_01_01'\n\n\t\tconst results = await 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\tassert.isFalsy(results.errors)\n\t\treturn { version, results, cli }\n\t}\n\n\tprivate static async setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(\n\t\teventSignature: EventSignature\n\t) {\n\t\tconst expectedVersion = this.expectedVersion\n\n\t\tconst eventContract = {\n\t\t\teventSignatures: {\n\t\t\t\t[`my-new-event::${expectedVersion}`]: eventSignature,\n\t\t\t},\n\t\t} as const\n\n\t\tconst { skillFixture, skill2, currentSkill, cli, org } =\n\t\t\tawait this.seedDummySkillRegisterCurrentSkillAndInstallToOrg()\n\n\t\tawait skillFixture.registerEventContract(skill2, eventContract)\n\n\t\tthis.Service('dependency').add({\n\t\t\tid: skill2.id,\n\t\t\tnamespace: skill2.slug,\n\t\t})\n\n\t\tconst results = await this.Action('event', 'listen').execute({\n\t\t\tnamespace: skill2.slug,\n\t\t\teventName: `my-new-event`,\n\t\t\tversion: expectedVersion,\n\t\t})\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst listener = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`my-new-event.${expectedVersion}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tawait this.Service('typeChecker').check(listener)\n\n\t\tconst contents = diskUtil.readFile(listener)\n\n\t\treturn {\n\t\t\tcontents,\n\t\t\tskill2,\n\t\t\tlistenerPath: listener,\n\t\t\tcli,\n\t\t\teventContract,\n\t\t\torg,\n\t\t\tcurrentSkill,\n\t\t}\n\t}\n}\n"],"file":"CreatingAListener.test.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import AbstractEventTest from '
|
|
1
|
+
import AbstractEventTest from '../../../tests/AbstractEventTest';
|
|
2
2
|
export default class ListeningToAnEventYouCreateTest extends AbstractEventTest {
|
|
3
3
|
protected static canListenToEventWeCreated(): Promise<void>;
|
|
4
4
|
private static assertClientIsProperlyTyped;
|
|
@@ -29,9 +29,9 @@ var _spruceSkillUtils = require("@sprucelabs/spruce-skill-utils");
|
|
|
29
29
|
|
|
30
30
|
var _test = require("@sprucelabs/test");
|
|
31
31
|
|
|
32
|
-
var _AbstractEventTest2 = _interopRequireDefault(require("
|
|
32
|
+
var _AbstractEventTest2 = _interopRequireDefault(require("../../../tests/AbstractEventTest"));
|
|
33
33
|
|
|
34
|
-
var _test2 = _interopRequireDefault(require("
|
|
34
|
+
var _test2 = _interopRequireDefault(require("../../../tests/utilities/test.utility"));
|
|
35
35
|
|
|
36
36
|
var _dec, _class;
|
|
37
37
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.ts"],"names":["ListeningToAnEventYouCreateTest","registerCurrentSkillAndInstallToOrg","currentSkill","eventName","version","fqen","eventNameUtil","join","eventNamespace","slug","source","resolveTestPath","destination","resolvePath","diskUtil","copyDir","listenPromise","Action","execute","waitForInput","ui","sendInput","results","assert","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","assertClientIsProperlyTyped","sourceFile","contents","readFile","replace","destinationFile","writeFile","Service","check","AbstractEventTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,+B,WACnB,iB;;;;;;;;;;;;;qHAAD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEgC,KAAKC,mCAAL,EAFhC;;AAAA;AAAA;AAESC,gBAAAA,YAFT,yBAESA,YAFT;AAIOC,gBAAAA,SAJP,GAImB,sBAJnB;AAKOC,gBAAAA,OALP,GAKiB,aALjB;AAOOC,gBAAAA,IAPP,GAOcC,gCAAcC,IAAd,CAAmB;AAC/BJ,kBAAAA,SAAS,EAATA,SAD+B;AAE/BK,kBAAAA,cAAc,EAAEN,YAAY,CAACO,IAFE;AAG/BL,kBAAAA,OAAO,EAAPA;AAH+B,iBAAnB,CAPd;AAaOM,gBAAAA,MAbP,GAagB,KAAKC,eAAL,CAAqB,sCAArB,CAbhB;AAcOC,gBAAAA,WAdP,GAcqB,KAAKC,WAAL,CAAiB,KAAjB,CAdrB;AAAA;AAAA,uBAgBOC,2BAASC,OAAT,CAAiBL,MAAjB,EAAyBE,WAAzB,CAhBP;;AAAA;AAkBOI,gBAAAA,aAlBP,GAkBuB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC,EAAvC,CAlBvB;AAAA;AAAA,uBAoBO,KAAKC,YAAL,EApBP;;AAAA;AAAA;AAAA,uBAqBO,KAAKC,EAAL,CAAQC,SAAR,CAAkBnB,YAAY,CAACO,IAA/B,CArBP;;AAAA;AAAA;AAAA,uBAuBO,KAAKU,YAAL,EAvBP;;AAAA;AAAA;AAAA,uBAwBO,KAAKC,EAAL,CAAQC,SAAR,CAAkBhB,IAAlB,CAxBP;;AAAA;AAAA;AAAA,uBA0BuBW,aA1BvB;;AAAA;AA0BOM,gBAAAA,OA1BP;;AA4BCC,6BAAOC,OAAP,CAAeF,OAAO,CAACG,MAAvB;;AAEMC,gBAAAA,KA9BP,GA8BeC,kBAASC,gCAAT,WACVzB,SADU,cACGC,OADH,mBAEbkB,OAAO,CAACO,KAFK,CA9Bf;;AAmCCN,6BAAOO,WAAP,CACCJ,KADD,EAECZ,2BAASD,WAAT,CAAqB,WAArB,EAAkCX,YAAY,CAACO,IAA/C,CAFD;;AAnCD;AAAA,uBAwCO,KAAKsB,2BAAL,CAAiC7B,YAAY,CAACO,IAA9C,CAxCP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uHA2CA,kBAAiDD,cAAjD;AAAA;AAAA;AAAA;AAAA;AAAA;AACOwB,gBAAAA,UADP,GACoB,KAAKnB,WAAL,CAAiB,6BAAjB,CADpB;AAEOoB,gBAAAA,QAFP,GAEkBnB,2BACfoB,QADe,CACNF,UADM,EAEfG,OAFe,CAEP,oBAFO,EAEe3B,cAFf,CAFlB;AAMO4B,gBAAAA,eANP,GAMyB,KAAKvB,WAAL,CAAiB,yBAAjB,CANzB;;AAOCC,2CAASuB,SAAT,CAAmBD,eAAnB,EAAoCH,QAApC;;AAPD;AAAA,uBASO,KAAKK,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCH,eAAlC,CATP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA5C4DI,8B","sourcesContent":["import { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractEventTest from '../../../tests/AbstractEventTest'\nimport testUtil from '../../../tests/utilities/test.utility'\n\nexport default class ListeningToAnEventYouCreateTest extends AbstractEventTest {\n\t@test()\n\tprotected static async canListenToEventWeCreated() {\n\t\tconst { currentSkill } = await this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = 'register-skill-views'\n\t\tconst version = 'v2021_04_11'\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName,\n\t\t\teventNamespace: currentSkill.slug,\n\t\t\tversion,\n\t\t})\n\n\t\tconst source = this.resolveTestPath('skill_register_skill_views_event/src')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tconst listenPromise = this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(currentSkill.slug)\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(fqen)\n\n\t\tconst results = await listenPromise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${eventName}.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\tdiskUtil.resolvePath('listeners', currentSkill.slug)\n\t\t)\n\n\t\tawait this.assertClientIsProperlyTyped(currentSkill.slug)\n\t}\n\n\tprivate static async assertClientIsProperlyTyped(eventNamespace: string) {\n\t\tconst sourceFile = this.resolvePath('src/client-type-test.ts.hbs')\n\t\tconst contents = diskUtil\n\t\t\t.readFile(sourceFile)\n\t\t\t.replace('{{eventNamespace}}', eventNamespace)\n\n\t\tconst destinationFile = this.resolvePath('src/client-type-test.ts')\n\t\tdiskUtil.writeFile(destinationFile, contents)\n\n\t\tawait this.Service('typeChecker').check(destinationFile)\n\t}\n}\n"],"file":"ListeningToAnEventYouCreate.test.js"}
|
|
@@ -11,6 +11,7 @@ var _schema = require("@sprucelabs/schema");
|
|
|
11
11
|
|
|
12
12
|
var _person = _interopRequireDefault(require("../../.spruce/schemas/spruce/v2020_07_22/person.schema"));
|
|
13
13
|
|
|
14
|
+
// eslint-disable-next-line spruce/prohibit-import-of-schema-in-builders
|
|
14
15
|
var _default = (0, _schema.buildSchema)({
|
|
15
16
|
id: 'personWithToken',
|
|
16
17
|
description: 'A stripped down cli user with token details for login',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/schemas/v2020_07_22/personWithToken.builder.ts"],"names":["id","description","fields","personSchema","casualName","token","type","isRequired","isLoggedIn","label"],"mappings":";;;;;;;;;AAAA;;
|
|
1
|
+
{"version":3,"sources":["../../../src/schemas/v2020_07_22/personWithToken.builder.ts"],"names":["id","description","fields","personSchema","casualName","token","type","isRequired","isLoggedIn","label"],"mappings":";;;;;;;;;AAAA;;AAEA;;AADA;eAGe,yBAAY;AAC1BA,EAAAA,EAAE,EAAE,iBADsB;AAE1BC,EAAAA,WAAW,EAAE,uDAFa;AAG1BC,EAAAA,MAAM,EAAE;AACPF,IAAAA,EAAE,EAAEG,mBAAaD,MAAb,CAAoBF,EADjB;AAEPI,IAAAA,UAAU,EAAED,mBAAaD,MAAb,CAAoBE,UAFzB;AAGPC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,IAAI,EAAE,MAAR;AAAgBC,MAAAA,UAAU,EAAE;AAA5B,KAHA;AAIPC,IAAAA,UAAU,EAAE;AACXF,MAAAA,IAAI,EAAE,SADK;AAEXG,MAAAA,KAAK,EAAE;AAFI;AAJL;AAHkB,CAAZ,C","sourcesContent":["import { buildSchema } from '@sprucelabs/schema'\n// eslint-disable-next-line spruce/prohibit-import-of-schema-in-builders\nimport personSchema from '#spruce/schemas/spruce/v2020_07_22/person.schema'\n\nexport default buildSchema({\n\tid: 'personWithToken',\n\tdescription: 'A stripped down cli user with token details for login',\n\tfields: {\n\t\tid: personSchema.fields.id,\n\t\tcasualName: personSchema.fields.casualName,\n\t\ttoken: { type: 'text', isRequired: true },\n\t\tisLoggedIn: {\n\t\t\ttype: 'boolean',\n\t\t\tlabel: 'Logged in',\n\t\t},\n\t},\n})\n"],"file":"personWithToken.builder.js"}
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
]
|
|
19
19
|
},
|
|
20
20
|
"license": "MIT",
|
|
21
|
-
"version": "14.29.
|
|
21
|
+
"version": "14.29.3",
|
|
22
22
|
"bin": {
|
|
23
23
|
"spruce": "./build/index.js"
|
|
24
24
|
},
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
"@sprucelabs/spruce-event-utils": "^17.1.272",
|
|
89
89
|
"@sprucelabs/spruce-skill-booter": "^18.1.0",
|
|
90
90
|
"@sprucelabs/spruce-skill-utils": "^22.1.50",
|
|
91
|
-
"@sprucelabs/spruce-templates": "^14.29.
|
|
91
|
+
"@sprucelabs/spruce-templates": "^14.29.3",
|
|
92
92
|
"@typescript-eslint/eslint-plugin": "^5.6.0",
|
|
93
93
|
"@typescript-eslint/parser": "^5.6.0",
|
|
94
94
|
"cfonts": "^2.10.0",
|
|
@@ -597,5 +597,5 @@
|
|
|
597
597
|
"ora"
|
|
598
598
|
]
|
|
599
599
|
},
|
|
600
|
-
"gitHead": "
|
|
600
|
+
"gitHead": "26363b3f10fde5826aeaf7e4d574c075ad9e85c4"
|
|
601
601
|
}
|
|
@@ -265,6 +265,26 @@ export default class CreatingAListenerTest extends AbstractEventTest {
|
|
|
265
265
|
)
|
|
266
266
|
}
|
|
267
267
|
|
|
268
|
+
@test()
|
|
269
|
+
protected static async listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener() {
|
|
270
|
+
const { listenerPath } =
|
|
271
|
+
await this.setupSkillsInstallAtOrgRegisterEventContractAndGenerateListener(
|
|
272
|
+
{
|
|
273
|
+
isGlobal: true,
|
|
274
|
+
responsePayloadSchema: {
|
|
275
|
+
id: 'test',
|
|
276
|
+
fields: {
|
|
277
|
+
id: {
|
|
278
|
+
type: 'id',
|
|
279
|
+
},
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
}
|
|
283
|
+
)
|
|
284
|
+
|
|
285
|
+
await this.Service('typeChecker').check(listenerPath)
|
|
286
|
+
}
|
|
287
|
+
|
|
268
288
|
private static async installEventsAndCreateListener() {
|
|
269
289
|
const cli = await this.installEventFeature('events')
|
|
270
290
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { eventNameUtil } from '@sprucelabs/spruce-event-utils'
|
|
2
2
|
import { diskUtil } from '@sprucelabs/spruce-skill-utils'
|
|
3
3
|
import { test, assert } from '@sprucelabs/test'
|
|
4
|
-
import AbstractEventTest from '
|
|
5
|
-
import testUtil from '
|
|
4
|
+
import AbstractEventTest from '../../../tests/AbstractEventTest'
|
|
5
|
+
import testUtil from '../../../tests/utilities/test.utility'
|
|
6
6
|
|
|
7
7
|
export default class ListeningToAnEventYouCreateTest extends AbstractEventTest {
|
|
8
8
|
@test()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/__tests__/behavioral/ListeningToAnEventYouCreate.test.ts"],"names":["ListeningToAnEventYouCreateTest","registerCurrentSkillAndInstallToOrg","currentSkill","eventName","version","fqen","eventNameUtil","join","eventNamespace","slug","source","resolveTestPath","destination","resolvePath","diskUtil","copyDir","listenPromise","Action","execute","waitForInput","ui","sendInput","results","assert","isFalsy","errors","match","testUtil","assertFileByNameInGeneratedFiles","files","doesInclude","assertClientIsProperlyTyped","sourceFile","contents","readFile","replace","destinationFile","writeFile","Service","check","AbstractEventTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;;;;;IAEqBA,+B,WACnB,iB;;;;;;;;;;;;;qHAAD;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEgC,KAAKC,mCAAL,EAFhC;;AAAA;AAAA;AAESC,gBAAAA,YAFT,yBAESA,YAFT;AAIOC,gBAAAA,SAJP,GAImB,sBAJnB;AAKOC,gBAAAA,OALP,GAKiB,aALjB;AAOOC,gBAAAA,IAPP,GAOcC,gCAAcC,IAAd,CAAmB;AAC/BJ,kBAAAA,SAAS,EAATA,SAD+B;AAE/BK,kBAAAA,cAAc,EAAEN,YAAY,CAACO,IAFE;AAG/BL,kBAAAA,OAAO,EAAPA;AAH+B,iBAAnB,CAPd;AAaOM,gBAAAA,MAbP,GAagB,KAAKC,eAAL,CAAqB,sCAArB,CAbhB;AAcOC,gBAAAA,WAdP,GAcqB,KAAKC,WAAL,CAAiB,KAAjB,CAdrB;AAAA;AAAA,uBAgBOC,2BAASC,OAAT,CAAiBL,MAAjB,EAAyBE,WAAzB,CAhBP;;AAAA;AAkBOI,gBAAAA,aAlBP,GAkBuB,KAAKC,MAAL,CAAY,OAAZ,EAAqB,QAArB,EAA+BC,OAA/B,CAAuC,EAAvC,CAlBvB;AAAA;AAAA,uBAoBO,KAAKC,YAAL,EApBP;;AAAA;AAAA;AAAA,uBAqBO,KAAKC,EAAL,CAAQC,SAAR,CAAkBnB,YAAY,CAACO,IAA/B,CArBP;;AAAA;AAAA;AAAA,uBAuBO,KAAKU,YAAL,EAvBP;;AAAA;AAAA;AAAA,uBAwBO,KAAKC,EAAL,CAAQC,SAAR,CAAkBhB,IAAlB,CAxBP;;AAAA;AAAA;AAAA,uBA0BuBW,aA1BvB;;AAAA;AA0BOM,gBAAAA,OA1BP;;AA4BCC,6BAAOC,OAAP,CAAeF,OAAO,CAACG,MAAvB;;AAEMC,gBAAAA,KA9BP,GA8BeC,kBAASC,gCAAT,WACVzB,SADU,cACGC,OADH,mBAEbkB,OAAO,CAACO,KAFK,CA9Bf;;AAmCCN,6BAAOO,WAAP,CACCJ,KADD,EAECZ,2BAASD,WAAT,CAAqB,WAArB,EAAkCX,YAAY,CAACO,IAA/C,CAFD;;AAnCD;AAAA,uBAwCO,KAAKsB,2BAAL,CAAiC7B,YAAY,CAACO,IAA9C,CAxCP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;uHA2CA,kBAAiDD,cAAjD;AAAA;AAAA;AAAA;AAAA;AAAA;AACOwB,gBAAAA,UADP,GACoB,KAAKnB,WAAL,CAAiB,6BAAjB,CADpB;AAEOoB,gBAAAA,QAFP,GAEkBnB,2BACfoB,QADe,CACNF,UADM,EAEfG,OAFe,CAEP,oBAFO,EAEe3B,cAFf,CAFlB;AAMO4B,gBAAAA,eANP,GAMyB,KAAKvB,WAAL,CAAiB,yBAAjB,CANzB;;AAOCC,2CAASuB,SAAT,CAAmBD,eAAnB,EAAoCH,QAApC;;AAPD;AAAA,uBASO,KAAKK,OAAL,CAAa,aAAb,EAA4BC,KAA5B,CAAkCH,eAAlC,CATP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA5C4DI,8B","sourcesContent":["import { eventNameUtil } from '@sprucelabs/spruce-event-utils'\nimport { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport AbstractEventTest from '../../tests/AbstractEventTest'\nimport testUtil from '../../tests/utilities/test.utility'\n\nexport default class ListeningToAnEventYouCreateTest extends AbstractEventTest {\n\t@test()\n\tprotected static async canListenToEventWeCreated() {\n\t\tconst { currentSkill } = await this.registerCurrentSkillAndInstallToOrg()\n\n\t\tconst eventName = 'register-skill-views'\n\t\tconst version = 'v2021_04_11'\n\n\t\tconst fqen = eventNameUtil.join({\n\t\t\teventName,\n\t\t\teventNamespace: currentSkill.slug,\n\t\t\tversion,\n\t\t})\n\n\t\tconst source = this.resolveTestPath('skill_register_skill_views_event/src')\n\t\tconst destination = this.resolvePath('src')\n\n\t\tawait diskUtil.copyDir(source, destination)\n\n\t\tconst listenPromise = this.Action('event', 'listen').execute({})\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(currentSkill.slug)\n\n\t\tawait this.waitForInput()\n\t\tawait this.ui.sendInput(fqen)\n\n\t\tconst results = await listenPromise\n\n\t\tassert.isFalsy(results.errors)\n\n\t\tconst match = testUtil.assertFileByNameInGeneratedFiles(\n\t\t\t`${eventName}.${version}.listener.ts`,\n\t\t\tresults.files\n\t\t)\n\n\t\tassert.doesInclude(\n\t\t\tmatch,\n\t\t\tdiskUtil.resolvePath('listeners', currentSkill.slug)\n\t\t)\n\n\t\tawait this.assertClientIsProperlyTyped(currentSkill.slug)\n\t}\n\n\tprivate static async assertClientIsProperlyTyped(eventNamespace: string) {\n\t\tconst sourceFile = this.resolvePath('src/client-type-test.ts.hbs')\n\t\tconst contents = diskUtil\n\t\t\t.readFile(sourceFile)\n\t\t\t.replace('{{eventNamespace}}', eventNamespace)\n\n\t\tconst destinationFile = this.resolvePath('src/client-type-test.ts')\n\t\tdiskUtil.writeFile(destinationFile, contents)\n\n\t\tawait this.Service('typeChecker').check(destinationFile)\n\t}\n}\n"],"file":"ListeningToAnEventYouCreate.test.js"}
|