Improve typing of patch set numbers
For the "right" side of a diff always use `RevisionPatchSetNum`, which
cannot be `PARENT`.
Release-Notes: skip
Change-Id: Iffa7418236d0a8bc55bb062765099b4bea8ddd35
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router.ts b/polygerrit-ui/app/elements/core/gr-router/gr-router.ts
index 24d93b1..0f7a14b 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router.ts
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router.ts
@@ -39,7 +39,7 @@
DashboardId,
GroupId,
NumericChangeId,
- PatchSetNum,
+ RevisionPatchSetNum,
RepoName,
ServerInfo,
UrlEncodedCommentId,
@@ -270,7 +270,7 @@
type QueryStringItem = [string, string]; // [key, value]
export interface PatchRangeParams {
- patchNum?: PatchSetNum;
+ patchNum?: RevisionPatchSetNum;
basePatchNum?: BasePatchSetNum;
}
@@ -301,6 +301,8 @@
view: params.view,
changeNum: 'changeNum' in params ? params.changeNum : undefined,
patchNum: 'patchNum' in params ? params.patchNum ?? undefined : undefined,
+ basePatchNum:
+ 'basePatchNum' in params ? params.basePatchNum ?? undefined : undefined,
});
this.appElement().params = params;
}
@@ -680,7 +682,7 @@
} else if (!hasPatchNum) {
// Regexes set basePatchNum instead of patchNum when only one is
// specified. Redirect is not needed in this case.
- params.patchNum = params.basePatchNum;
+ params.patchNum = params.basePatchNum as RevisionPatchSetNum;
params.basePatchNum = ParentPatchSetNum;
}
return needsRedirect;
@@ -1676,7 +1678,7 @@
project: ctx.params[0] as RepoName,
changeNum,
basePatchNum: convertToPatchSetNum(ctx.params[4]) as BasePatchSetNum,
- patchNum: convertToPatchSetNum(ctx.params[6]),
+ patchNum: convertToPatchSetNum(ctx.params[6]) as RevisionPatchSetNum,
view: GerritView.CHANGE,
};
@@ -1742,7 +1744,7 @@
project: ctx.params[0] as RepoName,
changeNum,
basePatchNum: convertToPatchSetNum(ctx.params[4]) as BasePatchSetNum,
- patchNum: convertToPatchSetNum(ctx.params[6]),
+ patchNum: convertToPatchSetNum(ctx.params[6]) as RevisionPatchSetNum,
path: ctx.params[8],
view: GerritView.DIFF,
};
@@ -1785,7 +1787,7 @@
project,
changeNum,
// for edit view params, patchNum cannot be undefined
- patchNum: convertToPatchSetNum(ctx.params[2])!,
+ patchNum: convertToPatchSetNum(ctx.params[2]) as RevisionPatchSetNum,
path: ctx.params[3],
lineNum: ctx.hash,
view: GerritView.EDIT,
@@ -1801,7 +1803,7 @@
const params: GenerateUrlChangeViewParameters = {
project,
changeNum,
- patchNum: convertToPatchSetNum(ctx.params[3]),
+ patchNum: convertToPatchSetNum(ctx.params[3]) as RevisionPatchSetNum,
view: GerritView.CHANGE,
edit: true,
tab: ctx.queryMap.get('tab') ?? '',
diff --git a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
index 4ffc98b..9eb6acc 100644
--- a/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
+++ b/polygerrit-ui/app/elements/core/gr-router/gr-router_test.ts
@@ -38,7 +38,6 @@
GroupId,
NumericChangeId,
ParentPatchSetNum,
- PatchSetNum,
RepoName,
RevisionPatchSetNum,
TopicName,
@@ -394,7 +393,7 @@
assert.equal(router.generateUrl(params), '/c/test/+/1234');
- params.patchNum = 10 as PatchSetNum;
+ params.patchNum = 10 as RevisionPatchSetNum;
assert.equal(router.generateUrl(params), '/c/test/+/1234/10');
params.basePatchNum = 5 as BasePatchSetNum;
@@ -421,7 +420,7 @@
view: GerritView.DIFF,
changeNum: 42 as NumericChangeId,
path: 'x+y/path.cpp' as RepoName,
- patchNum: 12 as PatchSetNum,
+ patchNum: 12 as RevisionPatchSetNum,
project: '' as RepoName,
};
assert.equal(router.generateUrl(params), '/c/42/12/x%252By/path.cpp');
@@ -439,7 +438,7 @@
);
params.path = 'foo bar/my+file.txt%';
- params.patchNum = 2 as PatchSetNum;
+ params.patchNum = 2 as RevisionPatchSetNum;
delete params.basePatchNum;
assert.equal(
router.generateUrl(params),
@@ -459,7 +458,7 @@
view: GerritView.DIFF,
changeNum: 42 as NumericChangeId,
path: 'x+y/path.cpp',
- patchNum: 12 as PatchSetNum,
+ patchNum: 12 as RevisionPatchSetNum,
project: 'x+/y' as RepoName,
};
assert.equal(
@@ -474,7 +473,7 @@
changeNum: 42 as NumericChangeId,
project: 'test' as RepoName,
path: 'x+y/path.cpp',
- patchNum: 'edit' as PatchSetNum,
+ patchNum: 'edit' as RevisionPatchSetNum,
};
assert.equal(
router.generateUrl(params),
@@ -487,7 +486,7 @@
let actual = router.getPatchRangeExpression(params);
assert.equal(actual, '');
- params.patchNum = 4 as PatchSetNum;
+ params.patchNum = 4 as RevisionPatchSetNum;
actual = router.getPatchRangeExpression(params);
assert.equal(actual, '4');
@@ -621,12 +620,12 @@
test('range n..n normalizes to n', () => {
const params: PatchRangeParams = {
basePatchNum: 4 as BasePatchSetNum,
- patchNum: 4 as PatchSetNum,
+ patchNum: 4 as RevisionPatchSetNum,
};
const needsRedirect = router.normalizePatchRangeParams(params);
assert.isTrue(needsRedirect);
assert.equal(params.basePatchNum, ParentPatchSetNum);
- assert.equal(params.patchNum, 4 as PatchSetNum);
+ assert.equal(params.patchNum, 4 as RevisionPatchSetNum);
});
test('range n.. normalizes to n', () => {
@@ -634,7 +633,7 @@
const needsRedirect = router.normalizePatchRangeParams(params);
assert.isFalse(needsRedirect);
assert.equal(params.basePatchNum, ParentPatchSetNum);
- assert.equal(params.patchNum, 4 as PatchSetNum);
+ assert.equal(params.patchNum, 4 as RevisionPatchSetNum);
});
});
});
@@ -1689,7 +1688,7 @@
changeNum: 1234 as NumericChangeId,
view: GerritNav.View.EDIT,
path: 'foo/bar/baz',
- patchNum: 3 as PatchSetNum,
+ patchNum: 3 as RevisionPatchSetNum,
lineNum: '',
};
@@ -1722,7 +1721,7 @@
changeNum: 1234 as NumericChangeId,
view: GerritNav.View.EDIT,
path: 'foo/bar/baz',
- patchNum: 3 as PatchSetNum,
+ patchNum: 3 as RevisionPatchSetNum,
lineNum: '4',
};
@@ -1753,7 +1752,7 @@
project: 'foo/bar' as RepoName,
changeNum: 1234 as NumericChangeId,
view: GerritView.CHANGE,
- patchNum: 3 as PatchSetNum,
+ patchNum: 3 as RevisionPatchSetNum,
edit: true,
tab: '',
};