fern-jest-client
Version:
Jest test reporter client for Fern platform - captures and sends test execution data to fern-reporter
158 lines • 3.78 kB
TypeScript
/**
* Data models for Fern test reporting - compatible with fern-reporter API
* Based on the fern-ginkgo-client models
*/
export interface Tag {
id: number;
name: string;
}
export interface SpecRun {
id: number;
suite_id: number;
spec_description: string;
status: string;
message: string;
tags: Tag[];
start_time: string;
end_time: string;
}
export interface SuiteRun {
id: number;
test_run_id: number;
suite_name: string;
start_time: string;
end_time: string;
spec_runs: SpecRun[];
}
export interface TestRun {
id: number;
test_project_name: string;
test_project_id: string;
test_seed: number;
start_time: string;
end_time: string;
git_branch: string;
git_sha: string;
build_trigger_actor: string;
build_url: string;
client_type: string;
suite_runs: SuiteRun[];
}
export interface CreateTestRunInput extends TestRun {
}
export interface FernClientOptions {
baseUrl?: string;
timeout?: number;
headers?: Record<string, string>;
retries?: number;
retryDelay?: number;
}
export interface FernReporterConfig {
projectId: string;
projectName?: string;
baseUrl?: string;
timeout?: number;
enabled?: boolean;
}
export interface JestTestResult {
ancestorTitles: string[];
duration?: number;
failureDetails: Array<{
message: string;
stack?: string;
}>;
failureMessages: string[];
fullName: string;
invocations?: number;
location?: {
column: number;
line: number;
};
numPassingAsserts: number;
retryReasons?: string[];
status: 'passed' | 'failed' | 'skipped' | 'pending' | 'todo' | 'disabled';
title: string;
}
export interface JestTestSuiteResult {
console?: any;
coverage?: any;
displayName?: {
name: string;
color?: string;
};
endTime: number;
failureMessage?: string;
leaks: boolean;
numFailingTests: number;
numPassingTests: number;
numPendingTests: number;
numTodoTests: number;
openHandles: any[];
perfStats: {
end: number;
runtime: number;
slow: boolean;
start: number;
};
skipped: boolean;
snapshot: {
added: number;
fileDeleted: boolean;
matched: number;
unchecked: number;
uncheckedKeys: string[];
unmatched: number;
updated: number;
};
sourceMaps: Record<string, string>;
startTime: number;
status: 'passed' | 'failed';
testExecError?: any;
testFilePath: string;
testResults: JestTestResult[];
}
export interface JestAggregatedResult {
numFailedTestSuites: number;
numFailedTests: number;
numPassedTestSuites: number;
numPassedTests: number;
numPendingTestSuites: number;
numPendingTests: number;
numRuntimeErrorTestSuites: number;
numTodoTests: number;
numTotalTestSuites: number;
numTotalTests: number;
openHandles: any[];
snapshot: {
added: number;
didUpdate: boolean;
failure: boolean;
filesAdded: number;
filesRemoved: number;
filesRemovedList: string[];
filesUnmatched: number;
filesUpdated: number;
matched: number;
total: number;
unchecked: number;
uncheckedKeysByFile: any[];
unmatched: number;
updated: number;
};
startTime: number;
success: boolean;
testResults: JestTestSuiteResult[];
wasInterrupted: boolean;
}
export interface GitInfo {
branch: string;
sha: string;
repoPath?: string;
}
export interface CIInfo {
actor: string;
buildUrl: string;
isCI: boolean;
provider?: string;
}
//# sourceMappingURL=index.d.ts.map