@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
91 lines (90 loc) • 5.14 kB
TypeScript
import AbstractSpruceTest from '@sprucelabs/test-utils';
import EventFaker from '../__tests__/support/EventFaker';
import AbstractAction from '../features/AbstractAction';
import { FeatureOptions } from '../features/AbstractFeature';
import ActionExecuter, { ActionExecuterOptions } from '../features/ActionExecuter';
import FeatureInstaller from '../features/FeatureInstaller';
import { FeatureActionResponse, FeatureCode } from '../features/features.types';
import { GlobalEmitter } from '../GlobalEmitter';
import SpyInterface from '../interfaces/SpyInterface';
import ServiceFactory, { Service, ServiceMap } from '../services/ServiceFactory';
import StoreFactory, { StoreCode, CreateStoreOptions, StoreFactoryOptions, StoreMap } from '../stores/StoreFactory';
import { ApiClientFactoryOptions } from '../types/apiClient.types';
import { CliBootOptions, OptionOverrides } from '../types/cli.types';
import WriterFactory from '../writers/WriterFactory';
import CommandFaker from './CommandFaker';
import FeatureFixture, { FeatureFixtureOptions } from './fixtures/FeatureFixture';
import MercuryFixture from './fixtures/MercuryFixture';
import OrganizationFixture from './fixtures/OrganizationFixture';
import PersonFixture from './fixtures/PersonFixture';
import SkillFixture from './fixtures/SkillFixture';
import ViewFixture from './fixtures/ViewFixture';
export default abstract class AbstractCliTest extends AbstractSpruceTest {
protected static cliRoot: string;
protected static homeDir: string;
protected static commandFaker: CommandFaker;
private static _ui;
private static _emitter?;
private static mercuryFixture?;
private static personFixture?;
private static organizationFixture?;
private static skillFixture?;
private static _featureInstaller?;
private static viewFixture?;
private static originalEnv;
private static _writers?;
protected static eventFaker: EventFaker;
protected static beforeAll(): Promise<void>;
protected static beforeEach(): Promise<void>;
protected static afterEach(): Promise<void>;
protected static afterAll(): Promise<void>;
private static cleanTestDirsAndFiles;
private static clearFixtures;
protected static freshTmpDir(): string;
protected static get ui(): SpyInterface;
protected static get emitter(): GlobalEmitter;
protected static set emitter(emitter: GlobalEmitter);
protected static resolveTestPath(...pathAfterTestDirsAndFiles: string[]): string;
protected static Cli(options?: CliBootOptions): Promise<import("../types/cli.types").CliInterface>;
protected static linkLocalPackages(): Promise<void>;
protected static Service<S extends Service>(type: S, cwd?: string): ServiceMap[S];
protected static ServiceFactory(): ServiceFactory;
protected static FeatureFixture(options?: Partial<FeatureFixtureOptions>): FeatureFixture;
protected static getMercuryFixture(): MercuryFixture;
protected static get people(): PersonFixture;
protected static getViewFixture(): ViewFixture;
protected static get writers(): WriterFactory;
private static WriterFactory;
protected static skipInstallSkillPrompts<E extends () => Promise<FeatureActionResponse>>(execute?: E): Promise<E extends undefined ? undefined : FeatureActionResponse>;
protected static getOrganizationFixture(): OrganizationFixture;
protected static getSkillFixture(): SkillFixture;
protected static resolveHashSprucePath(...filePath: string[]): string;
protected static get featureInstaller(): FeatureInstaller;
protected static set featureInstaller(installer: FeatureInstaller);
protected static FeatureInstaller(options?: Partial<FeatureOptions>): FeatureInstaller;
protected static StoreFactory(options?: Partial<StoreFactoryOptions>): StoreFactory;
protected static Store<C extends StoreCode>(code: C, options?: CreateStoreOptions<C>): StoreMap[C];
protected static waitForInput(): Promise<void>;
protected static assertIsFeatureInstalled(code: FeatureCode): Promise<void>;
protected static assertValidActionResponseFiles(results: FeatureActionResponse): Promise<void>;
protected static assertFilePassesTypeChecks(file: string): Promise<void>;
protected static connectToApi(options?: ApiClientFactoryOptions): Promise<import("../types/apiClient.types").ApiClient>;
protected static openInVsCode(options?: {
file?: string;
dir?: string;
timeout?: number;
}): Promise<void>;
protected static openInFinder(options?: {
file?: string;
dir?: string;
timeout?: number;
}): Promise<void>;
protected static log(...args: any[]): void;
protected static Action<Action extends AbstractAction = AbstractAction, F extends FeatureCode = FeatureCode>(featureCode: F, actionCode: string, options?: ExecuterOptions): Action;
protected static ActionExecuter(options?: ExecuterOptions): ActionExecuter;
protected static selectOptionBasedOnLabel(label: string): void;
}
type ExecuterOptions = Partial<ActionExecuterOptions> & {
optionOverrides?: OptionOverrides;
};
export {};