jest-test-gen
Version:
Generator of jest unit test with all imports mocked and tests stub for every class and function exported
95 lines (94 loc) • 2.54 kB
TypeScript
import * as ts from 'typescript';
export interface ParsedReactProp {
name: ts.__String | string;
type: ts.__String | string;
isOptional: boolean;
}
export interface ParsedPropTypePojo {
name: ts.__String | string;
props?: ParsedReactProp[];
}
export interface ParsedReactComponent {
name: ts.__String | string;
isFunctional: boolean;
props?: ParsedReactProp[];
isDefaultExport: boolean;
tsPropTypeName?: ts.__String | string;
}
export interface ParsedClass {
name: ts.__String | string;
methods: ParsedMethod[];
isDefaultExport: boolean;
}
export interface ParsedMethod {
methodName: ts.__String | string;
isAsync: boolean;
isStatic: boolean;
params: ts.__String[];
}
export interface ParsedFunction {
name: ts.__String | string;
isAsync: boolean;
isDefaultExport: boolean;
}
export interface ParsedPojo {
name: ts.__String | string;
methods: ParsedMethod[];
isDefaultExport: boolean;
}
export interface ParsedClassDependency {
name: string;
type?: string;
token?: string;
}
export interface ParsedImport {
path: string;
names: string[];
importText: string;
}
export interface ParsedSourceFile {
imports: ParsedImport[];
exportFunctions: ParsedFunction[];
exportPojos: ParsedPojo[];
exportClass?: ParsedClass;
exportComponents: ParsedReactComponent[];
components: ParsedReactComponent[];
classes: ParsedClass[];
functions: ParsedFunction[];
pojos: ParsedPojo[];
typeDefinitions: ts.TypeAliasDeclaration[];
interfaceDefinitions: ts.InterfaceDeclaration[];
propTypesPojo: ParsedPropTypePojo[];
}
export interface ClassOptions {
declarations: {
name: string;
type: string;
}[];
initializers: {
name?: string;
value: string;
}[];
dependencies: {
name: string;
token: string;
}[];
imports: ParsedImport[];
}
export interface TemplateOptions {
instanceVariableName: string;
templateType: string;
templatePath: string;
}
export interface DependencyHandlerOptions {
variableName: string;
injectionToken?: string;
sourceCode: string;
allImports: ParsedImport[];
quoteSymbol: string;
}
export interface DependencyHandler {
run(result: ClassOptions, dep: ParsedClassDependency, options: DependencyHandlerOptions): void;
test(dep: ParsedClassDependency): boolean;
}
export declare type ParsedSourceObject = ParsedClass | ParsedFunction | ParsedPojo | ParsedReactComponent;