You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2026/10/01 16:36:50 UTC
(rocketmq-dashboard) branch rocketmq-studio updated: fix(web): type the metrics explorer test fixture as MetricData (#5305)
This is an automated email from the ASF dual-hosted git repository.
lizhimins pushed a commit to branch rocketmq-studio
in repository https://gitbox.apache.org/repos/asf/rocketmq-dashboard.git
The following commit(s) were added to refs/heads/rocketmq-studio by this push:
new 6a68042fa fix(web): type the metrics explorer test fixture as MetricData (#5305)
6a68042fa is described below
commit 6a68042fa73a513f40436ca721944b4de48181ec
Author: lizhimins <70...@qq.com>
AuthorDate: Fri Oct 2 00:36:45 2026 +0800
fix(web): type the metrics explorer test fixture as MetricData (#5305)
`metricData` had no annotation, so TypeScript inferred `series[].labels` as the
literal `{ cluster: string; node_id: string }` instead of the `Record<string, string>`
that `MetricSeries` declares. `createDeferred<typeof metricData>()` then pinned that
narrow shape as the deferred's payload type, so the case added by #4888 - which resolves
a custom-query series labelled `{ cluster: 'prod', query: 'custom' }` - fails the excess
property check:
src/components/__tests__/MetricsExplorer.test.tsx(516,38): error TS2353:
Object literal may only specify known properties, and 'query' does not exist
in type '{ cluster: string; node_id: string; }'.
`tsc -b` therefore fails, which breaks `npm run build` (it is `tsc -b && vite build &&
npm run license:check`) and with it the frontend CI job and `web/Dockerfile`. `npm test`
stays green because vitest transpiles through esbuild and never type-checks, so nothing
in the test pipeline caught it.
Annotating the fixture with the API contract type it is standing in for restores the
open `Record<string, string>` label map. Type-only: no runtime behaviour changes.
---
web/src/components/__tests__/MetricsExplorer.test.tsx | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/web/src/components/__tests__/MetricsExplorer.test.tsx b/web/src/components/__tests__/MetricsExplorer.test.tsx
index 97a1425b7..70660aeb3 100644
--- a/web/src/components/__tests__/MetricsExplorer.test.tsx
+++ b/web/src/components/__tests__/MetricsExplorer.test.tsx
@@ -22,7 +22,12 @@ import type React from 'react';
import { afterEach, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
import { listDataSources } from '../../api/settings';
-import { listMetricProfiles, queryByDataSource, queryMetrics } from '../../api/metrics';
+import {
+ listMetricProfiles,
+ queryByDataSource,
+ queryMetrics,
+ type MetricData,
+} from '../../api/metrics';
import { LangProvider, useLang } from '../../i18n/LangContext';
import { downloadCsv } from '../../utils/download';
import {
@@ -83,7 +88,7 @@ const profiles = [
},
];
-const metricData = {
+const metricData: MetricData = {
resultType: 'matrix',
series: [
{