@gitlab/jest-metrics-exporter 0.0.5 → 0.2.0

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/README.md CHANGED
@@ -61,17 +61,18 @@ Options can be passed via the reporter-options object (second element of the
61
61
  tuple in `reporters`) or via environment variables. Explicit options always
62
62
  take precedence over the corresponding environment variable.
63
63
 
64
- | Option | Env var | Description |
65
- | -------------------- | ----------------------------- | ----------------------------------------------------------------- |
66
- | `runType` | `GLCI_TEST_METRICS_RUN_TYPE` | Suite name (falls back to `CI_JOB_NAME` or `"unknown"`) |
67
- | `observerUrl` | `GLCI_OBSERVER_URL` | Observer service base URL |
68
- | `observerToken` | `GLCI_OBSERVER_AUTH_TOKEN` | Auth token sent as `X-Gitlab-Token` |
69
- | `specFilePathPrefix` | _(none)_ | Prepended to file paths (useful for monorepos) |
70
- | `extraMetadataKeys` | _(none)_ | Reserved; no-op until per-test metadata tagging lands |
71
- | `skipRecord` | _(none)_ | `(testCase) => boolean`; return `true` to drop the record |
72
- | `testRetried` | _(none)_ | `(testCase) => boolean`; return `true` if this run was a retry |
73
- | `customMetrics` | _(none)_ | `(testCase) => object`; merged into every metric record |
74
- | `logger` | _(none)_ | Logger-like object with `debug`/`info`/`warn`/`error` methods |
64
+ | Option | Env var | Description |
65
+ | -------------------- | ----------------------------- | -------------------------------------------------------------------------- |
66
+ | `runType` | `GLCI_TEST_METRICS_RUN_TYPE` | Suite name (falls back to `testLevel`, then `CI_JOB_NAME`, or `"unknown"`) |
67
+ | `testLevel` | `GLCI_TEST_METRICS_TEST_LEVEL`| Suite-wide test level / tier (e.g. `unit`, `integration`) |
68
+ | `observerUrl` | `GLCI_OBSERVER_URL` | Observer service base URL |
69
+ | `observerToken` | `GLCI_OBSERVER_AUTH_TOKEN` | Auth token sent as `X-Gitlab-Token` |
70
+ | `specFilePathPrefix` | _(none)_ | Prepended to file paths (useful for monorepos) |
71
+ | `extraMetadataKeys` | _(none)_ | Magic-comment keys forwarded verbatim into the metric record (see below) |
72
+ | `skipRecord` | _(none)_ | `(testCase) => boolean`; return `true` to drop the record |
73
+ | `testRetried` | _(none)_ | `(testCase) => boolean`; return `true` if this run was a retry |
74
+ | `customMetrics` | _(none)_ | `(testCase) => object`; merged into every metric record |
75
+ | `logger` | _(none)_ | Logger-like object with `debug`/`info`/`warn`/`error` methods |
75
76
 
76
77
  Two control-flow variables gate whether the reporter activates at all:
77
78
 
@@ -90,6 +91,50 @@ The reporter is a no-op (i.e. does nothing, never crashes the run) unless
90
91
  - `observerUrl` and `observerToken` are both resolved (from options or env).
91
92
  The reporter logs a **warning** in this case.
92
93
 
