@terra-symposium/standards-quality 0.7.0 → 0.8.1

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.
@@ -0,0 +1,107 @@
1
+ /**
2
+ * packages/quality/src/playwright-reporter.ts
3
+ * Structural Playwright reporter for per-test progress and final results.
4
+ */
5
+ /**
6
+ * Status values reported by Playwright for an individual test attempt.
7
+ */
8
+ type PlaywrightStatus = 'passed' | 'failed' | 'timedOut' | 'skipped' | 'interrupted';
9
+ /**
10
+ * Result data retained for one Playwright test attempt.
11
+ */
12
+ type PlaywrightTestResult = {
13
+ status: PlaywrightStatus;
14
+ retry: number;
15
+ error?: {
16
+ message?: string;
17
+ };
18
+ };
19
+ /**
20
+ * Structural test data needed to report progress without importing Playwright.
21
+ */
22
+ type PlaywrightTestCase = {
23
+ title: string;
24
+ titlePath?: () => string[];
25
+ expectedStatus?: PlaywrightStatus;
26
+ retries?: number;
27
+ results?: PlaywrightTestResult[];
28
+ outcome?: () => 'skipped' | 'expected' | 'unexpected' | 'flaky';
29
+ };
30
+ /**
31
+ * Minimal Playwright suite contract used to enumerate discovered tests.
32
+ */
33
+ type PlaywrightSuite = {
34
+ allTests(): PlaywrightTestCase[];
35
+ };
36
+ /**
37
+ * Final run status passed to the Playwright reporter's `onEnd` callback.
38
+ */
39
+ type PlaywrightFullResult = {
40
+ status: 'passed' | 'failed' | 'timedout' | 'interrupted';
41
+ };
42
+ /**
43
+ * Optional output sinks for the Playwright progress reporter.
44
+ */
45
+ export type QualityPlaywrightReporterOptions = {
46
+ write?: (text: string) => void;
47
+ writeProgress?: (text: string) => void;
48
+ };
49
+ /**
50
+ * Playwright reporter that counts tests once and prints final results in
51
+ * discovery order. Playwright is structural here and remains a peer runtime
52
+ * supplied by the consuming project.
53
+ */
54
+ export default class QualityPlaywrightReporter {
55
+ private readonly write;
56
+ private readonly writeProgress;
57
+ private tests;
58
+ private readonly started;
59
+ private readonly finished;
60
+ private readonly lastResults;
61
+ /**
62
+ * Creates a reporter with optional output sinks.
63
+ *
64
+ * @param opts Optional sinks for output and progress.
65
+ */
66
+ constructor(opts?: QualityPlaywrightReporterOptions);
67
+ /**
68
+ * Initializes progress from the discovered test cases.
69
+ *
70
+ * @param _config Playwright's resolved configuration.
71
+ * @param suite Root test suite supplied by Playwright.
72
+ */
73
+ onBegin(_config: unknown, suite: PlaywrightSuite): void;
74
+ /**
75
+ * Records that a test has started; retries reuse the same test identity.
76
+ *
77
+ * @param test Playwright test case.
78
+ */
79
+ onTestBegin(test: PlaywrightTestCase): void;
80
+ /**
81
+ * Stores the latest attempt and advances progress only when no retry remains.
82
+ *
83
+ * @param test Playwright test case.
84
+ * @param result Result for this attempt.
85
+ */
86
+ onTestEnd(test: PlaywrightTestCase, result: PlaywrightTestResult): void;
87
+ /**
88
+ * Resolves tests not observed in onTestEnd, then emits one ordered result and summary.
89
+ *
90
+ * @param result Final Playwright run result.
91
+ */
92
+ onEnd(result: PlaywrightFullResult): void;
93
+ /**
94
+ * Confirms this reporter owns terminal output so Playwright does not add another reporter.
95
+ *
96
+ * @return True because this reporter writes result lines and a summary.
97
+ */
98
+ printsToStdio(): boolean;
99
+ /**
100
+ * Adds a test to the completed set once and updates the shared progress bar.
101
+ *
102
+ * @param test Completed Playwright test case.
103
+ */
104
+ private finish;
105
+ }
106
+ export {};
107
+ //# sourceMappingURL=playwright-reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright-reporter.d.ts","sourceRoot":"","sources":["../src/playwright-reporter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH;;GAEG;AACH,KAAK,gBAAgB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;AAKrF;;GAEG;AACH,KAAK,oBAAoB,GAAG;IAAE,MAAM,EAAE,gBAAgB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AACtG;;GAEG;AACH,KAAK,kBAAkB,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,CAAC;CAChE,CAAC;AACF;;GAEG;AACH,KAAK,eAAe,GAAG;IAAE,QAAQ,IAAI,kBAAkB,EAAE,CAAA;CAAE,CAAC;AAC5D;;GAEG;AACH,KAAK,oBAAoB,GAAG;IAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,aAAa,CAAA;CAAE,CAAC;AACzF;;GAEG;AACH,MAAM,MAAM,gCAAgC,GAAG;IAAE,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,CAAC;AAwC1H;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,yBAAyB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAC/C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,KAAK,CAA4B;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiC;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAuD;IAEnF;;;;OAIG;gBACS,IAAI,GAAE,gCAAqC;IAKvD;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IAKvD;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI;IAI3C;;;;;OAKG;IACH,SAAS,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAMvE;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAazC;;;;OAIG;IACH,aAAa,IAAI,OAAO;IAIxB;;;;OAIG;IACH,OAAO,CAAC,MAAM;CAKd"}
@@ -0,0 +1,138 @@
1
+ /**
2
+ * packages/quality/src/playwright-reporter.ts
3
+ * Structural Playwright reporter for per-test progress and final results.
4
+ */
5
+ /*//////////////////////////////////////////////////
6
+ IMPORTS
7
+ //////////////////////////////////////////////////*/
8
+ // API
9
+ import { qualityProgress } from './progress.js';
10
+ /*//////////////////////////////////////////////////
11
+ HELPERS
12
+ //////////////////////////////////////////////////*/
13
+ /**
14
+ * Resolves a completed Playwright test to one of the supported case statuses.
15
+ *
16
+ * @param test Playwright test case.
17
+ * @param result Last result recorded for the test, if it ran.
18
+ *
19
+ * @return Normalized pass, fail, or skip status.
20
+ */
21
+ function qualityStatus(test, result) {
22
+ if (!result || result.status === 'skipped' || test.expectedStatus === 'skipped')
23
+ return 'SKIP';
24
+ const outcome = test.outcome?.();
25
+ if (outcome === 'skipped')
26
+ return 'SKIP';
27
+ if (outcome === 'expected' || outcome === 'flaky')
28
+ return 'PASS';
29
+ if (outcome === 'unexpected')
30
+ return 'FAIL';
31
+ if (result.status === (test.expectedStatus ?? 'passed'))
32
+ return 'PASS';
33
+ return result.status === 'passed' || result.status === 'failed' || result.status === 'timedOut' || result.status === 'interrupted' ? 'FAIL' : 'SKIP';
34
+ }
35
+ /**
36
+ * Returns a stable display name for a test, including its suite path when present.
37
+ *
38
+ * @param test Playwright test case.
39
+ *
40
+ * @return A deterministic display name.
41
+ */
42
+ function testName(test) {
43
+ const titlePath = test.titlePath?.();
44
+ return titlePath?.length ? titlePath.join(' › ') : test.title;
45
+ }
46
+ /*//////////////////////////////////////////////////
47
+ REPORTER
48
+ //////////////////////////////////////////////////*/
49
+ /**
50
+ * Playwright reporter that counts tests once and prints final results in
51
+ * discovery order. Playwright is structural here and remains a peer runtime
52
+ * supplied by the consuming project.
53
+ */
54
+ export default class QualityPlaywrightReporter {
55
+ write;
56
+ writeProgress;
57
+ tests = [];
58
+ started = new Set();
59
+ finished = new Set();
60
+ lastResults = new Map();
61
+ /**
62
+ * Creates a reporter with optional output sinks.
63
+ *
64
+ * @param opts Optional sinks for output and progress.
65
+ */
66
+ constructor(opts = {}) {
67
+ this.write = opts.write ?? ((text) => void process.stdout.write(text));
68
+ this.writeProgress = opts.writeProgress ?? ((text) => void process.stderr.write(text));
69
+ }
70
+ /**
71
+ * Initializes progress from the discovered test cases.
72
+ *
73
+ * @param _config Playwright's resolved configuration.
74
+ * @param suite Root test suite supplied by Playwright.
75
+ */
76
+ onBegin(_config, suite) {
77
+ this.tests = suite.allTests();
78
+ qualityProgress('Cases', 0, this.tests.length, this.writeProgress);
79
+ }
80
+ /**
81
+ * Records that a test has started; retries reuse the same test identity.
82
+ *
83
+ * @param test Playwright test case.
84
+ */
85
+ onTestBegin(test) {
86
+ this.started.add(test);
87
+ }
88
+ /**
89
+ * Stores the latest attempt and advances progress only when no retry remains.
90
+ *
91
+ * @param test Playwright test case.
92
+ * @param result Result for this attempt.
93
+ */
94
+ onTestEnd(test, result) {
95
+ this.lastResults.set(test, result);
96
+ const canRetry = (result.status === 'failed' || result.status === 'timedOut') && result.retry < (test.retries ?? 0) && test.expectedStatus !== result.status;
97
+ if (!canRetry)
98
+ this.finish(test);
99
+ }
100
+ /**
101
+ * Resolves tests not observed in onTestEnd, then emits one ordered result and summary.
102
+ *
103
+ * @param result Final Playwright run result.
104
+ */
105
+ onEnd(result) {
106
+ const counts = { PASS: 0, FAIL: 0, SKIP: 0 };
107
+ for (const test of this.tests) {
108
+ const latestResult = this.lastResults.get(test) ?? test.results?.at(-1);
109
+ const status = this.started.has(test) && !latestResult ? 'FAIL' : qualityStatus(test, latestResult);
110
+ counts[status] += 1;
111
+ const msg = status === 'FAIL' ? latestResult?.error?.message?.replace(/\s+/gu, ' ').trim() : undefined;
112
+ if (status !== 'PASS')
113
+ this.write(` [${status}] ${testName(test)}${msg ? ` — ${msg}` : ''}\n`);
114
+ this.finish(test);
115
+ }
116
+ this.write(`Playwright ${result.status}: ${counts.PASS} passed, ${counts.FAIL} failed, ${counts.SKIP} skipped\n`);
117
+ }
118
+ /**
119
+ * Confirms this reporter owns terminal output so Playwright does not add another reporter.
120
+ *
121
+ * @return True because this reporter writes result lines and a summary.
122
+ */
123
+ printsToStdio() {
124
+ return true;
125
+ }
126
+ /**
127
+ * Adds a test to the completed set once and updates the shared progress bar.
128
+ *
129
+ * @param test Completed Playwright test case.
130
+ */
131
+ finish(test) {
132
+ if (this.finished.has(test))
133
+ return;
134
+ this.finished.add(test);
135
+ qualityProgress('Cases', this.finished.size, this.tests.length, this.writeProgress);
136
+ }
137
+ }
138
+ //# sourceMappingURL=playwright-reporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playwright-reporter.js","sourceRoot":"","sources":["../src/playwright-reporter.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,11 @@
9
9
  * @param curr Number of completed units.
