From de66f75e72f5f75bf307dbcde05369b6270b9e74 Mon Sep 17 00:00:00 2001 From: "depfu[bot]" <23717796+depfu[bot]@users.noreply.github.com> Date: Wed, 17 Jun 2026 14:52:11 -0700 Subject: [PATCH 1/8] =?UTF-8?q?=F0=9F=9A=A8=20[security]=20Update=20webpac?= =?UTF-8?q?k-dev-server=205.2.4=20=E2=86=92=205.2.5=20(patch)=20(#1055)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ⬆️ Update webpack-dev-server to version 5.2.5 Co-authored-by: depfu[bot] <23717796+depfu[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c477d46ab..6f29d2f19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -93,7 +93,7 @@ "typescript-eslint": "^8.60.0", "webpack": "^5.107.2", "webpack-cli": "^6.0.1", - "webpack-dev-server": "^5.2.4", + "webpack-dev-server": "^5.2.5", "webpack-merge": "^6.0.1" }, "engines": { @@ -16494,9 +16494,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.4.tgz", - "integrity": "sha512-GqDPGZN9bRqKBTkp4aWkobDDHMsrXKoGSdOH56smIri8qR0JG8gfL8/v/f/OZR3/OKXjG8uwJbFVhKm/FNU/UA==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.5.tgz", + "integrity": "sha512-4wZtCquSuv9CKX8oybo+mqxtxZqWz47uM1Ch94lxowBztOhWCbhqvRbfC/mODOwxgV2brY+JGZpHq58/SuVFYg==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.13", @@ -28673,9 +28673,9 @@ } }, "webpack-dev-server": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.4.tgz", - "integrity": "sha512-GqDPGZN9bRqKBTkp4aWkobDDHMsrXKoGSdOH56smIri8qR0JG8gfL8/v/f/OZR3/OKXjG8uwJbFVhKm/FNU/UA==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-5.2.5.tgz", + "integrity": "sha512-4wZtCquSuv9CKX8oybo+mqxtxZqWz47uM1Ch94lxowBztOhWCbhqvRbfC/mODOwxgV2brY+JGZpHq58/SuVFYg==", "dev": true, "requires": { "@types/bonjour": "^3.5.13", diff --git a/package.json b/package.json index f22893bcb..9dd3b57c3 100644 --- a/package.json +++ b/package.json @@ -135,7 +135,7 @@ "typescript-eslint": "^8.60.0", "webpack": "^5.107.2", "webpack-cli": "^6.0.1", - "webpack-dev-server": "^5.2.4", + "webpack-dev-server": "^5.2.5", "webpack-merge": "^6.0.1" } } From a6b5a71be28f10f74dde860675d747054c404112 Mon Sep 17 00:00:00 2001 From: Sumair Qaisar Date: Thu, 18 Jun 2026 21:26:20 +0500 Subject: [PATCH 2/8] Bug-1855186: Show whether lower or higher is "better" for each metric (#1051) * Add BetterDirectionIndicator label component * Show better-direction label in the test header * Show better-direction label once in the subtests header * test(results): cover the better-direction label * Update snapshot tests for better direction indicator * Update snapshots after rebase * Change font to FontSizeRaw.Normal --- .../CompareResults/ResultsTable.test.tsx | 8 +- .../CompareResults/ResultsView.test.tsx | 31 ++++++++ .../SubtestsResultsView.test.tsx | 19 +++++ .../OverTimeResultsView.test.tsx.snap | 8 +- .../__snapshots__/ResultsTable.test.tsx.snap | 48 ++++++++++-- .../__snapshots__/ResultsView.test.tsx.snap | 12 ++- .../SubtestsResultsView.test.tsx.snap | 78 +++++++++++++------ .../BetterDirectionIndicator.tsx | 40 ++++++++++ .../SubtestsResults/SubtestsResultsMain.tsx | 1 + .../SubtestsRevisionHeader.tsx | 4 +- src/components/CompareResults/TestHeader.tsx | 8 +- src/resources/Strings.tsx | 4 + src/types/state.ts | 1 + 13 files changed, 224 insertions(+), 38 deletions(-) create mode 100644 src/components/CompareResults/BetterDirectionIndicator.tsx diff --git a/src/__tests__/CompareResults/ResultsTable.test.tsx b/src/__tests__/CompareResults/ResultsTable.test.tsx index ed2fabc33..c663ada1d 100644 --- a/src/__tests__/CompareResults/ResultsTable.test.tsx +++ b/src/__tests__/CompareResults/ResultsTable.test.tsx @@ -57,8 +57,14 @@ function summarizeVisibleRows(testVersion?: TestVersion) { const optionsElements = Array.from( titleElement.nextElementSibling!.children, ); + // The "better direction" indicator is asserted separately (and via + // snapshots); strip it here so the data-focused expectations stay stable. + const titleClone = titleElement.cloneNode(true) as HTMLElement; + titleClone + .querySelector('[data-testid="better-direction-indicator"]') + ?.remove(); const title = [ - titleElement.textContent, + titleClone.textContent, ...optionsElements.map((element) => element.textContent), ].join(' '); result.push(title); diff --git a/src/__tests__/CompareResults/ResultsView.test.tsx b/src/__tests__/CompareResults/ResultsView.test.tsx index b44764071..9d6bb7f31 100644 --- a/src/__tests__/CompareResults/ResultsView.test.tsx +++ b/src/__tests__/CompareResults/ResultsView.test.tsx @@ -158,6 +158,7 @@ describe('Results View', () => { option_name: 'opt', suite: 'allyr', test: '3DGraphics-WebGL', + lower_is_better: true, }; renderWithRoute(); @@ -176,6 +177,7 @@ describe('Results View', () => { option_name: 'opt', suite: 'idle-bg', test: '3DGraphics-WebGL', + lower_is_better: true, }; renderWithRoute(); @@ -184,6 +186,35 @@ describe('Results View', () => { expect(linkToSuite).not.toBeInTheDocument(); }); + it('Should show the better-direction label based on lower_is_better', async () => { + const baseHeader = { + extra_options: 'e10s fission stylo webgl-ipc webrender', + framework_id: 1 as Framework['id'], + new_repository_name: 'mozilla-central' as Repository['name'], + new_rev: 'a998c42399a8fcea623690bf65bef49de20535b4', + option_name: 'opt', + suite: 'allyr', + test: '3DGraphics-WebGL', + }; + + const { unmount } = renderWithRoute( + , + ); + expect(await screen.findByText('Lower is better')).toBeInTheDocument(); + unmount(); + + renderWithRoute( + , + ); + expect(await screen.findByText('Higher is better')).toBeInTheDocument(); + }); + it('Should display Base, New and Common graphs with tooltips', async () => { const user = userEvent.setup({ advanceTimers: jest.advanceTimersByTime }); diff --git a/src/__tests__/CompareResults/SubtestsResultsView.test.tsx b/src/__tests__/CompareResults/SubtestsResultsView.test.tsx index 7df2a8e96..87e1b9081 100644 --- a/src/__tests__/CompareResults/SubtestsResultsView.test.tsx +++ b/src/__tests__/CompareResults/SubtestsResultsView.test.tsx @@ -94,6 +94,25 @@ describe('SubtestsResultsView Component Tests', () => { expect(document.body).toMatchSnapshot(); }); + it('Should show the better-direction label once in the subtests header', async () => { + const { subtestsResult } = getTestData(); + setup({ + element: ( + + ), + route: '/subtests-compare-results/', + search: + '?baseRev=f49863193c13c1def4db2dd3ea9c5d6bd9d517a7&baseRepo=mozilla-central&newRev=2cb6128d7dca8c9a9266b3505d64d55ac1bcc8a8&newRepo=mozilla-central&framework=1&baseParentSignature=4774487&newParentSignature=4774487', + subtestsResult, + }); + + // The mock data is `lower_is_better: true`, and direction is a property of + // the parent suite, so the label is shown once in the header rather than + // repeated on every subtest row. + const labels = await screen.findAllByText('Lower is better'); + expect(labels).toHaveLength(1); + }); + it('should render the subtests results view with mann-whitney-u testVersions in url', async () => { const user = userEvent.setup({ advanceTimers: jest.advanceTimersByTime }); const { subtestsMannWhitneyResult } = getTestData(); diff --git a/src/__tests__/CompareResults/__snapshots__/OverTimeResultsView.test.tsx.snap b/src/__tests__/CompareResults/__snapshots__/OverTimeResultsView.test.tsx.snap index 067598ccd..dbd059e14 100644 --- a/src/__tests__/CompareResults/__snapshots__/OverTimeResultsView.test.tsx.snap +++ b/src/__tests__/CompareResults/__snapshots__/OverTimeResultsView.test.tsx.snap @@ -651,7 +651,7 @@ exports[`Results View The table should match snapshot and other elements should class="revision-header fh103jg" > + + Lower is better +
+ + Lower is better + | Base (mozilla-central) + + Lower is better + | Base (mozilla-central) Last day - New (mozilla-central) @@ -2643,7 +2655,7 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi aria-invalid="false" aria-label="Search by title" class="MuiInputBase-input MuiOutlinedInput-input MuiInputBase-inputSizeSmall MuiInputBase-inputAdornedStart MuiInputBase-inputAdornedEnd css-3v3un6-MuiInputBase-input-MuiOutlinedInput-input" - id="_r_r9_" + id="_r_sl_" placeholder="Filter results" type="search" value="" @@ -3153,7 +3165,7 @@ exports[`SubtestsViewCompareOverTime Component Tests in mann-whitney-u testVersi role="cell" >