@sprucelabs/spruce-cli 14.29.2 → 14.29.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/build/__tests__/behavioral/events/CreatingAListener.test.d.ts +1 -0
  3. package/build/__tests__/behavioral/events/CreatingAListener.test.js +67 -24
  4. package/build/__tests__/behavioral/events/CreatingAListener.test.js.map +1 -1
  5. package/build/__tests__/behavioral/{ListeningToAnEventYouCreate.test.d.ts → events/ListeningToAnEventYouCreate.test.d.ts} +1 -1
  6. package/build/__tests__/behavioral/{ListeningToAnEventYouCreate.test.js → events/ListeningToAnEventYouCreate.test.js} +2 -2
  7. package/build/__tests__/behavioral/events/ListeningToAnEventYouCreate.test.js.map +1 -0
  8. package/build/__tests__/implementation/PkgService.test.js +3 -6
  9. package/build/__tests__/implementation/PkgService.test.js.map +1 -1
  10. package/build/cli.js +9 -7
  11. package/build/cli.js.map +1 -1
  12. package/build/features/deploy/actions/HerokuAction.js.map +1 -1
  13. package/build/features/skill/actions/RegisterAction.js +1 -0
  14. package/build/features/skill/actions/RegisterAction.js.map +1 -1
  15. package/build/schemas/v2020_07_22/personWithToken.builder.js +1 -0
  16. package/build/schemas/v2020_07_22/personWithToken.builder.js.map +1 -1
  17. package/build/services/PkgService.d.ts +4 -16
  18. package/build/services/PkgService.js +11 -127
  19. package/build/services/PkgService.js.map +1 -1
  20. package/build/services/ServiceFactory.d.ts +1 -2
  21. package/build/services/ServiceFactory.js +2 -4
  22. package/build/services/ServiceFactory.js.map +1 -1
  23. package/build/types/cli.types.d.ts +1 -6
  24. package/build/types/cli.types.js +8 -0
  25. package/build/types/cli.types.js.map +1 -1
  26. package/package.json +34 -34
  27. package/src/__tests__/behavioral/events/CreatingAListener.test.ts +20 -0
  28. package/src/__tests__/behavioral/{ListeningToAnEventYouCreate.test.ts → events/ListeningToAnEventYouCreate.test.ts} +2 -2
  29. package/src/__tests__/implementation/PkgService.test.ts +1 -2
  30. package/src/cli.ts +4 -1
  31. package/src/features/deploy/actions/HerokuAction.ts +1 -2
  32. package/src/features/skill/actions/RegisterAction.ts +3 -0
  33. package/src/schemas/v2020_07_22/personWithToken.builder.ts +1 -0
  34. package/src/services/PkgService.ts +13 -93
  35. package/src/services/ServiceFactory.ts +10 -7
  36. package/src/types/cli.types.ts +1 -6
  37. package/build/__tests__/behavioral/ListeningToAnEventYouCreate.test.js.map +0 -1
  38. package/build/__tests__/behavioral/README.md +0 -8
  39. package/build/__tests__/implementation/AuthService.test.d.ts +0 -14
  40. package/build/__tests__/implementation/AuthService.test.js +0 -255
  41. package/build/__tests__/implementation/AuthService.test.js.map +0 -1
  42. package/build/__tests__/implementation/README.md +0 -5
  43. package/build/components/README.md +0 -5
  44. package/build/services/AuthService.d.ts +0 -23
  45. package/build/services/AuthService.js +0 -109
  46. package/build/services/AuthService.js.map +0 -1
  47. package/src/__tests__/behavioral/README.md +0 -8
  48. package/src/__tests__/implementation/AuthService.test.ts +0 -95
  49. package/src/__tests__/implementation/README.md +0 -5
  50. package/src/components/README.md +0 -5
  51. package/src/services/AuthService.ts +0 -91
package/CHANGELOG.md CHANGED
@@ -3,6 +3,38 @@
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.6](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.5...v14.29.6) (2021-12-13)
7
+
8
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
9
+
10
+
11
+
12
+
13
+
14
+ ## [14.29.5](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.4...v14.29.5) (2021-12-13)
15
+
16
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
17
+
18
+
19
+
20
+
21
+
22
+ ## [14.29.4](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.3...v14.29.4) (2021-12-13)
23
+
24
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
25
+
26
+
27
+
28
+
29
+
30
+ ## [14.29.3](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.2...v14.29.3) (2021-12-11)
31
+
32
+ **Note:** Version bump only for package @sprucelabs/spruce-cli
33
+
34
+
35
+
36
+
37
+
6
38
  ## [14.29.2](https://github.com/sprucelabsai/spruce-cli-workspace/compare/v14.29.1...v14.29.2) (2021-12-08)