10
10
  * @param total Total units, or zero when there is no work to process.
11
11
  * @param write Optional output writer used by tests; production writes to standard error.
12
+ * @param opts Optional line-finalization policy for streams with late discoveries.
12
13
  *
13
- * @return Nothing; the progress bar is written to standard error and finalized with one newline.
14
+ * @return Nothing; the progress bar is written to standard error and may end with a newline.
14
15
  */
15
- export declare function qualityProgress(label: string, curr: number, total: number, write?: (text: string) => void): void;
16
+ export declare function qualityProgress(label: string, curr: number, total: number, write?: (text: string) => void, opts?: {
17
+ finalize?: boolean;
18
+ }): void;
16
19
  //# sourceMappingURL=progress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAgD,GAAG,IAAI,CAO3J"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAgD,EAAE,IAAI,GAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAQ9L"}
package/dist/progress.js CHANGED
@@ -16,15 +16,17 @@ HELPERS
16
16
  * @param curr Number of completed units.
17
17
  * @param total Total units, or zero when there is no work to process.
18
18
  * @param write Optional output writer used by tests; production writes to standard error.
19
+ * @param opts Optional line-finalization policy for streams with late discoveries.
19
20
  *
20
- * @return Nothing; the progress bar is written to standard error and finalized with one newline.
21
+ * @return Nothing; the progress bar is written to standard error and may end with a newline.
21
22
  */
