@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
68 lines • 3.43 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const spruce_event_utils_1 = require("@sprucelabs/spruce-event-utils");
const spruce_skill_utils_1 = require("@sprucelabs/spruce-skill-utils");
const test_utils_1 = require("@sprucelabs/test-utils");
const AbstractEventTest_1 = __importDefault(require("../../../tests/AbstractEventTest"));
const constants_1 = require("../../../tests/constants");
const EVENT_NAME_READABLE = 'did book appointment';
const EVENT_NAME = 'did-book-appointment';
const EVENT_CAMEL = 'didBookAppointment';
class RegisteringEventsOnBootTest extends AbstractEventTest_1.default {
static async beforeEach() {
await super.beforeEach();
await this.people.loginAsDemoPerson(constants_1.DEMO_NUMBER_EVENTS_ON_BOOT);
}
static async registeringEventsOnBoot() {
const { skill2, currentSkill } = await this.seedDummySkillRegisterCurrentSkillAndInstallToOrg();
await this.Action('event', 'create').execute({
nameReadable: EVENT_NAME_READABLE,
nameKebab: EVENT_NAME,
nameCamel: EVENT_CAMEL,
});
await this.copyEventBuildersAndPermissions(EVENT_NAME);
await this.Action('event', 'sync').execute({});
const boot = await this.Action('skill', 'boot').execute({ local: true });
const client = await this.connectToApi({
skillId: skill2.id,
apiKey: skill2.apiKey,
});
const { contracts } = await this.Store('event', {
apiClientFactory: async () => client,
}).fetchEventContracts();
boot.meta?.kill();
const version = spruce_skill_utils_1.versionUtil.generateVersion().constValue;
const name = spruce_event_utils_1.eventNameUtil.join({
eventNamespace: currentSkill.slug,
eventName: EVENT_NAME,
version,
});
test_utils_1.assert.isTrue(contracts.length >= 2);
const namespace = spruce_skill_utils_1.namesUtil.toPascal(currentSkill.slug);
const sig = spruce_event_utils_1.eventContractUtil.getSignatureByName(contracts[1], name);
test_utils_1.assert.doesInclude(sig.emitPayloadSchema, {
id: 'didBookAppointmentEmitTargetAndPayload',
version,
namespace,
});
test_utils_1.assert.doesInclude(sig.responsePayloadSchema, {
id: 'myFantasticallyAmazingEventResponsePayload',
version,
namespace,
});
}
}
exports.default = RegisteringEventsOnBootTest;
__decorate([
(0, test_utils_1.test)()
], RegisteringEventsOnBootTest, "registeringEventsOnBoot", null);
//# sourceMappingURL=RegisteringEventsOnBoot.test.js.map