7
39
 
8
40
  **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: "installEventsAndCreateListener",
529
+ key: "listeningToAnEventWithNoEmitTargetOrPayloadGeneratesValidListener",
530
530
  value: function () {
531
- var _installEventsAndCreateListener = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee9() {
532
- var cli, version, results;
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 = _context9.sent;
584
+ cli = _context10.sent;
542
585
  version = 'v2020_01_01';
543
- _context9.next = 6;
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 = _context9.sent;
594
+ results = _context10.sent;
552
595
 
553
596
  _test.assert.isFalsy(results.errors);
554
597
 
555
- return _context9.abrupt("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 _context9.stop();
606
+ return _context10.stop();
564
607
  }
565
608
  }
566
- }, _callee9, this);
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 _callee10(eventSignature) {
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 _callee10$(_context10) {
624
+ return _regenerator["default"].wrap(function _callee11$(_context11) {
582
625
  while (1) {
583
- switch (_context10.prev = _context10.next) {
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
- _context10.next = 4;
632
+ _context11.next = 4;
590
633
  return this.seedDummySkillRegisterCurrentSkillAndInstallToOrg();
591
634
 
592
635
  case 4:
593
- _yield$this$seedDummy = _context10.sent;
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
- _context10.next = 12;
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
- _context10.next = 15;
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 = _context10.sent;
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
- _context10.next = 20;
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 _context10.abrupt("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 _context10.stop();
680
+ return _context11.stop();
638
681
  }
639
682
  }
640
- }, _callee10, this);
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":"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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\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 '../../tests/AbstractEventTest';
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("../../tests/AbstractEventTest"));
32
+ var _AbstractEventTest2 = _interopRequireDefault(require("../../../tests/AbstractEventTest"));
33
33
 
34
- var _test2 = _interopRequireDefault(require("../../tests/utilities/test.utility"));
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"}
@@ -83,21 +83,18 @@ var PkgServiceTest = (_dec = (0, _test.test)(), _dec2 = (0, _test.test)(), _dec3
83
83
  key: "canCreatePkgService",
84
84
  value: function () {
85
85
  var _canCreatePkgService = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
86
- var pkg;
87
86
  return _regenerator["default"].wrap(function _callee2$(_context2) {
88
87
  while (1) {
89
88
  switch (_context2.prev = _context2.next) {
90
89
  case 0:
91
- pkg = PkgServiceTest.beforeEach();
90
+ _test.assert.isTruthy(this.pkg);
92
91
 
93
- _test.assert.isTruthy(pkg);
94
-
95
- case 2:
92
+ case 1:
96
93
  case "end":
97
94
  return _context2.stop();
98
95
  }
99
96
  }
100
- }, _callee2);
97
+ }, _callee2, this);
101
98
  }));
102
99
 