94
+ ## Magic comments
95
+
96
+ You can annotate individual tests (or whole `describe` blocks) with
97
+ `// gitlab:key=value` comments placed directly above the call:
98
+
99
+ ```js
100
+ // gitlab:feature_category=source_code_management
101
+ describe('Push branch', () => {
102
+ // gitlab:quarantine_issue_url=https://gitlab.com/gitlab-org/gitlab/-/issues/123
103
+ it.skip('handles fast-forward push', () => {
104
+ // ...
105
+ });
106
+ });
107
+ ```
108
+
109
+ The following annotations are applied automatically:
110
+
111
+ - `feature_category` overrides the default `"unknown"` on the metric record.
112
+ - `quarantine_issue_url` populates the matching field; the test is also
113
+ marked `quarantined: true` only when its status is `skipped` or `pending`.
114
+ A failing test in quarantine keeps `quarantined: false` — the field is
115
+ meant to track "currently skipped because of an open quarantine issue",
116
+ matching the Observer's documented schema.
117
+
118
+ Any additional annotation key (e.g. `owner`, `priority`) is forwarded
119
+ verbatim only when the key is listed in `extraMetadataKeys`:
120
+
121
+ ```js
122
+ ['@gitlab/jest-metrics-exporter', {
123
+ extraMetadataKeys: ['owner', 'priority'],
124
+ }]
125
+ ```
126
+
127
+ Rules:
128
+
129
+ - Both `// gitlab:key=value` and `// gitlab:key: value` are accepted.
130
+ - Annotations must be **contiguous** with the test or `describe` they
131
+ belong to — a blank line (or any non-comment statement) between the
132
+ comment and the call breaks the attachment. Plain `// regular comments`
133
+ between the annotation and the call are tolerated and do not detach
134
+ it, matching the way Go's doc-comment groups work.
135
+ - Annotations on an enclosing `describe` propagate to nested tests; a
136
+ matching key on an inner block (or `customMetrics`) overrides them.
137
+
93
138
  ## Development
94
139
 
