UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

63 lines (53 loc) 2.03 kB
import { test, assert } from '@sprucelabs/test-utils' import FeatureInstaller from '../../features/FeatureInstaller' import CommandServiceImpl from '../../services/CommandService' import AbstractCliTest from '../../tests/AbstractCliTest' export default class FeatureInstallerTest extends AbstractCliTest { protected static installer: FeatureInstaller protected static async beforeEach() { await super.beforeEach() this.installer = this.featureInstaller } @test() protected static async canGetFeatureDependencies() { const dependencies = this.installer.getFeatureDependencies('schema') assert.doesInclude(dependencies, { code: 'skill', isRequired: false }) assert.doesInclude(dependencies, { code: 'node', isRequired: true }) } @test() protected static async canGetFeatureDependenciesWithOptional() { const dependencies = this.installer.getFeatureDependencies('error') assert.doesInclude(dependencies, { code: 'skill', isRequired: false }) assert.doesInclude(dependencies, { code: 'schema', isRequired: true }) assert.doesInclude(dependencies, { code: 'node', isRequired: true }) } @test() protected static async afterPackageInstallIsCalledOncePerFeature() { CommandServiceImpl.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', }, ], }) assert.isEqual(hitCount, 1) } }