@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
79 lines • 3.77 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_skill_utils_1 = require("@sprucelabs/spruce-skill-utils");
const test_utils_1 = require("@sprucelabs/test-utils");
const AbstractCliTest_1 = __importDefault(require("../../../tests/AbstractCliTest"));
class EventWriterTest extends AbstractCliTest_1.default {
static async canCreateEventWriter() {
await this.FeatureFixture().installCachedFeatures('events');
const writer = this.writers.Writer('event', { fileDescriptions: [] });
const name = 'My event';
const namespace = 'appointments';
const contractId1 = (0, test_utils_1.generateId)();
const contractId2 = (0, test_utils_1.generateId)();
const permissionId1 = (0, test_utils_1.generateId)();
const permissionId2 = (0, test_utils_1.generateId)();
const sig = {
isGlobal: true,
emitPermissions: {
contractId: contractId1,
permissionIdsAny: [permissionId1],
},
listenPermissions: {
contractId: contractId2,
permissionIdsAny: [permissionId2],
},
};
const permWriter = this.writers.Writer('permission', {
fileDescriptions: [],
});
//@ts-ignore
await permWriter.writeTypesFile(this.cwd, {
[contractId1]: [permissionId1],
[contractId2]: [permissionId2],
});
const results = await writer.writeContracts(this.resolveHashSprucePath('events'), {
eventBuilderFile: '@sprucelabs/mercury-types',
schemaTemplateItems: [],
shouldImportCoreEvents: false,
skillEventContractTypesFile: '',
eventContractTemplateItems: [
{
imports: [
{
importAs: '{ buildEventContract }',
package: '@sprucelabs/mercury-types',
},
],
isLocal: true,
nameCamel: spruce_skill_utils_1.namesUtil.toCamel(name),
namePascal: spruce_skill_utils_1.namesUtil.toPascal(name),
namespace,
namespaceCamel: spruce_skill_utils_1.namesUtil.toCamel(namespace),
namespacePascal: spruce_skill_utils_1.namesUtil.toPascal(namespace),
version: spruce_skill_utils_1.versionUtil.generateVersion().constValue,
eventSignatures: {
test: sig,
},
},
],
});
const match = results[0];
const imported = await this.Service('import').importDefault(match.path);
test_utils_1.assert.isEqualDeep(imported.eventSignatures.test, sig);
}
}
exports.default = EventWriterTest;
__decorate([
(0, test_utils_1.test)()
], EventWriterTest, "canCreateEventWriter", null);
//# sourceMappingURL=EventWriter.test.js.map