libmodulor
Version:
A TypeScript library to create platform-agnostic applications
71 lines (70 loc) • 4.22 kB
TypeScript
import type { FilePath } from '../dt/index.js';
import type { ServerClientManagerSettings } from '../target/lib/client/ServerClientManager.js';
import type { ServerManager } from '../target/lib/server/ServerManager.js';
import { UCBuilder, type UCDef, type UCInput, type UCName, type UCOPIBase } from '../uc/index.js';
import type { SrcImporter } from '../utils/index.js';
import type { AppTesterConfigurator } from './AppTesterConfigurator.js';
import type { AppTesterCtx, AppTesterUCDRef } from './ctx.js';
import type { AppTesterExec, AppTesterExecArgs, AppTesterExecInput, AppTesterExecOutput } from './exec.js';
import type { AnyAppTesterFlow, AppTesterFlowExec } from './flow.js';
import { SimpleHTMLAppTestReportEmitter } from './impl/SimpleHTMLAppTestReportEmitter.js';
import type { AppDocsEmitter } from './workers/AppDocsEmitter.js';
import { AppTesterCtxInitializer } from './workers/AppTesterCtxInitializer.js';
import { AppFolderChecker } from './workers/checkers/AppFolderChecker.js';
import { AppI18nChecker } from './workers/checkers/AppI18nChecker.js';
import { AppIndexChecker } from './workers/checkers/AppIndexChecker.js';
import { AppManifestChecker } from './workers/checkers/AppManifestChecker.js';
import { UCDefChecker } from './workers/checkers/UCDefChecker.js';
import { UCDefSourcesChecker } from './workers/checkers/UCDefSourcesChecker.js';
import { UCExecutor } from './workers/UCExecutor.js';
export interface AppTesterInitArgs {
appPath: FilePath;
configurator: AppTesterConfigurator;
serverClientSettings: ServerClientManagerSettings;
srcImporter: SrcImporter;
}
export declare class AppTester {
private appDocsEmitter;
private appFolderChecker;
private appI18nChecker;
private appIndexChecker;
private appManifestChecker;
private appTesterCtxInitializer;
private serverManager;
private simpleHTMLAppTestReportEmitter;
private ucBuilder;
private ucDefChecker;
private ucDefSourcesChecker;
private ucExecutor;
private configurator;
private ctx;
/**
* We use a "safe" one to avoid any "infinite loop" while trying to import/resolve a file.
* This can happen in case of circular dependencies for example.
*/
private safeSrcImporter;
private ucds;
private testResults;
private testSummary;
private ucDefSourcesCheckerOutput;
constructor(appDocsEmitter: AppDocsEmitter, appFolderChecker: AppFolderChecker, appI18nChecker: AppI18nChecker, appIndexChecker: AppIndexChecker, appManifestChecker: AppManifestChecker, appTesterCtxInitializer: AppTesterCtxInitializer, serverManager: ServerManager, simpleHTMLAppTestReportEmitter: SimpleHTMLAppTestReportEmitter, ucBuilder: UCBuilder, ucDefChecker: UCDefChecker, ucDefSourcesChecker: UCDefSourcesChecker, ucExecutor: UCExecutor);
checkAppFolder(): Promise<void>;
checkAppI18n(): Promise<void>;
checkAppIndex(): Promise<void>;
checkAppManifest(): Promise<void>;
checkUCDSources(): Promise<void>;
checkUC(ucdRef: AppTesterUCDRef): Promise<void>;
execArgs(ucdRef: AppTesterUCDRef): Promise<AppTesterExecArgs[]>;
execFlow(flow: AnyAppTesterFlow): Promise<AppTesterFlowExec>;
execMonkeyTest<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(ucd: UCDef<I, OPI0, OPI1>, input: NonNullable<I>): Promise<AppTesterExecOutput<I, OPI0, OPI1>>;
execUC<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(input: Omit<AppTesterExecInput<I, OPI0, OPI1>, 'appManifest'>, flow?: AnyAppTesterFlow): Promise<AppTesterExec<I, OPI0, OPI1>>;
finalize(): Promise<void>;
getCtx(): AppTesterCtx;
getUCD<I extends UCInput | undefined = undefined, OPI0 extends UCOPIBase | undefined = undefined, OPI1 extends UCOPIBase | undefined = undefined>(ucName: UCName): UCDef<I, OPI0, OPI1>;
init({ appPath, configurator, serverClientSettings, srcImporter, }: AppTesterInitArgs): Promise<void>;
initForUCExec(): Promise<void>;
private bindI18n;
private bindServerClientSettings;
private initI18n;
private initServer;
}