UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

71 lines 3.21 kB
"use strict"; 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 test_utils_1 = require("@sprucelabs/test-utils"); const CommandService_1 = __importDefault(require("../../services/CommandService")); const AbstractCliTest_1 = __importDefault(require("../../tests/AbstractCliTest")); class FeatureInstallerTest extends AbstractCliTest_1.default { static installer; static async beforeEach() { await super.beforeEach(); this.installer = this.featureInstaller; } static async canGetFeatureDependencies() { const dependencies = this.installer.getFeatureDependencies('schema'); test_utils_1.assert.doesInclude(dependencies, { code: 'skill', isRequired: false }); test_utils_1.assert.doesInclude(dependencies, { code: 'node', isRequired: true }); } static async canGetFeatureDependenciesWithOptional() { const dependencies = this.installer.getFeatureDependencies('error'); test_utils_1.assert.doesInclude(dependencies, { code: 'skill', isRequired: false }); test_utils_1.assert.doesInclude(dependencies, { code: 'schema', isRequired: true }); test_utils_1.assert.doesInclude(dependencies, { code: 'node', isRequired: true }); } static async afterPackageInstallIsCalledOncePerFeature() { CommandService_1.default.fakeCommand(/yarn/, { code: 0, }); let hitCount = 0; //@ts-ignore this.installer.featureMap.schema.afterPackageInstall = () => { hitCount++; }; await this.installer.install({ features: [ { code: 'skill', options: { name: 'testing events', description: 'this too, is a great test!', }, }, { code: 'schema', }, { code: 'event', }, ], }); test_utils_1.assert.isEqual(hitCount, 1); } } exports.default = FeatureInstallerTest; __decorate([ (0, test_utils_1.test)() ], FeatureInstallerTest, "canGetFeatureDependencies", null); __decorate([ (0, test_utils_1.test)() ], FeatureInstallerTest, "canGetFeatureDependenciesWithOptional", null); __decorate([ (0, test_utils_1.test)() ], FeatureInstallerTest, "afterPackageInstallIsCalledOncePerFeature", null); //# sourceMappingURL=FeatureInstaller.test.js.map