@wp-tester/results 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -8,5 +8,9 @@ import { Report } from "ctrf";
8
8
  export type { Report, Results, Summary, Test, TestStatus, Tool, } from 'ctrf';
9
9
  export { vitestToCTRF } from './parsers/vitest.js';
10
10
  export { mergeReports } from './merge.js';
11
+ export { StreamingReporter, stdoutWriter, createTestFromEvent, type StreamEvent, type TestEvent, type SuiteEvent, type RunEvent, type StreamWriter, type StreamingReporterOptions, } from './streaming.js';
12
+ export { VitestStreamingReporter, createVitestStreamingReporter, } from './vitest-streaming-reporter.js';
13
+ export { TeamCityParser, createTeamCityParserStream, parseTeamCityOutput, } from './teamcity-parser.js';
14
+ export { printSummary } from './summary.js';
11
15
  export declare const EMPTY_REPORT: Report;
12
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,YAAY,EACV,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,EACJ,UAAU,EACV,IAAI,GACL,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,YAAY,EAAE,MAmB1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAE9B,YAAY,EACV,MAAM,EACN,OAAO,EACP,OAAO,EACP,IAAI,EACJ,UAAU,EACV,IAAI,GACL,MAAM,MAAM,CAAC;AAEd,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,wBAAwB,GAC9B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,eAAO,MAAM,YAAY,EAAE,MAmB1B,CAAC"}
package/dist/index.js CHANGED
@@ -6,6 +6,10 @@
6
6
  */
7
7
  export { vitestToCTRF } from './parsers/vitest.js';
8
8
  export { mergeReports } from './merge.js';
