UNPKG

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
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;