22
- export function qualityProgress(label, curr, total, write = (text) => void process.stderr.write(text)) {
23
+ export function qualityProgress(label, curr, total, write = (text) => void process.stderr.write(text), opts = {}) {
23
24
  const sTotal = Number.isFinite(total) ? Math.max(0, Math.floor(total)) : 0;
24
25
  const completed = sTotal ? Math.min(Math.max(Math.floor(curr), 0), sTotal) : 0;
25
26
  const fraction = sTotal ? completed / sTotal : 1;
26
27
  const filled = Math.round(fraction * PROGRESS_BAR_WIDTH);
27
- const line = ` ${label} [${'='.repeat(filled)}${' '.repeat(PROGRESS_BAR_WIDTH - filled)}] ${completed}/${sTotal}`;
28
- write(`\r${line}${completed >= sTotal ? '\n' : ''}`);
28
+ const line = ` ${label} [${'█'.repeat(filled)}${'░'.repeat(PROGRESS_BAR_WIDTH - filled)}] ${completed}/${sTotal}`;
29
+ const finalize = opts.finalize ?? completed >= sTotal;
30
+ write(`\r${line}${finalize ? '\n' : ''}`);
29
31
  }
30
32
  //# sourceMappingURL=progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;oDAEoD;AAEpD,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B;;oDAEoD;AAEpD;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,QAAgC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IACpJ,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,kBAAkB,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,KAAK,KAAK,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,KAAK,SAAS,IAAI,MAAM,EAAE,CAAC;IACnH,KAAK,CAAC,KAAK,IAAI,GAAG,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;oDAEoD;AAEpD,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B;;oDAEoD;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,IAAY,EAAE,KAAa,EAAE,QAAgC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAA+B,EAAE;IACvL,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3E,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,kBAAkB,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,KAAK,KAAK,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,KAAK,SAAS,IAAI,MAAM,EAAE,CAAC;IACnH,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,IAAI,MAAM,CAAC;IACtD,KAAK,CAAC,KAAK,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}