9
+ export { StreamingReporter, stdoutWriter, createTestFromEvent, } from './streaming.js';
10
+ export { VitestStreamingReporter, createVitestStreamingReporter, } from './vitest-streaming-reporter.js';
11
+ export { TeamCityParser, createTeamCityParserStream, parseTeamCityOutput, } from './teamcity-parser.js';
12
+ export { printSummary } from './summary.js';
9
13
  export const EMPTY_REPORT = {
10
14
  results: {
11
15
  summary: {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,CAAC,MAAM,YAAY,GAAW;IAClC,OAAO,EAAE;QACP,OAAO,EAAE;YACP,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;YACjB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;YAChB,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;SACT;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,uBAAuB;SAC9B;QACD,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,OAAO;CACrB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GAOpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,YAAY,GAAW;IAClC,OAAO,EAAE;QACP,OAAO,EAAE;YACP,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE;YACjB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;YAChB,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,CAAC;SACT;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,uBAAuB;SAC9B;QACD,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,OAAO;CACrB,CAAC"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Streaming Test Reporter
3
+ *
4
+ * Provides real-time test result output in a uniform format.
5
+ * Works with both Vitest and PHPUnit test runners.
6
+ *
7
+ * Uses a unified state model with full screen rerendering for clean
8
+ * parallel test execution without output interference.
9
+ */
10
+ import type { Test, Report } from "ctrf";
11
+ /**
12
+ * Test event emitted during test execution
13
+ */
14
+ export interface TestEvent {
15
+ type: "test:start" | "test:pass" | "test:fail" | "test:skip" | "test:pending";
16
+ name: string;
17
+ suiteName?: string;
18
+ duration?: number;
19
+ message?: string;
20
+ trace?: string;
21
+ fileId?: string;
22
+ }
23
+ /**
24
+ * Suite event emitted during test execution
25
+ */
26
+ export interface SuiteEvent {
27
+ type: "suite:start" | "suite:end";
28
+ name: string;
29
+ fileId?: string;
30
+ }
31
+ /**
32
+ * File event emitted when a test file starts/ends
33
+ */
34
+ export interface FileEvent {
35
+ type: "file:start" | "file:end";
36
+ fileId: string;
37
+ fileName?: string;
38
+ }
39
+ /**
40
+ * Run event emitted at start/end of test run
41
+ */
42
+ export interface RunEvent {
43
+ type: "run:start" | "run:end";
44
+ toolName?: string;
45
+ report?: Report;
46
+ }
47
+ export type StreamEvent = TestEvent | SuiteEvent | FileEvent | RunEvent;
48
+ /**
49
+ * Output writer interface for streaming results
50
+ */
51
+ export interface StreamWriter {
52
+ write(text: string): void;
53
+ writeLine(text: string): void;
54
+ }
55
+ /**
56
+ * Default stdout writer
57
+ */
58
+ export declare const stdoutWriter: StreamWriter;
59
+ /**
60
+ * Options for StreamingReporter constructor
61
+ */
62
+ export interface StreamingReporterOptions {
63
+ writer?: StreamWriter;
64
+ showRunBoundaries?: boolean;
65
+ showSummary?: boolean;
66
+ enabled?: boolean;
67
+ }
68
+ /**
69
+ * Streaming test reporter for real-time test output
70
+ *
71
+ * Uses a unified state model where all test state is centralized and
72
+ * the entire output is rerendered on each update. This approach:
73
+ * - Eliminates output interference between parallel test runs
74
+ * - Simplifies state management (no per-file buffering)
75
+ * - Maintains dynamic UI with loaders/spinners
76
+ * - Makes the code much easier to understand and maintain
77
+ */
78
+ export declare class StreamingReporter {
79
+ private writer;
80
+ private enabled;
81
+ private showRunBoundaries;
82
+ private showSummary;
83
+ private state;
84
+ private lastOutputLineCount;
85
+ private spinnerFrame;
86
+ private spinnerInterval;
87
+ constructor(options?: StreamingReporterOptions);
88
+ /**
89
+ * Enable or disable run boundaries (header and summary)
90
+ */
91
+ setShowRunBoundaries(show: boolean): void;
92
+ /**
93
+ * Process a stream event
94
+ */
95
+ onEvent(event: StreamEvent): void;
96
+ /**
97
+ * Start the spinner animation
98
+ */
99
+ private startSpinner;
100
+ /**
101
+ * Stop the spinner animation
102
+ */
103
+ private stopSpinner;
104
+ /**
105
+ * Clear the previous output
106
+ */
107
+ private clearPreviousOutput;
108
+ /**
109
+ * Render the current state to output
110
+ */
111
+ private render;
112
+ /**
113
+ * Render a file's tests to output lines
114
+ */
115
+ private renderFile;
116
+ /**
117
+ * Render a suite and its tests
118
+ */
119
+ private renderSuite;
120
+ /**
121
+ * Render a single test
122
+ */
123
+ private renderTest;
124
+ /**
125
+ * Get or create a file state
126
+ */
127
+ private getOrCreateFile;
128
+ /**
129
+ * Find or create a suite in a file
130
+ */
131
+ private getOrCreateSuite;
132
+ /**
133
+ * Called when test run starts
134
+ */
135
+ onRunStart(toolName?: string): void;
136
+ /**
137
+ * Called when test run ends
138
+ */
139
+ onRunEnd(): void;
140
+ /**
141
+ * Called when a test file starts
142
+ */
143
+ onFileStart(fileId: string, fileName?: string): void;
144
+ /**
145
+ * Called when a test file ends
146
+ */
147
+ onFileEnd(_fileId: string): void;
148
+ /**
149
+ * Called when a test suite starts
150
+ */
151
+ onSuiteStart(name: string, fileId?: string): void;
152
+ /**
153
+ * Called when a test suite ends
154
+ */
155
+ onSuiteEnd(name: string, fileId?: string): void;
156
+ /**
157
+ * Called when a test starts
158
+ */
159
+ onTestStart(name: string, suiteName?: string, fileId?: string): void;
160
+ /**
161
+ * Called when a test passes
162
+ */
163
+ onTestPass(name: string, duration: number, suiteName?: string, fileId?: string): void;
164
+ /**
165
+ * Called when a test fails
166
+ */
167
+ onTestFail(name: string, duration: number, message?: string, trace?: string, suiteName?: string, fileId?: string): void;
168
+ /**
169
+ * Called when a test is skipped
170
+ */
171
+ onTestSkip(name: string, reason?: string, suiteName?: string, fileId?: string): void;
172
+ /**
173
+ * Called when a test is pending
174
+ */
175
+ onTestPending(name: string, suiteName?: string, fileId?: string): void;
176
+ /**
177
+ * Print final summary
178
+ */
179
+ private printSummary;
180
+ /**
181
+ * Get the current report in CTRF format
182
+ */
183
+ getReport(): Report;
184
+ /**
185
+ * Get current counts for external tracking
186
+ */
187
+ getCounts(): {
188
+ total: number;
189
+ passed: number;
190
+ failed: number;
191
+ skipped: number;
192
+ };
193
+ }
194
+ /**
195
+ * Create a CTRF Test object from event data
196
+ */
197
+ export declare function createTestFromEvent(event: TestEvent): Test;
198
+ //# sourceMappingURL=streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"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"}