103
100
  function canCreatePkgService() {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/__tests__/implementation/PkgService.test.ts"],"names":["PkgServiceTest","pkg","Service","beforeEach","assert","isTruthy","version","get","isNotEqual","CommandService","setMockResponse","RegExp","code","install","isInstalled","totalInstalled","isEqual","expectedPath","resolvePath","isTrue","diskUtil","doesFileExist","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;IAEqBA,c,WASnB,iB,UAMA,iB,UAMA,iB,UAWA,iB,UA2BA,iB;;;;;;;;;;;;;sGAvDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAEC,qBAAKC,GAAL,GAAW,KAAKC,OAAL,CAAa,KAAb,CAAX;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOD,gBAAAA,GAFP,GAEaD,cAAc,CAACG,UAAf,EAFb;;AAGCC,6BAAOC,QAAP,CAAgBJ,GAAhB;;AAHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;qJAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOK,gBAAAA,OAFP,GAEiB,KAAKL,GAAL,CAASM,GAAT,CAAa,qBAAb,CAFjB;;AAGCH,6BAAOI,UAAP,CAAkBF,OAAlB,EAA2B,QAA3B;;AAHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iHAMA;AAAA;AAAA;AAAA;AAAA;AAECG,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,QAAX,CAA/B,EAAsD;AACrDC,kBAAAA,IAAI,EAAE;AAD+C,iBAAtD;;AAFD;AAAA,uBAMO,KAAKX,GAAL,CAASY,OAAT,CAAiB,+CAAjB,CANP;;AAAA;AAQC,qBAAKZ,GAAL,CAASa,WAAT,CAAqB,wCAArB;;AARD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;2IAWA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAECL,2CAAeC,eAAf,CACC,IAAIC,MAAJ,CAAW,oDAAX,CADD,EAEC;AACCC,kBAAAA,IAAI,EAAE;AADP,iBAFD;;AAFD;AAAA,uBASkC,KAAKX,GAAL,CAASY,OAAT,CAChC,gCADgC,CATlC;;AAAA;AAAA;AASSE,gBAAAA,cATT,yBASSA,cATT;;AAaCX,6BAAOY,OAAP,CAAeD,cAAf,EAA+B,CAA/B;;AAEME,gBAAAA,YAfP,GAesB,KAAKC,WAAL,CACpB,cADoB,EAEpB,aAFoB,EAGpB,oBAHoB,CAftB;;AAqBCd,6BAAOe,MAAP,CACCC,2BAASC,aAAT,CAAuBJ,YAAvB,CADD,mCAE2BA,YAF3B;;AArBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mJA2BA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEkC,KAAKhB,GAAL,CAASY,OAAT,CAAiB,CACjD,QADiD,EAEjD,mCAFiD,CAAjB,CAFlC;;AAAA;AAAA;AAESE,gBAAAA,cAFT,0BAESA,cAFT;;AAOCX,6BAAOY,OAAP,CAAeD,cAAf,EAA+B,CAA/B;;AAEME,gBAAAA,YATP,GASsB,KAAKC,WAAL,CACpB,cADoB,EAEpB,aAFoB,EAGpB,uBAHoB,CATtB;;AAeCd,6BAAOe,MAAP,CACCC,2BAASC,aAAT,CAAuBJ,YAAvB,CADD,mCAE2BA,YAF3B;;AAfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA3D2CK,8B,8DACV,Q","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport PkgService from '../../services/PkgService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class PkgServiceTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\tprivate static pkg: PkgService\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.pkg = this.Service('pkg')\n\t}\n\n\t@test()\n\tprotected static async canCreatePkgService() {\n\t\tconst pkg = PkgServiceTest.beforeEach()\n\t\tassert.isTruthy(pkg)\n\t}\n\n\t@test()\n\tprotected static async installANonSpruceLabsModuleMakesItsVersionAnActualVersion() {\n\t\tconst version = this.pkg.get('dependencies.dotenv')\n\t\tassert.isNotEqual(version, 'latest')\n\t}\n\n\t@test()\n\tprotected static async handlesAtLatestInName() {\n\t\tCommandService.setMockResponse(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tawait this.pkg.install('@sprucelabs/heartwood-view-controllers@latest')\n\n\t\tthis.pkg.isInstalled('@sprucelabs/heartwood-view-controllers')\n\t}\n\n\t@test()\n\tprotected static async ifInstallingOnlySpruceModulesShouldNotRunNPMAdd() {\n\t\tCommandService.setMockResponse(\n\t\t\tnew RegExp(/npm.*?install.*?--no-progress/gis),\n\t\t\t{\n\t\t\t\tcode: 1,\n\t\t\t}\n\t\t)\n\n\t\tconst { totalInstalled } = await this.pkg.install(\n\t\t\t'@sprucelabs/jest-json-reporter'\n\t\t)\n\n\t\tassert.isEqual(totalInstalled, 1)\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'node_modules',\n\t\t\t'@sprucelabs',\n\t\t\t'jest-json-reporter'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(expectedPath),\n\t\t\t`No module installed at ${expectedPath}.`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async installingSpruceAndOtherModulesDoesntRemoveSpruceModule() {\n\t\tconst { totalInstalled } = await this.pkg.install([\n\t\t\t'moment',\n\t\t\t'@sprucelabs/spruce-calendar-utils',\n\t\t])\n\n\t\tassert.isEqual(totalInstalled, 2)\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'node_modules',\n\t\t\t'@sprucelabs',\n\t\t\t'spruce-calendar-utils'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(expectedPath),\n\t\t\t`No module installed at ${expectedPath}.`\n\t\t)\n\t}\n}\n"],"file":"PkgService.test.js"}
1
+ {"version":3,"sources":["../../../src/__tests__/implementation/PkgService.test.ts"],"names":["PkgServiceTest","pkg","Service","assert","isTruthy","version","get","isNotEqual","CommandService","setMockResponse","RegExp","code","install","isInstalled","totalInstalled","isEqual","expectedPath","resolvePath","isTrue","diskUtil","doesFileExist","AbstractSkillTest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AAEA;;;;;;;;IAEqBA,c,WASnB,iB,UAKA,iB,UAMA,iB,UAWA,iB,UA2BA,iB;;;;;;;;;;;;;sGAtDD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAEC,qBAAKC,GAAL,GAAW,KAAKC,OAAL,CAAa,KAAb,CAAX;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;+GAKA;AAAA;AAAA;AAAA;AAAA;AAECC,6BAAOC,QAAP,CAAgB,KAAKH,GAArB;;AAFD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;qJAKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEOI,gBAAAA,OAFP,GAEiB,KAAKJ,GAAL,CAASK,GAAT,CAAa,qBAAb,CAFjB;;AAGCH,6BAAOI,UAAP,CAAkBF,OAAlB,EAA2B,QAA3B;;AAHD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;iHAMA;AAAA;AAAA;AAAA;AAAA;AAECG,2CAAeC,eAAf,CAA+B,IAAIC,MAAJ,CAAW,QAAX,CAA/B,EAAsD;AACrDC,kBAAAA,IAAI,EAAE;AAD+C,iBAAtD;;AAFD;AAAA,uBAMO,KAAKV,GAAL,CAASW,OAAT,CAAiB,+CAAjB,CANP;;AAAA;AAQC,qBAAKX,GAAL,CAASY,WAAT,CAAqB,wCAArB;;AARD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;2IAWA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAECL,2CAAeC,eAAf,CACC,IAAIC,MAAJ,CAAW,oDAAX,CADD,EAEC;AACCC,kBAAAA,IAAI,EAAE;AADP,iBAFD;;AAFD;AAAA,uBASkC,KAAKV,GAAL,CAASW,OAAT,CAChC,gCADgC,CATlC;;AAAA;AAAA;AASSE,gBAAAA,cATT,yBASSA,cATT;;AAaCX,6BAAOY,OAAP,CAAeD,cAAf,EAA+B,CAA/B;;AAEME,gBAAAA,YAfP,GAesB,KAAKC,WAAL,CACpB,cADoB,EAEpB,aAFoB,EAGpB,oBAHoB,CAftB;;AAqBCd,6BAAOe,MAAP,CACCC,2BAASC,aAAT,CAAuBJ,YAAvB,CADD,mCAE2BA,YAF3B;;AArBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;;mJA2BA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAEkC,KAAKf,GAAL,CAASW,OAAT,CAAiB,CACjD,QADiD,EAEjD,mCAFiD,CAAjB,CAFlC;;AAAA;AAAA;AAESE,gBAAAA,cAFT,0BAESA,cAFT;;AAOCX,6BAAOY,OAAP,CAAeD,cAAf,EAA+B,CAA/B;;AAEME,gBAAAA,YATP,GASsB,KAAKC,WAAL,CACpB,cADoB,EAEpB,aAFoB,EAGpB,uBAHoB,CATtB;;AAeCd,6BAAOe,MAAP,CACCC,2BAASC,aAAT,CAAuBJ,YAAvB,CADD,mCAE2BA,YAF3B;;AAfD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;EA1D2CK,8B,8DACV,Q","sourcesContent":["import { diskUtil } from '@sprucelabs/spruce-skill-utils'\nimport { test, assert } from '@sprucelabs/test'\nimport CommandService from '../../services/CommandService'\nimport PkgService from '../../services/PkgService'\nimport AbstractSkillTest from '../../tests/AbstractSkillTest'\n\nexport default class PkgServiceTest extends AbstractSkillTest {\n\tprotected static skillCacheKey = 'skills'\n\tprivate static pkg: PkgService\n\n\tprotected static async beforeEach() {\n\t\tawait super.beforeEach()\n\t\tthis.pkg = this.Service('pkg')\n\t}\n\n\t@test()\n\tprotected static async canCreatePkgService() {\n\t\tassert.isTruthy(this.pkg)\n\t}\n\n\t@test()\n\tprotected static async installANonSpruceLabsModuleMakesItsVersionAnActualVersion() {\n\t\tconst version = this.pkg.get('dependencies.dotenv')\n\t\tassert.isNotEqual(version, 'latest')\n\t}\n\n\t@test()\n\tprotected static async handlesAtLatestInName() {\n\t\tCommandService.setMockResponse(new RegExp(/yarn/gis), {\n\t\t\tcode: 0,\n\t\t})\n\n\t\tawait this.pkg.install('@sprucelabs/heartwood-view-controllers@latest')\n\n\t\tthis.pkg.isInstalled('@sprucelabs/heartwood-view-controllers')\n\t}\n\n\t@test()\n\tprotected static async ifInstallingOnlySpruceModulesShouldNotRunNPMAdd() {\n\t\tCommandService.setMockResponse(\n\t\t\tnew RegExp(/npm.*?install.*?--no-progress/gis),\n\t\t\t{\n\t\t\t\tcode: 1,\n\t\t\t}\n\t\t)\n\n\t\tconst { totalInstalled } = await this.pkg.install(\n\t\t\t'@sprucelabs/jest-json-reporter'\n\t\t)\n\n\t\tassert.isEqual(totalInstalled, 1)\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'node_modules',\n\t\t\t'@sprucelabs',\n\t\t\t'jest-json-reporter'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(expectedPath),\n\t\t\t`No module installed at ${expectedPath}.`\n\t\t)\n\t}\n\n\t@test()\n\tprotected static async installingSpruceAndOtherModulesDoesntRemoveSpruceModule() {\n\t\tconst { totalInstalled } = await this.pkg.install([\n\t\t\t'moment',\n\t\t\t'@sprucelabs/spruce-calendar-utils',\n\t\t])\n\n\t\tassert.isEqual(totalInstalled, 2)\n\n\t\tconst expectedPath = this.resolvePath(\n\t\t\t'node_modules',\n\t\t\t'@sprucelabs',\n\t\t\t'spruce-calendar-utils'\n\t\t)\n\n\t\tassert.isTrue(\n\t\t\tdiskUtil.doesFileExist(expectedPath),\n\t\t\t`No module installed at ${expectedPath}.`\n\t\t)\n\t}\n}\n"],"file":"PkgService.test.js"}
package/build/cli.js CHANGED
@@ -537,7 +537,7 @@ var Cli = /*#__PURE__*/function () {
537
537
  key: "connectToApi",
538
538
  value: function () {
539
539
  var _connectToApi = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee10(cwd, serviceFactory, options, bootOptions) {
540
- var connect, _ref3, _ref3$shouldAuthAsCur, shouldAuthAsCurrentSkill, _ref3$shouldAuthAsLog, shouldAuthAsLoggedInPerson, client, auth, skill, person;
540
+ var connect, _ref3, _ref3$shouldAuthAsCur, shouldAuthAsCurrentSkill, _ref3$shouldAuthAsLog, shouldAuthAsLoggedInPerson, client, auth, pkg, doesPkgExist, skill, person;
541
541
 
542
542
  return _regenerator["default"].wrap(function _callee10$(_context10) {
543
543
  while (1) {
@@ -577,6 +577,8 @@ var Cli = /*#__PURE__*/function () {
577
577
  case 4:
578
578
  client = _context10.sent;
579
579
  auth = {};
580
+ pkg = serviceFactory.Service(cwd, 'pkg');
581
+ doesPkgExist = pkg.doesExist();
580
582
 
581
583
  if (options !== null && options !== void 0 && options.skillId && options !== null && options !== void 0 && options.apiKey) {
582
584
  auth = {
@@ -592,7 +594,7 @@ var Cli = /*#__PURE__*/function () {
592
594
  apiKey: skill.apiKey
593
595
  };
594
596
  }
595
- } else if (shouldAuthAsLoggedInPerson) {
597
+ } else if (doesPkgExist && shouldAuthAsLoggedInPerson) {
596
598
  person = serviceFactory.Service(cwd, 'auth').getLoggedInPerson();
597
599
 
598
600
  if (person) {
@@ -601,21 +603,21 @@ var Cli = /*#__PURE__*/function () {
601
603
  }
602
604
 
603
605
  if (!(Object.keys(auth).length > 0)) {
604
- _context10.next = 11;
606
+ _context10.next = 13;
605
607
  break;
606
608
  }
607
609
 
608
- _context10.next = 10;
610
+ _context10.next = 12;
609
611
  return client.authenticate(_objectSpread({}, auth));
610
612
 
611
- case 10:
613
+ case 12:
612
614
  //@ts-ignore
613
615
  client.auth = auth;
614
616
 
615
- case 11:
617
+ case 13:
616
618
  return _context10.abrupt("return", client);
617
619
 
618
- case 12:
620
+ case 14:
619
621
  case "end":
620
622
  return _context10.stop();
621
623
  }