/// import { Writable } from 'stream'; import InsertionLog from '../insertion_log'; import { TestPath } from '../test_path'; import { MessageWithSlowness } from './message'; import Reporter from './reporter'; export type InsertionLogLike = Pick; /** * SpecProgress is a reporter that emits the progress of tests while they run * to a given stream. It does not print any test output other than the list of * test names and their results coded as checkmarks or crosses. It does not * print a summary of how the tests went at the end; for this reason it is * typically used together with some other summary reporter. * * SpecProgress uses InsertionLog to print progress of tests as they run in * parallel. This means that the output will be borked unless the stream is * printed to a terminal that supports overwriting already written text. If * the output does not support this, the Serializer reporter can be used to * print tests as if they were run serially. */ export default class SpecProgress implements Reporter { _log: InsertionLogLike; _disableBreadcrumbs: boolean; _lastLineIdForSuite: Map; _isUnstable: Set; _testStartTime: Map; _stdio: Map; constructor(streams: { stdout: Writable; disableBreadcrumbs?: boolean; }, insertionLogFactory?: (stdout: Writable) => InsertionLogLike); private makePipedStream; gotMessage(testPath: TestPath, message: MessageWithSlowness, time: Date): void; }