From 970899e0e7c05f3c71040241786270b9d83ec8fc Mon Sep 17 00:00:00 2001 From: Paladox none Date: Wed, 7 Jul 2021 22:01:00 +0000 Subject: Fix wrong edit url being used within gr-file-list-header Change-Id: I8164660fce02aa93dafef626c3a9697d17d82dfb (cherry picked from commit 4578fe42ffef9469289a0444808dd208f25eaf96) --- .../gr-file-list-header/gr-file-list-header.js | 4 ++++ .../gr-file-list-header_test.html | 28 ++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js index 73c6721506..9c8551c88f 100644 --- a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js +++ b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js @@ -242,6 +242,10 @@ class GrFileListHeader extends mixinBehaviors( [ const {basePatchNum, patchNum} = e.detail; if (this.patchNumEquals(basePatchNum, this.basePatchNum) && this.patchNumEquals(patchNum, this.patchNum)) { return; } + if (patchNum === 'edit' && basePatchNum === 'PARENT') { + GerritNav.navigateToChange(this.change, undefined, undefined, true); + return; + } GerritNav.navigateToChange(this.change, patchNum, basePatchNum); } diff --git a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html index 19362d5ab2..91705e788d 100644 --- a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html +++ b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html @@ -261,6 +261,34 @@ suite('gr-file-list-header tests', () => { .calledWithExactly(element.change, 3, 1)); }); + test('navigateToChange called when range select changes with edit', () => { + const navigateToChangeStub = sinon.stub(GerritNav, 'navigateToChange'); + element.change = { + change_id: 'Iad9dc96274af6946f3632be53b106ef80f7ba6ca', + revisions: { + rev2: {_number: 2}, + rev1: {_number: 1}, + rev13: {_number: 13}, + rev3: {_number: 3}, + }, + status: 'NEW', + labels: {}, + }; + element.basePatchNum = 1; + element.patchNum = 'edit'; + + const detail = { + detail: { + basePatchNum: 'PARENT', + patchNum: 'edit', + }, + }; + element._handlePatchChange(detail); + assert.equal(navigateToChangeStub.callCount, 1); + assert.isTrue(navigateToChangeStub.lastCall + .calledWithExactly(element.change, undefined, undefined, true)); + }); + test('class is applied to file list on old patch set', () => { const allPatchSets = [{num: 4}, {num: 2}, {num: 1}]; assert.equal(element._computePatchInfoClass('1', allPatchSets), -- cgit v1.2.3