95
140
  ```bash
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Parses `// gitlab:key=value` magic comments out of Jest spec files and
3
+ * resolves them per test location.
4
+ *
5
+ * The parser is line- and indent-based by design: it depends on no external
6
+ * AST tooling (keeping the runtime dep surface near-zero per AGENTS.md) and
7
+ * mirrors the behaviour of the Go formatter's `parser` package as closely
8
+ * as it can without a real parser.
9
+ *
10
+ * Resolution rules:
11
+ *
12
+ * - An annotation comment `// gitlab:key=value` (or `// gitlab:key: value`)
13
+ * attaches to the *next* `describe(`/`it(`/`test(` block, but only when
14
+ * the annotation comment is contiguous with that block. The upward scan
15
+ * walks across any number of line comments — non-`gitlab:` ones are
16
+ * skipped but do *not* break the attachment. Only a blank line (or any
17
+ * non-comment statement) detaches the annotation. This matches the
18
+ * Go formatter's doc-comment-group semantics.
19
+ * - Annotations on `describe(...)` propagate to every test inside it.
20
+ * - Annotations on an inner block (test or nested describe) override
21
+ * annotations from an outer describe with the same key.
22
+ *
23
+ /* Failures are non-fatal: a missing or unreadable file is cached as an
24
+ * empty `ParsedFile`, so every subsequent lookup returns `{}` without
25
+ * re-touching the filesystem. */
26
+ export declare class AnnotationResolver {
27
+ private readonly cache;
28
+ lookup(filePath: string, line: number): Record<string, string>;
29
+ private parse;
30
+ }
31
+ //# sourceMappingURL=annotations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.d.ts","sourceRoot":"","sources":["../src/annotations.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;iCAwBiC;AACjC,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IAEvD,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI9D,OAAO,CAAC,KAAK;CAcd"}
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AnnotationResolver = void 0;
7
+ const node_fs_1 = __importDefault(require("node:fs"));
8
+ /**
9
+ * Parses `// gitlab:key=value` magic comments out of Jest spec files and
10
+ * resolves them per test location.
11
+ *
12
+ * The parser is line- and indent-based by design: it depends on no external
13
+ * AST tooling (keeping the runtime dep surface near-zero per AGENTS.md) and
14
+ * mirrors the behaviour of the Go formatter's `parser` package as closely
15
+ * as it can without a real parser.
16
+ *
17
+ * Resolution rules:
18
+ *
19
+ * - An annotation comment `// gitlab:key=value` (or `// gitlab:key: value`)
20
+ * attaches to the *next* `describe(`/`it(`/`test(` block, but only when
21
+ * the annotation comment is contiguous with that block. The upward scan
22
+ * walks across any number of line comments — non-`gitlab:` ones are
23
+ * skipped but do *not* break the attachment. Only a blank line (or any
24
+ * non-comment statement) detaches the annotation. This matches the
25
+ * Go formatter's doc-comment-group semantics.
26
+ * - Annotations on `describe(...)` propagate to every test inside it.
27
+ * - Annotations on an inner block (test or nested describe) override
28
+ * annotations from an outer describe with the same key.
29
+ *
30
+ /* Failures are non-fatal: a missing or unreadable file is cached as an
31
+ * empty `ParsedFile`, so every subsequent lookup returns `{}` without
32
+ * re-touching the filesystem. */
33
+ class AnnotationResolver {
34
+ cache = new Map();
35
+ lookup(filePath, line) {
36
+ return this.parse(filePath).lookup(line);
37
+ }
38
+ parse(filePath) {
39
+ const cached = this.cache.get(filePath);
40
+ if (cached)
41
+ return cached;
42
+ let parsed;
43
+ try {
44
+ parsed = parseSource(node_fs_1.default.readFileSync(filePath, 'utf8'));
45
+ }
46
+ catch {
47
+ // Cache an empty result so unreadable files don't get hit repeatedly.
48
+ parsed = EMPTY_PARSED_FILE;
49
+ }
50
+ this.cache.set(filePath, parsed);
51
+ return parsed;
52
+ }
53
+ }
54
+ exports.AnnotationResolver = AnnotationResolver;
55
+ class ParsedFile {
56
+ blocks;
57
+ constructor(blocks) {
58
+ this.blocks = blocks;
59
+ }
60
+ static empty() {
61
+ return new ParsedFile([]);
62
+ }
63
+ lookup(line) {
64
+ const target = this.blocks.find((b) => b.line === line && b.kind === 'test');
65
+ if (!target)
66
+ return {};
67
+ // Walk preceding blocks in document order, maintaining a stack keyed by
68
+ // indentation. Each describe pushes a frame; deeper blocks pop frames
69
+ // until the stack top's indent is strictly less than the new block's.
70
+ const stack = [];
71
+ for (const b of this.blocks) {
72
+ if (b.line >= target.line)
73
+ break;
74
+ while (stack.length > 0) {
75
+ const top = stack[stack.length - 1];
76
+ if (top.indent < b.indent)
77
+ break;
78
+ stack.pop();
79
+ }
80
+ if (b.kind === 'describe')
81
+ stack.push(b);
82
+ }
83
+ // Drop describes that don't enclose the target (target.indent must be
84
+ // strictly greater than every enclosing describe's indent).
85
+ const enclosing = stack.filter((d) => d.indent < target.indent);
86
+ const merged = {};
87
+ for (const d of enclosing)
88
+ Object.assign(merged, d.own);
89
+ Object.assign(merged, target.own);
90
+ return merged;
91
+ }
92
+ }
93
+ const EMPTY_PARSED_FILE = ParsedFile.empty();
94
+ const ANNOTATION_RE = /^\s*\/\/\s*gitlab:(.+)$/;
95
+ const LINE_COMMENT_RE = /^\s*\/\//;
96
+ const BLOCK_RE = /^(\s*)(?:(describe|fdescribe|xdescribe)|(test|it|fit|xit|xtest))(?:\.[A-Za-z_]\w*)*\s*(?:<[^>]*>)?\s*\(/;
97
+ function parseSource(source) {
98
+ const lines = source.split(/\r?\n/);
99
+ const blocks = [];
100
+ for (let i = 0; i < lines.length; i++) {
101
+ const line = lines[i] ?? '';
102
+ const match = BLOCK_RE.exec(line);
103
+ if (!match)
104
+ continue;
105
+ const indent = (match[1] ?? '').length;
106
+ const kind = match[2] ? 'describe' : 'test';
107
+ const own = collectAnnotationsAbove(lines, i);
108
+ blocks.push({ line: i + 1, indent, kind, own });
109
+ }
110
+ return new ParsedFile(blocks);
111
+ }
112
+ function collectAnnotationsAbove(lines, blockIndex) {
113
+ const annotations = [];
114
+ for (let i = blockIndex - 1; i >= 0; i--) {
115
+ const line = lines[i] ?? '';
116
+ if (!LINE_COMMENT_RE.test(line))
117
+ break;
118
+ const m = ANNOTATION_RE.exec(line);
119
+ if (!m)
120
+ continue;
121
+ const kv = splitKV(m[1] ?? '');
122
+ if (kv)
123
+ annotations.push(kv);
124
+ }
125
+ // We walked upward, so reverse to keep source order (lower line wins on
126
+ // duplicate keys, matching the file's reading order).
127
+ annotations.reverse();
128
+ const out = {};
129
+ for (const [k, v] of annotations)
130
+ out[k] = v;
131
+ return out;
132
+ }
133
+ function splitKV(rest) {
134
+ // Accept both `key=value` and `key: value`. First separator wins.
135
+ const trimmed = rest.trim();
136
+ const match = /^([^=:]+?)\s*[=:]\s*(.*)$/.exec(trimmed);
137
+ if (!match)
138
+ return undefined;
139
+ const key = (match[1] ?? '').trim();
140
+ const value = (match[2] ?? '').trim();
141
+ if (!key)
142
+ return undefined;
143
+ return [key, value];
144
+ }
145
+ //# sourceMappingURL=annotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../src/annotations.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAMvE,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAE9C,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAgBtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAmB1E"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAMvE,eAAO,MAAM,UAAU,sBAAsB,CAAC;AAE9C,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAiBtE;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,GAAG,gBAAgB,CAmB1E"}
package/dist/config.js CHANGED
@@ -10,6 +10,7 @@ exports.LOG_PREFIX = '[MetricsExporter]';
10
10
  function resolveConfig(options) {
11
11
  return {
12
12
  runType: options.runType ?? '',
13
+ testLevel: options.testLevel ?? process.env.GLCI_TEST_METRICS_TEST_LEVEL ?? '',
13
14
  observerUrl: options.observerUrl ?? process.env.GLCI_OBSERVER_URL ?? '',
14
15
  observerToken: options.observerToken ?? process.env.GLCI_OBSERVER_AUTH_TOKEN ?? '',
15
16
  specFilePathPrefix: options.specFilePathPrefix ?? '',
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAQA,sCAgBC;AAYD,8CAmBC;AArDD,MAAM,mBAAmB,GAAG,GAAY,EAAE,CAAC,KAAK,CAAC;AACjD,MAAM,oBAAoB,GAAG,GAAY,EAAE,CAAC,KAAK,CAAC;AAClD,MAAM,sBAAsB,GAAG,GAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAEtD,QAAA,UAAU,GAAG,mBAAmB,CAAC;AAE9C,SAAgB,aAAa,CAAC,OAAwB;IACpD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;QACvE,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;QAClF,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,EAAE;QACpD,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;QAC5F,UAAU,EAAE,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB;QAC/F,WAAW,EACT,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB;QACxF,aAAa,EACX,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU;YACzC,CAAC,CAAC,OAAO,CAAC,aAAa;YACvB,CAAC,CAAC,sBAAsB;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE;KAC1C,CAAC;AACJ,CAAC;AAMD;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,MAAsB;IACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,OAAO;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAEhF,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,GAAG,kBAAU,sHAAsH,CACpI,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,GAAG,kBAAU,sIAAsI,CACpJ,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,aAAa;IACpB,OAAO;QACL,KAAK,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAChD,IAAI,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9C,IAAI,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9C,KAAK,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;KACjD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAQA,sCAiBC;AAYD,8CAmBC;AAtDD,MAAM,mBAAmB,GAAG,GAAY,EAAE,CAAC,KAAK,CAAC;AACjD,MAAM,oBAAoB,GAAG,GAAY,EAAE,CAAC,KAAK,CAAC;AAClD,MAAM,sBAAsB,GAAG,GAA4B,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAEtD,QAAA,UAAU,GAAG,mBAAmB,CAAC;AAE9C,SAAgB,aAAa,CAAC,OAAwB;IACpD,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,EAAE;QAC9E,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;QACvE,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,EAAE;QAClF,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,IAAI,EAAE;QACpD,iBAAiB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;QAC5F,UAAU,EAAE,OAAO,OAAO,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,mBAAmB;QAC/F,WAAW,EACT,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,oBAAoB;QACxF,aAAa,EACX,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU;YACzC,CAAC,CAAC,OAAO,CAAC,aAAa;YACvB,CAAC,CAAC,sBAAsB;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa,EAAE;KAC1C,CAAC;AACJ,CAAC;AAMD;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,MAAsB;IACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,OAAO;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAEhF,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,GAAG,kBAAU,sHAAsH,CACpI,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,GAAG,kBAAU,sIAAsI,CACpJ,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,SAAS,aAAa;IACpB,OAAO;QACL,KAAK,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QAChD,IAAI,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9C,IAAI,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9C,KAAK,EAAE,CAAC,GAAW,EAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;KACjD,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ declare namespace JestMetricsReporter {
11
11
  type SkipRecordFn = SkipRecordFnImpl;
12
12
  type TestRetriedFn = TestRetriedFnImpl;
13
13
  type CustomMetricsFn = CustomMetricsFnImpl;
14
- const VERSION: "0.0.5";
14
+ const VERSION: "0.2.0";
15
15
  }
16
16
  export = JestMetricsReporter;
17
17
  //# sourceMappingURL=index.d.ts.map
package/dist/metric.d.ts CHANGED
@@ -9,5 +9,5 @@ import type { MetricRecord, ResolvedConfig } from './types';
9
9
  */
10
10
  export declare function computeTimestamp(): string;
11
11
  export declare function buildMetricsFromAggregate(aggregated: Pick<AggregatedResult, 'testResults'>, config: ResolvedConfig, timestamp: string): MetricRecord[];
12
- export declare function buildMetric(testCase: AssertionResult, testFilePath: string, timestamp: string, config: ResolvedConfig): MetricRecord;
12
+ export declare function buildMetric(testCase: AssertionResult, testFilePath: string, timestamp: string, config: ResolvedConfig, annotations?: Record<string, string>): MetricRecord;
13
13
  //# sourceMappingURL=metric.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"metric.d.ts","sourceRoot":"","sources":["../src/metric.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAc,MAAM,mBAAmB,CAAC;AAGvF,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAiB5D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,EACjD,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,GAChB,YAAY,EAAE,CAShB;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,GACrB,YAAY,CAuCd"}
1
+ {"version":3,"file":"metric.d.ts","sourceRoot":"","sources":["../src/metric.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAc,MAAM,mBAAmB,CAAC;AAIvF,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAiB5D;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,EACjD,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,GAChB,YAAY,EAAE,CAYhB;AAYD,wBAAgB,WAAW,CACzB,QAAQ,EAAE,eAAe,EACzB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,EACtB,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GACvC,YAAY,CA2Cd"}
package/dist/metric.js CHANGED
@@ -8,6 +8,7 @@ exports.buildMetricsFromAggregate = buildMetricsFromAggregate;
8
8
  exports.buildMetric = buildMetric;
9
9
  const node_crypto_1 = __importDefault(require("node:crypto"));
10
10
  const node_path_1 = __importDefault(require("node:path"));
11
+ const annotations_1 = require("./annotations");
11
12
  const env_1 = require("./env");
12
13
  const pipeline_1 = require("./pipeline");
13
14
  const JEST_PARALLEL_SUFFIX = / \d{1,2}\/\d{1,2}$/;
@@ -37,16 +38,25 @@ function computeTimestamp() {
37
38
  }
38
39
  function buildMetricsFromAggregate(aggregated, config, timestamp) {
39
40
  const records = [];
41
+ const resolver = new annotations_1.AnnotationResolver();
40
42
  for (const fileResult of aggregated.testResults) {
43
+ const filePath = testFilePathOf(fileResult);
41
44
  for (const testCase of fileResult.testResults) {
42
45
  if (config.skipRecord(testCase))
43
46
  continue;
44
- records.push(buildMetric(testCase, testFilePathOf(fileResult), timestamp, config));
47
+ const annotations = annotationsFor(resolver, filePath, testCase);
48
+ records.push(buildMetric(testCase, filePath, timestamp, config, annotations));
45
49
  }
46
50
  }
47
51
  return records;
48
52
  }
49
- function buildMetric(testCase, testFilePath, timestamp, config) {
53
+ function annotationsFor(resolver, filePath, testCase) {
54
+ const line = testCase.location?.line;
55
+ if (typeof line !== 'number')
56
+ return {};
57
+ return resolver.lookup(filePath, line);
58
+ }
59
+ function buildMetric(testCase, testFilePath, timestamp, config, annotations = {}) {
50
60
  const filePath = relativeFilePath(testFilePath);
51
61
  const name = testCase.fullName || testCase.title || '';
52
62
  const hash = node_crypto_1.default
@@ -59,13 +69,14 @@ function buildMetric(testCase, testFilePath, timestamp, config) {
59
69
  const hasFailure = exceptionClasses.length > 0 || failureMessages.length > 0;
60
70
  const failureException = hasFailure ? formatFailureMessage(failureMessages) : undefined;
61
71
  const exceptionClass = exceptionClasses[0];
72
+ const status = STATUS_MAP[testCase.status] ?? testCase.status;
62
73
  const record = {
63
74
  timestamp,
64
75
  id: `${filePath}:${name}`,
65
76
  name,
66
77
  hash,
67
78
  file_path: filePath,
68
- status: STATUS_MAP[testCase.status] ?? testCase.status,
79
+ status,
69
80
  run_time: normalizeDuration(testCase.duration),
70
81
  location: locationFor(filePath, testCase.location ?? null),
71
82
  exception_class: exceptionClass,
@@ -76,13 +87,34 @@ function buildMetric(testCase, testFilePath, timestamp, config) {
76
87
  feature_category: 'unknown',
77
88
  test_retried: Boolean(config.testRetried(testCase)),
78
89
  run_type: resolveRunType(config),
90
+ test_level: config.testLevel || undefined,
79
91
  spec_file_path_prefix: config.specFilePathPrefix,
80
92
  pipeline_type: (0, pipeline_1.detectPipelineType)(),
81
93
  ...ciFields(),
94
+ ...annotationFields(annotations, config, status),
82
95
  ...coerceCustomMetrics(config.customMetrics(testCase)),
83
96
  };
84
97
  return dropNullish(record);
85
98
  }
99
+ function annotationFields(annotations, config, status) {
100
+ const out = {};
101
+ const featureCategory = annotations.feature_category;
102
+ if (featureCategory)
103
+ out.feature_category = featureCategory;
104
+ const quarantineUrl = annotations.quarantine_issue_url;
105
+ if (quarantineUrl) {
106
+ out.quarantine_issue_url = quarantineUrl;
107
+ if (status === 'skipped' || status === 'pending') {
108
+ out.quarantined = true;
109
+ }
110
+ }
111
+ for (const key of config.extraMetadataKeys) {
112
+ if (Object.prototype.hasOwnProperty.call(annotations, key)) {
113
+ out[key] = annotations[key];
114
+ }
115
+ }
116
+ return out;
117
+ }
86
118
  function testFilePathOf(result) {
87
119
  // `testFilePath` is the canonical field in Jest 27+; fall back if absent.
88
120
  return result.testFilePath;
@@ -159,6 +191,8 @@ function resolveRunType(config) {
159
191
  const envRunType = env('GLCI_TEST_METRICS_RUN_TYPE');
160
192
  if (envRunType)
161
193
  return envRunType;
194
+ if (config.testLevel.length > 0)
195
+ return config.testLevel;
162
196
  const jobName = sanitizeJobName(env('CI_JOB_NAME'));
163
197
  if (jobName)
164
198
  return jobName;
@@ -1 +1 @@
1
- {"version":3,"file":"metric.js","sourceRoot":"","sources":["../src/metric.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"metric.js","sourceRoot":"","sources":["../src/metric.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI5E,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvE,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;gBAEhC,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,eAAe,GAAE,eAAoB;IA0BrF,UAAU,CACR,kBAAkB,EAAE,gBAAgB,EACpC,QAAQ,EAAE,sBAAsB,GAC/B,IAAI;IASP,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI9B,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,GAAG,IAAI;IAIxF,aAAa,CACjB,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC,EAC/B,iBAAiB,EAAE,gBAAgB,GAClC,OAAO,CAAC,IAAI,CAAC;IAiChB,YAAY,IAAI,KAAK,GAAG,SAAS;IAKjC,gBAAgB;IAChB,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,gBAAgB;IAChB,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,gBAAgB;IAChB,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAOD,eAAe,mBAAmB,CAAC"}
1
+ {"version":3,"file":"reporter.d.ts","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC7F,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI5E,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvE,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;gBAEhC,aAAa,EAAE,MAAM,CAAC,YAAY,EAAE,eAAe,GAAE,eAAoB;IAyBrF,UAAU,CACR,kBAAkB,EAAE,gBAAgB,EACpC,QAAQ,EAAE,sBAAsB,GAC/B,IAAI;IAIP,WAAW,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAI9B,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,gBAAgB,GAAG,IAAI;IAIxF,aAAa,CACjB,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC,EAC/B,iBAAiB,EAAE,gBAAgB,GAClC,OAAO,CAAC,IAAI,CAAC;IAiChB,YAAY,IAAI,KAAK,GAAG,SAAS;IAKjC,gBAAgB;IAChB,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,gBAAgB;IAChB,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,gBAAgB;IAChB,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF;AAOD,eAAe,mBAAmB,CAAC"}
package/dist/reporter.js CHANGED
@@ -30,14 +30,9 @@ class JestMetricsReporter {
30
30
  this.client = client;
31
31
  }
32
32
  // Required by Jest's Reporter interface. We do all the work in onRunComplete,
33
- // so these are intentional no-ops kept around for type compatibility and to
34
- // emit a one-time diagnostic about the no-op `extraMetadataKeys` option.
33
+ // so these are intentional no-ops kept around for type compatibility.
35
34
  onRunStart(_aggregatedResults, _options) {
36
- if (this.disabled)
37
- return;
38
- if (this.config.extraMetadataKeys.length > 0) {
39
- this.config.logger.debug(`${config_1.LOG_PREFIX} extraMetadataKeys is a no-op until per-test metadata tagging is implemented`);
40
- }
35
+ /* no-op */
41
36
  }
42
37
  onTestStart(_test) {
43
38
  /* no-op */
@@ -1 +1 @@
1
- {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reporter.js","sourceRoot":"","sources":["../src/reporter.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -10,6 +10,7 @@ export type TestRetriedFn = (testCase: AssertionResult) => boolean;
10
10
  export type CustomMetricsFn = (testCase: AssertionResult) => Record<string, unknown>;
11
11
  export interface ReporterOptions {
12
12
  runType?: string;
13
+ testLevel?: string;
13
14
  observerUrl?: string;
14
15
  observerToken?: string;
15
16
  specFilePathPrefix?: string;
@@ -21,6 +22,7 @@ export interface ReporterOptions {
21
22
  }
22
23
  export interface ResolvedConfig {
23
24
  runType: string;
25
+ testLevel: string;
24
26
  observerUrl: string;
25
27
  observerToken: string;
26
28
  specFilePathPrefix: string;
@@ -48,6 +50,7 @@ export interface MetricRecord {
48
50
  feature_category: string;
49
51
  test_retried: boolean;
50
52
  run_type: string;
53
+ test_level?: string;
51
54
  spec_file_path_prefix: string;
52
55
  pipeline_type: string;
53
56
  ci_project_id?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,MAAM;IACrB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,eAAe,KAAK,OAAO,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,eAAe,KAAK,OAAO,CAAC;AACnE,MAAM,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErF,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,EAAE,YAAY,CAAC;IACzB,WAAW,EAAE,aAAa,CAAC;IAC3B,aAAa,EAAE,eAAe,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAElB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION: "0.0.5";
1
+ export declare const VERSION: "0.2.0";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.0.5';
4
+ exports.VERSION = '0.2.0';
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitlab/jest-metrics-exporter",
3
- "version": "0.0.5",
3
+ "version": "0.2.0",
4
4
  "description": "A Jest reporter that collects test execution data and pushes it to the GitLab Observer service",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -11,6 +11,7 @@
11
11
  ],
12
12
  "repository": {
13
13
  "type": "git",
14
+ "directory": "jest",
14
15
  "url": "https://gitlab.com/gitlab-org/quality/analytics/test-metrics-exporters"
15
16
  },
16
17
  "homepage": "https://gitlab.com/gitlab-org/quality/analytics/test-metrics-exporters",