Add eslint rule @typescript-eslint/no-unnecessary-type-assertion
And fix all files accordingly.
Release-Notes: skip
Change-Id: I5a151b1d5399aabfe1550f5323e96a452f47cc7f
diff --git a/polygerrit-ui/app/.eslintrc.js b/polygerrit-ui/app/.eslintrc.js
index a4dcb64..e38d558 100644
--- a/polygerrit-ui/app/.eslintrc.js
+++ b/polygerrit-ui/app/.eslintrc.js
@@ -307,6 +307,7 @@
'@typescript-eslint/ban-ts-comment': 'off',
// The following rules is required to match internal google rules
'@typescript-eslint/restrict-plus-operands': 'error',
+ '@typescript-eslint/no-unnecessary-type-assertion': 'error',
'@typescript-eslint/no-unused-vars': [
'error',
{argsIgnorePattern: '^_'},
diff --git a/polygerrit-ui/app/elements/admin/gr-group/gr-group.ts b/polygerrit-ui/app/elements/admin/gr-group/gr-group.ts
index 6054d9c..19e7aa4 100644
--- a/polygerrit-ui/app/elements/admin/gr-group/gr-group.ts
+++ b/polygerrit-ui/app/elements/admin/gr-group/gr-group.ts
@@ -493,7 +493,7 @@
// Because the value for e.detail.value is a string
// we convert the value to a boolean.
const value = e.detail.value === 'true' ? true : false;
- this.groupConfig!.options!.visible_to_all = value;
+ this.groupConfig.options!.visible_to_all = value;
this.requestUpdate();
}
}
diff --git a/polygerrit-ui/app/elements/admin/gr-repo-dashboards/gr-repo-dashboards_test.ts b/polygerrit-ui/app/elements/admin/gr-repo-dashboards/gr-repo-dashboards_test.ts
index a54eafb..7c26909 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo-dashboards/gr-repo-dashboards_test.ts
+++ b/polygerrit-ui/app/elements/admin/gr-repo-dashboards/gr-repo-dashboards_test.ts
@@ -115,9 +115,9 @@
);
const dashboard = element._dashboards!;
- assert.equal(dashboard.length!, 2);
- assert.equal(dashboard[0].section!, 'custom');
- assert.equal(dashboard[1].section!, 'default');
+ assert.equal(dashboard.length, 2);
+ assert.equal(dashboard[0].section, 'custom');
+ assert.equal(dashboard[1].section, 'default');
const dashboards = dashboard[0].dashboards;
assert.equal(dashboards.length, 2);
@@ -148,6 +148,7 @@
test('fires page-error', async () => {
const response = {status: 404} as Response;
stubRestApi('getRepoDashboards').callsFake((_repo, errFn) => {
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
errFn!(response);
return Promise.resolve([]);
});
diff --git a/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.ts b/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.ts
index a3f7374..06691d7 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.ts
+++ b/polygerrit-ui/app/elements/admin/gr-repo/gr-repo.ts
@@ -811,7 +811,7 @@
config.submit_type = config.default_submit_type.configured_value;
}
if (!config.state) {
- config.state = STATES.active.value as ProjectState;
+ config.state = STATES.active.value;
}
// To properly check if the config has changed we need it to be a string
// as it's converted to a string in the input.
@@ -1105,7 +1105,7 @@
private computeChangesUrl(name?: RepoName) {
if (!name) return '';
- return GerritNav.getUrlForProjectChanges(name as RepoName);
+ return GerritNav.getUrlForProjectChanges(name);
}
// private but used in test
diff --git a/polygerrit-ui/app/elements/admin/gr-repo/gr-repo_test.ts b/polygerrit-ui/app/elements/admin/gr-repo/gr-repo_test.ts
index 82338d3..65eee70 100644
--- a/polygerrit-ui/app/elements/admin/gr-repo/gr-repo_test.ts
+++ b/polygerrit-ui/app/elements/admin/gr-repo/gr-repo_test.ts
@@ -214,7 +214,7 @@
});
await element.updateComplete;
- assert.deepEqual(element.repoConfig!.plugin_config!.test, {
+ assert.deepEqual(element.repoConfig.plugin_config!.test, {
test: {display_name: 'test plugin', type: 'STRING'},
} as PluginParameterToConfigParameterInfoMap);
assert.isTrue(requestUpdateStub.called);
diff --git a/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor_test.ts b/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor_test.ts
index b4b905b..9fe2999 100644
--- a/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor_test.ts
+++ b/polygerrit-ui/app/elements/admin/gr-rule-editor/gr-rule-editor_test.ts
@@ -220,7 +220,7 @@
.returns(defaultValue);
element.setDefaultRuleValues();
assert.isTrue(getDefaultRuleValuesStub.called);
- assert.equal(element.rule!.value, defaultValue);
+ assert.equal(element.rule.value, defaultValue);
});
test('computeOptions', () => {
@@ -243,10 +243,10 @@
};
element.addEventListener('access-modified', modifiedHandler);
element.handleValueChange();
- assert.isNotOk(element.rule!.value!.modified);
+ assert.isNotOk(element.rule.value!.modified);
element.originalRuleValues = {action: PermissionAction.ALLOW};
element.handleValueChange();
- assert.isTrue(element.rule!.value!.modified);
+ assert.isTrue(element.rule.value!.modified);
assert.isTrue(modifiedHandler.called);
});
@@ -313,11 +313,11 @@
.display,
'none'
);
- assert.isNotOk(element.rule!.value!.modified);
+ assert.isNotOk(element.rule.value!.modified);
const actionBindValue = queryAndAssert<GrSelect>(element, '#action');
actionBindValue.bindValue = PermissionAction.DENY;
await element.updateComplete;
- assert.isTrue(element.rule!.value!.modified);
+ assert.isTrue(element.rule.value!.modified);
element.editing = false;
await element.updateComplete;
assert.equal(
@@ -325,8 +325,8 @@
.display,
'none'
);
- assert.deepEqual(element.originalRuleValues, element.rule!.value);
- assert.isNotOk(element.rule!.value!.modified);
+ assert.deepEqual(element.originalRuleValues, element.rule.value);
+ assert.isNotOk(element.rule.value!.modified);
assert.equal(element.rule?.value?.action, PermissionAction.ALLOW);
assert.equal(
queryAndAssert<GrSelect>(element, '#action').bindValue,
@@ -376,12 +376,12 @@
).classList.contains('deleted')
);
assert.isTrue(element.deleted);
- assert.isTrue(element.rule!.value!.deleted);
+ assert.isTrue(element.rule.value!.deleted);
MockInteractions.tap(queryAndAssert<GrButton>(element, '#undoRemoveBtn'));
await element.updateComplete;
assert.isFalse(element.deleted);
- assert.isNotOk(element.rule!.value!.deleted);
+ assert.isNotOk(element.rule.value!.deleted);
});
test('remove rule and cancel', async () => {
@@ -415,15 +415,15 @@
'none'
);
assert.isTrue(element.deleted);
- assert.isTrue(element.rule!.value!.deleted);
+ assert.isTrue(element.rule.value!.deleted);
element.editing = false;
await element.updateComplete;
assert.isFalse(element.deleted);
- assert.isNotOk(element.rule!.value!.deleted);
- assert.isNotOk(element.rule!.value!.modified);
+ assert.isNotOk(element.rule.value!.deleted);
+ assert.isNotOk(element.rule.value!.modified);
- assert.deepEqual(element.originalRuleValues, element.rule!.value);
+ assert.deepEqual(element.originalRuleValues, element.rule.value);
assert.equal(
getComputedStyle(queryAndAssert<GrButton>(element, '#removeBtn'))
.display,
@@ -451,7 +451,7 @@
element.section = 'refs/*';
element.setupValues();
await element.updateComplete;
- element.rule!.value!.added = true;
+ element.rule.value!.added = true;
await element.updateComplete;
element.connectedCallback();
});
@@ -583,7 +583,7 @@
element.section = 'refs/*';
element.setupValues();
await element.updateComplete;
- element.rule!.value!.added = true;
+ element.rule.value!.added = true;
await element.updateComplete;
element.connectedCallback();
});
@@ -595,8 +595,8 @@
assert.isTrue(setDefaultRuleValuesSpy.called);
const expectedRuleValue = {
- max: element.label!.values![element.label!.values.length - 1].value,
- min: element.label!.values![0].value,
+ max: element.label!.values[element.label!.values.length - 1].value,
+ min: element.label!.values[0].value,
action: PermissionAction.ALLOW,
added: true,
};
@@ -685,7 +685,7 @@
element.section = 'refs/*';
element.setupValues();
await element.updateComplete;
- element.rule!.value!.added = true;
+ element.rule.value!.added = true;
await element.updateComplete;
element.connectedCallback();
});
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.ts b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.ts
index 028c396..bfa8bd2 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.ts
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.ts
@@ -139,7 +139,7 @@
this.getBulkActionsModel().selectedChangeNums$,
selectedChangeNums => {
if (!this.change) return;
- this.checked = selectedChangeNums.includes(this.change!._number);
+ this.checked = selectedChangeNums.includes(this.change._number);
}
);
}
@@ -614,9 +614,9 @@
assertIsDefined(this.change, 'change');
this.checked = !this.checked;
if (this.checked)
- this.getBulkActionsModel().addSelectedChangeNum(this.change!._number);
+ this.getBulkActionsModel().addSelectedChangeNum(this.change._number);
else
- this.getBulkActionsModel().removeSelectedChangeNum(this.change!._number);
+ this.getBulkActionsModel().removeSelectedChangeNum(this.change._number);
}
private changeStatuses() {
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.ts b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.ts
index 68d52ca..3734f0a 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.ts
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.ts
@@ -430,7 +430,7 @@
attention_set: {},
};
for (let i = 0; i < reviewerIds.length; i++) {
- element.change!.reviewers.REVIEWER!.push({
+ element.change.reviewers.REVIEWER!.push({
_account_id: reviewerIds[i] as AccountId,
name: reviewerNames[i],
});
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-section/gr-change-list-section.ts b/polygerrit-ui/app/elements/change-list/gr-change-list-section/gr-change-list-section.ts
index ddc45fc..05d1282 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list-section/gr-change-list-section.ts
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list-section/gr-change-list-section.ts
@@ -151,9 +151,9 @@
?hidden=${!this.showStar}
></td>
<td class="cell" colspan="${colSpan}">
- ${this.changeSection!.emptyStateSlotName
+ ${this.changeSection.emptyStateSlotName
? html`<slot
- name="${this.changeSection!.emptyStateSlotName}"
+ name="${this.changeSection.emptyStateSlotName}"
></slot>`
: 'No changes'}
</td>
@@ -178,10 +178,10 @@
<td class="cell" colspan="${colSpan}">
<h2 class="heading-3">
<a
- href="${this.sectionHref(this.changeSection!.query)}"
+ href="${this.sectionHref(this.changeSection.query)}"
class="section-title"
>
- <span class="section-name">${this.changeSection!.name}</span>
+ <span class="section-name">${this.changeSection.name}</span>
<span class="section-count-label"
>${this.changeSection.countLabel}</span
>
@@ -252,7 +252,7 @@
?selected=${selected}
.change=${change}
.config=${this.config}
- .sectionName=${this.changeSection!.name}
+ .sectionName=${this.changeSection.name}
.visibleChangeTableColumns=${columns}
.showNumber=${this.showNumber}
?showStar=${this.showStar}
diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view_test.ts b/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view_test.ts
index 0639620..d2bc40c 100644
--- a/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view_test.ts
+++ b/polygerrit-ui/app/elements/change-list/gr-change-list-view/gr-change-list-view_test.ts
@@ -92,7 +92,7 @@
});
test('prevArrow', async () => {
- element.changes = _.times(25, _.constant(createChange())) as ChangeInfo[];
+ element.changes = _.times(25, _.constant(createChange()));
element.offset = 0;
element.loading = false;
await element.updateComplete;
@@ -112,14 +112,14 @@
await element.updateComplete;
assert.isOk(query(element, '#nextArrow'));
- element.changes = _.times(25, _.constant(createChange())) as ChangeInfo[];
+ element.changes = _.times(25, _.constant(createChange()));
await element.updateComplete;
assert.isNotOk(query(element, '#nextArrow'));
});
test('handleNextPage', async () => {
const showStub = sinon.stub(page, 'show');
- element.changes = _.times(25, _.constant(createChange())) as ChangeInfo[];
+ element.changes = _.times(25, _.constant(createChange()));
element.changesPerPage = 10;
element.loading = false;
await element.updateComplete;
@@ -139,7 +139,7 @@
test('handlePreviousPage', async () => {
const showStub = sinon.stub(page, 'show');
element.offset = 0;
- element.changes = _.times(25, _.constant(createChange())) as ChangeInfo[];
+ element.changes = _.times(25, _.constant(createChange()));
element.changesPerPage = 10;
element.loading = false;
await element.updateComplete;
@@ -233,6 +233,7 @@
const promise = mockPromise();
sinon.stub(GerritNav, 'navigateToChange').callsFake((url, opt) => {
assert.equal(url, change);
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
assert.isTrue(opt!.redirect);
promise.resolve();
});
@@ -251,6 +252,7 @@
const promise = mockPromise();
sinon.stub(GerritNav, 'navigateToChange').callsFake((url, opt) => {
assert.equal(url, change);
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
assert.isTrue(opt!.redirect);
promise.resolve();
});
@@ -265,6 +267,7 @@
const promise = mockPromise();
sinon.stub(GerritNav, 'navigateToChange').callsFake((url, opt) => {
assert.equal(url, change);
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
assert.isTrue(opt!.redirect);
promise.resolve();
});
diff --git a/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view_test.ts b/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view_test.ts
index 26f32e3..e588775 100644
--- a/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view_test.ts
+++ b/polygerrit-ui/app/elements/change-list/gr-dashboard-view/gr-dashboard-view_test.ts
@@ -123,7 +123,7 @@
results: [notOpenChange],
},
];
- assert.isFalse(changeIsOpen(element.results![0].results[0]));
+ assert.isFalse(changeIsOpen(element.results[0].results[0]));
element.maybeShowDraftsBanner({
view: GerritView.DASHBOARD,
user: 'self',
diff --git a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.ts b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.ts
index 403d3fd..458d043 100644
--- a/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-actions/gr-change-actions_test.ts
@@ -307,7 +307,7 @@
// Total button number is one greater than the number of total actions
// due to the existence of the overflow menu trigger.
assert.equal(
- buttonEls!.length + menuItems!.length,
+ buttonEls.length + menuItems!.length,
element._allActionValues.length + 1
);
assert.isFalse(element.hidden);
@@ -871,10 +871,10 @@
element._handleCherrypickConfirm();
- const autogrowEl = queryAndAssert(
+ const autogrowEl = queryAndAssert<IronAutogrowTextareaElement>(
element.$.confirmCherrypick,
'#messageInput'
- ) as IronAutogrowTextareaElement;
+ );
assert.equal(autogrowEl.value, 'foo message');
assert.deepEqual(fireActionStub.lastCall.args, [
@@ -1003,10 +1003,10 @@
test('changes with duplicate project show an error', async () => {
const dialog = element.$.confirmCherrypick;
- const error = queryAndAssert(
+ const error = queryAndAssert<HTMLSpanElement>(
dialog,
'.error-message'
- ) as HTMLSpanElement;
+ );
assert.equal(error.innerText, '');
dialog.updateChanges([
{
@@ -1095,10 +1095,10 @@
const cleanup = element._setLoadingOnButtonWithKey(type, key);
assert.equal(element._actionLoadingMessage, 'Rebasing...');
- const button = queryAndAssert(
+ const button = queryAndAssert<GrButton>(
element,
'[data-action-key="' + key + '"]'
- ) as GrButton;
+ );
assert.isTrue(button.hasAttribute('loading'));
assert.isTrue(button.disabled);
@@ -1293,14 +1293,14 @@
await flush();
assert.equal(getChangesStub.args[0][1], 'submissionid: "199 0"');
const confirmRevertDialog = element.$.confirmRevertDialog;
- const revertSingleChangeLabel = queryAndAssert(
+ const revertSingleChangeLabel = queryAndAssert<HTMLLabelElement>(
confirmRevertDialog,
'.revertSingleChange'
- ) as HTMLLabelElement;
- const revertSubmissionLabel = queryAndAssert(
+ );
+ const revertSubmissionLabel = queryAndAssert<HTMLLabelElement>(
confirmRevertDialog,
'.revertSubmission'
- ) as HTMLLabelElement;
+ );
assert(
revertSingleChangeLabel.innerText.trim() === 'Revert single change'
);
@@ -1599,7 +1599,7 @@
test('shows confirm dialog', async () => {
element._handleDeleteTap();
assert.isFalse(
- (queryAndAssert(element, '#confirmDeleteDialog') as GrDialog).hidden
+ queryAndAssert<GrDialog>(element, '#confirmDeleteDialog').hidden
);
tap(
queryAndAssert(
@@ -1621,7 +1621,7 @@
);
await flush();
assert.isTrue(
- (queryAndAssert(element, '#confirmDeleteDialog') as GrDialog).hidden
+ queryAndAssert<GrDialog>(element, '#confirmDeleteDialog').hidden
);
assert.isFalse(fireActionStub.called);
});
@@ -2018,14 +2018,14 @@
test('move action from overflow', async () => {
assert.isNotOk(query(element, '[data-action-key="cherrypick"]'));
assert.strictEqual(
- element.$.moreActions!.items![0].id,
+ element.$.moreActions.items![0].id,
'cherrypick-revision'
);
element.setActionOverflow(ActionType.REVISION, 'cherrypick', false);
await flush();
assert.isOk(query(element, '[data-action-key="cherrypick"]'));
assert.notEqual(
- element.$.moreActions!.items![0].id,
+ element.$.moreActions.items![0].id,
'cherrypick-revision'
);
});
@@ -2104,7 +2104,7 @@
revisions: createRevisions(element.latestPatchNum as number),
messages: createChangeMessages(1),
};
- element.change!._number = 42 as NumericChangeId;
+ element.change._number = 42 as NumericChangeId;
onShowError = sinon.stub();
element.addEventListener('show-error', onShowError);
@@ -2308,6 +2308,7 @@
);
const sendStub = stubRestApi('executeChangeAction').callsFake(
(_num, _method, _patchNum, _endpoint, _payload, onErr) => {
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
onErr!();
return Promise.resolve(undefined);
}
diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.ts b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.ts
index 04c886a..54c709a 100644
--- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.ts
@@ -522,7 +522,7 @@
});
test('Push Certificate Validation is missing test', () => {
- change!.revisions.rev1! = createRevision(1);
+ change!.revisions.rev1 = createRevision(1);
const result = element._computePushCertificateValidation(
serverConfig,
change
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
index 349fa5e..8389f2b 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.ts
@@ -1638,7 +1638,7 @@
} else {
const reason = getAddedByReason(this._account, this._serverConfig);
fireAlert(this, 'Adding you to the attention set ...');
- this._change.attention_set[this._account._account_id!] = {
+ this._change.attention_set[this._account._account_id] = {
account: this._account,
reason,
reason_account: this._account,
@@ -2051,7 +2051,7 @@
assertIsDefined(this._changeNum, '_changeNum');
assertIsDefined(this._patchRange?.patchNum, '_patchRange.patchNum');
return this.restApiService
- .getChangeCommitInfo(this._changeNum, this._patchRange!.patchNum)
+ .getChangeCommitInfo(this._changeNum, this._patchRange.patchNum)
.then(commitInfo => {
this._commitInfo = commitInfo;
});
diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
index 170637a..b708020 100644
--- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.ts
@@ -233,6 +233,7 @@
{
path: '/COMMIT_MSG',
author: {
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
_account_id: 1000000 as AccountId,
name: 'user',
username: 'user',
@@ -2022,7 +2023,7 @@
test('patch range changed', () => {
element._patchRange = undefined;
element._change = createChangeViewChange();
- element._change!.revisions = createRevisions(4);
+ element._change.revisions = createRevisions(4);
element._change.current_revision = '1' as CommitId;
element._change = {...element._change};
diff --git a/polygerrit-ui/app/elements/change/gr-download-dialog/gr-download-dialog_test.ts b/polygerrit-ui/app/elements/change/gr-download-dialog/gr-download-dialog_test.ts
index 4c5a3ee..142b999 100644
--- a/polygerrit-ui/app/elements/change/gr-download-dialog/gr-download-dialog_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-download-dialog/gr-download-dialog_test.ts
@@ -186,7 +186,7 @@
element,
'.closeButtonContainer gr-button'
);
- tap(closeButton!);
+ tap(closeButton);
await closeCalled;
});
});
diff --git a/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores.ts b/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores.ts
index 35a2ba1..a369338 100644
--- a/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores.ts
+++ b/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores.ts
@@ -197,9 +197,9 @@
return labels;
}
for (const label of Object.keys(this.permittedLabels ?? {})) {
- const selectorEl = this.shadowRoot.querySelector(
+ const selectorEl = this.shadowRoot.querySelector<GrLabelScoreRow>(
`gr-label-score-row[name="${label}"]`
- ) as null | GrLabelScoreRow;
+ );
if (!selectorEl?.selectedItem) continue;
const selectedVal =
diff --git a/polygerrit-ui/app/elements/change/gr-message/gr-message_test.ts b/polygerrit-ui/app/elements/change/gr-message/gr-message_test.ts
index 2acc2a8..ffe59f0 100644
--- a/polygerrit-ui/app/elements/change/gr-message/gr-message_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-message/gr-message_test.ts
@@ -133,16 +133,14 @@
(e: CustomEvent<ChangeMessageDeletedEventDetail>) => {
assert.deepEqual(e.detail.message, element.message);
assert.isFalse(
- (queryAndAssert(element, '.deleteBtn') as GrButton).disabled
+ queryAndAssert<GrButton>(element, '.deleteBtn').disabled
);
promise.resolve();
}
);
await flush();
tap(queryAndAssert(element, '.deleteBtn'));
- assert.isTrue(
- (queryAndAssert(element, '.deleteBtn') as GrButton).disabled
- );
+ assert.isTrue(queryAndAssert<GrButton>(element, '.deleteBtn').disabled);
await promise;
});
diff --git a/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts b/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts
index 94b8668..f8c8317 100644
--- a/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-related-changes-list/gr-related-changes-list_test.ts
@@ -214,7 +214,7 @@
section,
'gr-related-collapse'
);
- assert.isTrue(relatedChanges!.classList.contains('first'));
+ assert.isTrue(relatedChanges.classList.contains('first'));
});
test('first empty second non-empty', async () => {
@@ -231,7 +231,7 @@
queryAndAssert<HTMLElement>(element, '#submittedTogether'),
'gr-related-collapse'
);
- assert.isTrue(submittedTogetherSection!.classList.contains('first'));
+ assert.isTrue(submittedTogetherSection.classList.contains('first'));
});
test('first non-empty second empty third non-empty', async () => {
@@ -249,7 +249,7 @@
queryAndAssert<HTMLElement>(element, '#relatedChanges'),
'gr-related-collapse'
);
- assert.isTrue(relatedChanges!.classList.contains('first'));
+ assert.isTrue(relatedChanges.classList.contains('first'));
const submittedTogetherSection = query<HTMLElement>(
element,
'#submittedTogether'
@@ -259,7 +259,7 @@
queryAndAssert<HTMLElement>(element, '#cherryPicks'),
'gr-related-collapse'
);
- assert.isFalse(cherryPicks!.classList.contains('first'));
+ assert.isFalse(cherryPicks.classList.contains('first'));
});
});
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts
index 14ad4ad..a8251aa 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.ts
@@ -69,7 +69,6 @@
import {GrLabelScoreRow} from '../gr-label-score-row/gr-label-score-row';
import {GrLabelScores} from '../gr-label-scores/gr-label-scores';
import {GrThreadList} from '../gr-thread-list/gr-thread-list';
-import {GrOverlay} from '../../shared/gr-overlay/gr-overlay';
const basicFixture = fixtureFromElement('gr-reply-dialog');
@@ -128,7 +127,7 @@
...createChange(),
_number: changeNum,
owner: {
- _account_id: 999 as AccountId as AccountId,
+ _account_id: 999 as AccountId,
display_name: 'Kermit',
},
labels: {
@@ -237,7 +236,7 @@
ignore_automatic_attention_set_rules: true,
});
assert.isFalse(
- (queryAndAssert(element, '#commentList') as GrThreadList).hidden
+ queryAndAssert<GrThreadList>(element, '#commentList').hidden
);
});
@@ -354,7 +353,7 @@
const hasDrafts = draftThreads.length > 0;
element._computeNewAttention(
user,
- reviewers!,
+ reviewers,
emptyAccountInfoInputChanges,
change,
draftThreads,
@@ -1037,20 +1036,20 @@
test('getlabelValue returns value', async () => {
await flush();
- const el = queryAndAssert(
+ const el = queryAndAssert<GrLabelScoreRow>(
queryAndAssert(element, 'gr-label-scores'),
'gr-label-score-row[name="Verified"]'
- ) as GrLabelScoreRow;
+ );
el.setSelectedValue('-1');
assert.equal('-1', element.getLabelValue('Verified'));
});
test('getlabelValue when no score is selected', async () => {
await flush();
- const el = queryAndAssert(
+ const el = queryAndAssert<GrLabelScoreRow>(
queryAndAssert(element, 'gr-label-scores'),
'gr-label-score-row[name="Code-Review"]'
- ) as GrLabelScoreRow;
+ );
el.setSelectedValue('-1');
assert.strictEqual(element.getLabelValue('Verified'), ' 0');
});
@@ -1063,8 +1062,9 @@
element.setLabelValue(label, value);
await flush();
- const labels = (
- queryAndAssert(element, '#labelScores') as GrLabelScores
+ const labels = queryAndAssert<GrLabelScores>(
+ element,
+ '#labelScores'
).getLabelValues();
assert.deepEqual(labels, {
'Code-Review': 0,
@@ -1166,8 +1166,9 @@
observer = overlayObserver('closed');
const expected = 'Group name has 10 members';
assert.notEqual(
- (
- queryAndAssert(element, 'reviewerConfirmationOverlay') as GrOverlay
+ queryAndAssert<HTMLElement>(
+ element,
+ 'reviewerConfirmationOverlay'
).innerText.indexOf(expected),
-1
);
@@ -1181,19 +1182,18 @@
// We should be focused on account entry input.
assert.isTrue(
isFocusInsideElement(
- (queryAndAssert(element, '#reviewers') as GrAccountList).$.entry.$.input
- .$.input
+ queryAndAssert<GrAccountList>(element, '#reviewers').$.entry.$.input.$
+ .input
)
);
// No reviewer/CC should have been added.
assert.equal(
- (queryAndAssert(element, '#ccs') as GrAccountList).additions().length,
+ queryAndAssert<GrAccountList>(element, '#ccs').additions().length,
0
);
assert.equal(
- (queryAndAssert(element, '#reviewers') as GrAccountList).additions()
- .length,
+ queryAndAssert<GrAccountList>(element, '#reviewers').additions().length,
0
);
@@ -1223,8 +1223,8 @@
isVisible(queryAndAssert(element, 'reviewerConfirmationOverlay'))
);
const additions = cc
- ? (queryAndAssert(element, '#ccs') as GrAccountList).additions()
- : (queryAndAssert(element, '#reviewers') as GrAccountList).additions();
+ ? queryAndAssert<GrAccountList>(element, '#ccs').additions()
+ : queryAndAssert<GrAccountList>(element, '#reviewers').additions();
assert.deepEqual(additions, [
{
group: {
@@ -1241,15 +1241,14 @@
if (cc) {
assert.isTrue(
isFocusInsideElement(
- (queryAndAssert(element, '#ccs') as GrAccountList).$.entry.$.input.$
- .input
+ queryAndAssert<GrAccountList>(element, '#ccs').$.entry.$.input.$.input
)
);
} else {
assert.isTrue(
isFocusInsideElement(
- (queryAndAssert(element, '#reviewers') as GrAccountList).$.entry.$
- .input.$.input
+ queryAndAssert<GrAccountList>(element, '#reviewers').$.entry.$.input.$
+ .input
)
);
}
@@ -1273,11 +1272,9 @@
test('_reviewersMutated when account-text-change is fired from ccs', () => {
flush();
assert.isFalse(element._reviewersMutated);
- assert.isTrue(
- (queryAndAssert(element, '#ccs') as GrAccountList).allowAnyInput
- );
+ assert.isTrue(queryAndAssert<GrAccountList>(element, '#ccs').allowAnyInput);
assert.isFalse(
- (queryAndAssert(element, '#reviewers') as GrAccountList).allowAnyInput
+ queryAndAssert<GrAccountList>(element, '#reviewers').allowAnyInput
);
queryAndAssert(element, '#ccs').dispatchEvent(
new CustomEvent('account-text-changed', {bubbles: true, composed: true})
@@ -1341,6 +1338,7 @@
test('400 converts to human-readable server-error', async () => {
stubRestApi('saveChangeReview').callsFake(
(_changeNum, _patchNum, _review, errFn) => {
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
errFn!(
cloneableResponse(
400,
@@ -1370,6 +1368,7 @@
test('non-json 400 is treated as a normal server-error', async () => {
stubRestApi('saveChangeReview').callsFake(
(_changeNum, _patchNum, _review, errFn) => {
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
errFn!(cloneableResponse(400, 'Comment validation error!') as Response);
return Promise.resolve(new Response());
}
@@ -1503,10 +1502,10 @@
// tap() cause a race in some situations in shadow DOM.
// The send button can be tapped before the others, causing the test to
// fail.
- const el = queryAndAssert(
+ const el = queryAndAssert<GrLabelScoreRow>(
queryAndAssert(element, 'gr-label-scores'),
'gr-label-score-row[name="Verified"]'
- ) as GrLabelScoreRow;
+ );
el.setSelectedValue('-1');
tap(queryAndAssert(element, '.send'));
await promise;
@@ -1636,8 +1635,8 @@
test('migrate reviewers between states', async () => {
flush();
- const reviewers = queryAndAssert(element, '#reviewers') as GrAccountList;
- const ccs = queryAndAssert(element, '#ccs') as GrAccountList;
+ const reviewers = queryAndAssert<GrAccountList>(element, '#reviewers');
+ const ccs = queryAndAssert<GrAccountList>(element, '#ccs');
const reviewer1 = makeAccount();
const reviewer2 = makeAccount();
const cc1 = makeAccount();
@@ -1654,7 +1653,7 @@
const mutations: ReviewerInput[] = [];
stubSaveReview((review: ReviewInput) => {
- mutations.push(...review!.reviewers!);
+ mutations.push(...review.reviewers!);
});
// Remove and add to other field.
@@ -1749,8 +1748,8 @@
test('Ignore removal requests if being added as reviewer/CC', async () => {
flush();
- const reviewers = queryAndAssert(element, '#reviewers') as GrAccountList;
- const ccs = queryAndAssert(element, '#ccs') as GrAccountList;
+ const reviewers = queryAndAssert<GrAccountList>(element, '#reviewers');
+ const ccs = queryAndAssert<GrAccountList>(element, '#ccs');
const reviewer1 = makeAccount();
element._reviewers = [reviewer1];
element._ccs = [];
@@ -1763,7 +1762,7 @@
const mutations: ReviewerInput[] = [];
stubSaveReview((review: ReviewInput) => {
- mutations.push(...review!.reviewers!);
+ mutations.push(...review.reviewers!);
});
// Remove and add to other field.
diff --git a/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.ts b/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.ts
index a5bcc3a..f942443 100644
--- a/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-reviewer-list/gr-reviewer-list_test.ts
@@ -323,9 +323,7 @@
assert.equal(element._hiddenReviewerCount, 0);
assert.equal(element._displayedReviewers.length, 4);
assert.equal(element._reviewers.length, 4);
- assert.isTrue(
- (queryAndAssert(element, '.hiddenReviewers') as GrButton).hidden
- );
+ assert.isTrue(queryAndAssert<GrButton>(element, '.hiddenReviewers').hidden);
});
test('account owner comes first in list of reviewers', () => {
@@ -378,7 +376,7 @@
assert.equal(element._displayedReviewers.length, 6);
assert.equal(element._reviewers.length, 9);
assert.isFalse(
- (queryAndAssert(element, '.hiddenReviewers') as GrButton).hidden
+ queryAndAssert<GrButton>(element, '.hiddenReviewers').hidden
);
});
@@ -406,7 +404,7 @@
assert.equal(element._displayedReviewers.length, 6);
assert.equal(element._reviewers.length, 100);
assert.isFalse(
- (queryAndAssert(element, '.hiddenReviewers') as GrButton).hidden
+ queryAndAssert<GrButton>(element, '.hiddenReviewers').hidden
);
tap(queryAndAssert(element, '.hiddenReviewers'));
@@ -414,9 +412,7 @@
assert.equal(element._hiddenReviewerCount, 0);
assert.equal(element._displayedReviewers.length, 100);
assert.equal(element._reviewers.length, 100);
- assert.isTrue(
- (queryAndAssert(element, '.hiddenReviewers') as GrButton).hidden
- );
+ assert.isTrue(queryAndAssert<GrButton>(element, '.hiddenReviewers').hidden);
});
test('votable labels', () => {
diff --git a/polygerrit-ui/app/elements/change/gr-submit-requirements/gr-submit-requirements_test.ts b/polygerrit-ui/app/elements/change/gr-submit-requirements/gr-submit-requirements_test.ts
index 0487316..9fffbda 100644
--- a/polygerrit-ui/app/elements/change/gr-submit-requirements/gr-submit-requirements_test.ts
+++ b/polygerrit-ui/app/elements/change/gr-submit-requirements/gr-submit-requirements_test.ts
@@ -147,7 +147,7 @@
test('without label to vote on', async () => {
const modifiedChange = {...change};
- modifiedChange.submit_requirements![0]!.submittability_expression_result!.expression =
+ modifiedChange.submit_requirements![0]!.submittability_expression_result.expression =
'hasfooter:"Release-Notes"';
element.change = modifiedChange;
await element.updateComplete;
diff --git a/polygerrit-ui/app/elements/core/gr-error-dialog/gr-error-dialog_test.ts b/polygerrit-ui/app/elements/core/gr-error-dialog/gr-error-dialog_test.ts
index 79e92b2..b42b20a 100644
--- a/polygerrit-ui/app/elements/core/gr-error-dialog/gr-error-dialog_test.ts
+++ b/polygerrit-ui/app/elements/core/gr-error-dialog/gr-error-dialog_test.ts
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
import * as MockInteractions from '@polymer/iron-test-helpers/mock-interactions';
import '../../../test/common-test-setup-karma';
import {mockPromise, queryAndAssert} from '../../../test/test-utils';
@@ -35,7 +34,7 @@
const dismissCalled = mockPromise();
element.addEventListener('dismiss', () => dismissCalled.resolve());
MockInteractions.tap(
- (queryAndAssert(element, '#dialog') as GrDialog).confirmButton!
+ queryAndAssert<GrDialog>(element, '#dialog').confirmButton!
);
await dismissCalled;
});
diff --git a/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts b/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts
index cb4d1e6..d9f6d7c 100644
--- a/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts
+++ b/polygerrit-ui/app/elements/diff/gr-diff-host/gr-diff-host.ts
@@ -433,7 +433,7 @@
this.diff = diff;
this.reporting.timeEnd(Timing.DIFF_LOAD, this.timingDetails());
this.reporting.time(Timing.DIFF_CONTENT);
- const event = (await waitForEventOnce(this, 'render')) as CustomEvent;
+ const event = await waitForEventOnce(this, 'render');
this.reporting.timeEnd(Timing.DIFF_CONTENT, this.timingDetails());
if (shouldReportMetric) {
// We report diffViewContentDisplayed only on reload caused
diff --git a/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select_test.ts b/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select_test.ts
index 342fe3a..dc501c8 100644
--- a/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select_test.ts
+++ b/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select_test.ts
@@ -80,10 +80,10 @@
test('enabled/disabled options', async () => {
element.revisions = [
- createRevision(3) as RevisionInfo,
- createEditRevision(2) as EditRevisionInfo,
- createRevision(2) as RevisionInfo,
- createRevision(1) as RevisionInfo,
+ createRevision(3),
+ createEditRevision(2),
+ createRevision(2),
+ createRevision(1),
];
await element.updateComplete;
@@ -259,10 +259,10 @@
];
element.basePatchNum = 1 as BasePatchSetNum;
element.revisions = [
- createRevision(3) as RevisionInfo,
- createEditRevision(2) as EditRevisionInfo,
- createRevision(2, 'description') as RevisionInfo,
- createRevision(1) as RevisionInfo,
+ createRevision(3),
+ createEditRevision(2),
+ createRevision(2, 'description'),
+ createRevision(1),
];
await element.updateComplete;
diff --git a/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls.ts b/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls.ts
index 7229b6d..9c53787 100644
--- a/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls.ts
+++ b/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls.ts
@@ -174,9 +174,7 @@
}
_hideAllDialogs() {
- const dialogs = this.root!.querySelectorAll(
- '.dialog'
- ) as NodeListOf<GrDialog>;
+ const dialogs = this.root!.querySelectorAll<GrDialog>('.dialog');
for (const dialog of dialogs) {
// We set the second param to false, because this function
// is called by _showDialog which when you open either restore,
@@ -327,7 +325,7 @@
_handleFileUploadChanged(event: InputEvent) {
if (!event.target) return;
if (!(event.target instanceof HTMLInputElement)) return;
- const input = event.target as HTMLInputElement;
+ const input = event.target;
if (!input.files) return;
this._fileUpload(input.files);
}
diff --git a/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls_test.ts b/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls_test.ts
index 58fa85e..4dd3838 100644
--- a/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls_test.ts
+++ b/polygerrit-ui/app/elements/edit/gr-edit-controls/gr-edit-controls_test.ts
@@ -65,8 +65,7 @@
setup(() => {
editDiffStub = sinon.stub(GerritNav, 'getEditUrlForDiff');
navStub = sinon.stub(GerritNav, 'navigateToRelativeUrl');
- openAutoComplete =
- element.$.openDialog!.querySelector('gr-autocomplete')!;
+ openAutoComplete = element.$.openDialog.querySelector('gr-autocomplete')!;
});
test('_isValidPath', () => {
@@ -131,7 +130,7 @@
eventStub = sinon.stub(element, 'dispatchEvent');
deleteStub = stubRestApi('deleteFileInChangeEdit');
deleteAutocomplete =
- element.$.deleteDialog!.querySelector('gr-autocomplete')!;
+ element.$.deleteDialog.querySelector('gr-autocomplete')!;
});
test('delete', async () => {
@@ -190,7 +189,7 @@
MockInteractions.tap(queryAndAssert(element, '#delete'));
return showDialogSpy.lastCall.returnValue.then(() => {
assert.isTrue(element.$.deleteDialog.disabled);
- element.$.deleteDialog!.querySelector('gr-autocomplete')!.text =
+ element.$.deleteDialog.querySelector('gr-autocomplete')!.text =
'src/test.cpp';
assert.isFalse(element.$.deleteDialog.disabled);
MockInteractions.tap(
@@ -212,7 +211,7 @@
eventStub = sinon.stub(element, 'dispatchEvent');
renameStub = stubRestApi('renameFileInChangeEdit');
renameAutocomplete =
- element.$.renameDialog!.querySelector('gr-autocomplete')!;
+ element.$.renameDialog.querySelector('gr-autocomplete')!;
});
test('rename', async () => {
@@ -281,7 +280,7 @@
MockInteractions.tap(queryAndAssert(element, '#rename'));
return showDialogSpy.lastCall.returnValue.then(() => {
assert.isTrue(element.$.renameDialog.disabled);
- element.$.renameDialog!.querySelector('gr-autocomplete')!.text =
+ element.$.renameDialog.querySelector('gr-autocomplete')!.text =
'src/test.cpp';
element.$.newPathIronInput.bindValue = 'src/test.newPath';
assert.isFalse(element.$.renameDialog.disabled);
@@ -307,7 +306,7 @@
test('restore hidden by default', () => {
assert.isTrue(
- queryAndAssert(element, '#restore').classList!.contains('invisible')!
+ queryAndAssert(element, '#restore').classList.contains('invisible')!
);
});
@@ -403,7 +402,7 @@
await element.openOpenDialog('test/path.cpp');
assert.isFalse(element.$.openDialog.hasAttribute('hidden'));
assert.equal(
- element.$.openDialog!.querySelector('gr-autocomplete')!.text,
+ element.$.openDialog.querySelector('gr-autocomplete')!.text,
'test/path.cpp'
);
});
@@ -414,20 +413,20 @@
MockInteractions.tap(element.$.openDialog);
flush();
- assert.equal(spy!.lastCall!.returnValue!.id, 'openDialog');
+ assert.equal(spy.lastCall.returnValue!.id, 'openDialog');
MockInteractions.tap(element.$.deleteDialog);
flush();
- assert.equal(spy!.lastCall!.returnValue!.id, 'deleteDialog');
+ assert.equal(spy.lastCall.returnValue!.id, 'deleteDialog');
MockInteractions.tap(
- element.$.deleteDialog!.querySelector('gr-autocomplete')!
+ element.$.deleteDialog.querySelector('gr-autocomplete')!
);
flush();
- assert.equal(spy!.lastCall!.returnValue!.id, 'deleteDialog');
+ assert.equal(spy.lastCall.returnValue!.id, 'deleteDialog');
MockInteractions.tap(element);
flush();
- assert.notOk(spy!.lastCall!.returnValue);
+ assert.notOk(spy.lastCall.returnValue);
});
});
diff --git a/polygerrit-ui/app/elements/plugins/gr-endpoint-decorator/gr-endpoint-decorator.ts b/polygerrit-ui/app/elements/plugins/gr-endpoint-decorator/gr-endpoint-decorator.ts
index cb8bffb..8a01ef7 100644
--- a/polygerrit-ui/app/elements/plugins/gr-endpoint-decorator/gr-endpoint-decorator.ts
+++ b/polygerrit-ui/app/elements/plugins/gr-endpoint-decorator/gr-endpoint-decorator.ts
@@ -102,7 +102,7 @@
[...directChildren, ...shadowChildren]
.filter(node => node.nodeName !== 'GR-ENDPOINT-PARAM')
.filter(node => node.nodeName !== 'SLOT')
- .forEach(node => (node as ChildNode).remove());
+ .forEach(node => node.remove());
const el = document.createElement(name);
return this._initProperties(el, plugin).then((el: HTMLElement) =>
this._appendChild(el)
diff --git a/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.ts b/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.ts
index bfe396c..eff22d1 100644
--- a/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.ts
+++ b/polygerrit-ui/app/elements/settings/gr-change-table-editor/gr-change-table-editor.ts
@@ -81,12 +81,10 @@
*/
_getDisplayedColumns() {
if (this.root === null) return [];
- return (
- Array.from(
- this.root.querySelectorAll(
- '.checkboxContainer input:not([name=number])'
- )
- ) as HTMLInputElement[]
+ return Array.from(
+ this.root.querySelectorAll<HTMLInputElement>(
+ '.checkboxContainer input:not([name=number])'
+ )
)
.filter(checkbox => checkbox.checked)
.map(checkbox => checkbox.name);
diff --git a/polygerrit-ui/app/elements/settings/gr-email-editor/gr-email-editor_test.ts b/polygerrit-ui/app/elements/settings/gr-email-editor/gr-email-editor_test.ts
index e4c1584..e478381 100644
--- a/polygerrit-ui/app/elements/settings/gr-email-editor/gr-email-editor_test.ts
+++ b/polygerrit-ui/app/elements/settings/gr-email-editor/gr-email-editor_test.ts
@@ -43,7 +43,7 @@
test('renders', () => {
const rows = element
.shadowRoot!.querySelector('table')!
- .querySelectorAll('tbody tr') as NodeListOf<HTMLTableRowElement>;
+ .querySelectorAll('tbody tr');
assert.equal(rows.length, 3);
@@ -69,7 +69,7 @@
const preferredChangedSpy = sinon.spy(element, '_handlePreferredChange');
const radios = element
.shadowRoot!.querySelector('table')!
- .querySelectorAll('input[type=radio]') as NodeListOf<HTMLInputElement>;
+ .querySelectorAll<HTMLInputElement>('input[type=radio]');
assert.isFalse(element.hasUnsavedChanges);
assert.isNotOk(element._newPreferred);
@@ -125,7 +125,7 @@
// Delete the first email and set the last as preferred.
rows[0].querySelector('gr-button')!.click();
- (rows[2].querySelector('input[type=radio]')! as HTMLInputElement).click();
+ rows[2].querySelector<HTMLInputElement>('input[type=radio]')!.click();
assert.isTrue(element.hasUnsavedChanges);
assert.equal(element._newPreferred, 'email@three.com');
diff --git a/polygerrit-ui/app/elements/shared/gr-comment-thread/gr-comment-thread.ts b/polygerrit-ui/app/elements/shared/gr-comment-thread/gr-comment-thread.ts
index ecb5761..5b95846 100644
--- a/polygerrit-ui/app/elements/shared/gr-comment-thread/gr-comment-thread.ts
+++ b/polygerrit-ui/app/elements/shared/gr-comment-thread/gr-comment-thread.ts
@@ -735,11 +735,7 @@
assertIsDefined(this.changeNum, 'changeNum');
assertIsDefined(this.repoName, 'repoName');
const url = generateAbsoluteUrl(
- GerritNav.getUrlForCommentsTab(
- this.changeNum!,
- this.repoName!,
- comment.id
- )
+ GerritNav.getUrlForCommentsTab(this.changeNum, this.repoName, comment.id)
);
assertIsDefined(url, 'url for comment');
navigator.clipboard.writeText(generateAbsoluteUrl(url)).then(() => {
diff --git a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts
index a0fcc42..2af218d 100644
--- a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts
+++ b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment.ts
@@ -819,7 +819,7 @@
if (!comment || !this.changeNum || !this.repoName) return '';
if (!comment.id) throw new Error('comment must have an id');
return GerritNav.getUrlForComment(
- this.changeNum as NumericChangeId,
+ this.changeNum,
this.repoName,
comment.id
);
diff --git a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_test.ts b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_test.ts
index 16ab2a2..62dcd69 100644
--- a/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_test.ts
+++ b/polygerrit-ui/app/elements/shared/gr-comment/gr-comment_test.ts
@@ -405,7 +405,7 @@
// messageText was empty so overwrite the message now
assert.equal(element.messageText, 'hello world');
- element.comment!.message = 'new message';
+ element.comment.message = 'new message';
await element.updateComplete;
// messageText was already set so do not overwrite it
assert.equal(element.messageText, 'hello world');
@@ -430,7 +430,7 @@
// messageText was empty so overwrite the message now
assert.equal(element.messageText, 'hello world');
- element.comment!.message = 'new message';
+ element.comment.message = 'new message';
await element.updateComplete;
// messageText was already set so do not overwrite it
assert.equal(element.messageText, 'hello world');
@@ -630,7 +630,7 @@
'create-fix-comment'
);
element.comment = createRobotComment();
- element.comments = [element.comment!];
+ element.comments = [element.comment];
await element.updateComplete;
tap(queryAndAssert(element, '.fix'));
diff --git a/polygerrit-ui/app/elements/shared/gr-copy-clipboard/gr-copy-clipboard_test.ts b/polygerrit-ui/app/elements/shared/gr-copy-clipboard/gr-copy-clipboard_test.ts
index ef62fe9..6c43c43 100644
--- a/polygerrit-ui/app/elements/shared/gr-copy-clipboard/gr-copy-clipboard_test.ts
+++ b/polygerrit-ui/app/elements/shared/gr-copy-clipboard/gr-copy-clipboard_test.ts
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
import '../../../test/common-test-setup-karma';
import './gr-copy-clipboard';
import {GrCopyClipboard} from './gr-copy-clipboard';
@@ -53,10 +52,10 @@
const ironInputElement = queryAndAssert(element, 'iron-input');
assert.notEqual(getComputedStyle(ironInputElement).display, 'none');
- const inputElement = queryAndAssert(element, 'input') as HTMLInputElement;
+ const inputElement = queryAndAssert<HTMLInputElement>(element, 'input');
MockInteractions.tap(inputElement);
assert.equal(inputElement.selectionStart, 0);
- assert.equal(inputElement.selectionEnd, element.text!.length! - 1);
+ assert.equal(inputElement.selectionEnd, element.text!.length - 1);
});
test('hideInput', async () => {
diff --git a/polygerrit-ui/app/elements/shared/gr-dropdown-list/gr-dropdown-list_test.ts b/polygerrit-ui/app/elements/shared/gr-dropdown-list/gr-dropdown-list_test.ts
index a1c2b0f..0416bf7 100644
--- a/polygerrit-ui/app/elements/shared/gr-dropdown-list/gr-dropdown-list_test.ts
+++ b/polygerrit-ui/app/elements/shared/gr-dropdown-list/gr-dropdown-list_test.ts
@@ -116,15 +116,15 @@
assert.isNotOk(items[0].querySelector('gr-date-formatter'));
assert.isNotOk(items[0].querySelector('.bottomContent'));
- assert.equal(items[0].dataset.value, element.items![0].value as any);
- assert.equal(mobileItems[0].value, element.items![0].value);
+ assert.equal(items[0].dataset.value, element.items[0].value as any);
+ assert.equal(mobileItems[0].value, element.items[0].value);
assert.equal(
queryAndAssert<HTMLDivElement>(items[0], '.topContent div').innerText,
- element.items![0].text
+ element.items[0].text
);
// Since no mobile specific text, it should fall back to text.
- assert.equal(mobileItems[0].text, element.items![0].text);
+ assert.equal(mobileItems[0].text, element.items[0].text);
// Second Item
// The second item should have top text, bottom text, and no date.
@@ -135,19 +135,19 @@
assert.isNotOk(items[1].querySelector('gr-date-formatter'));
assert.isOk(items[1].querySelector('.bottomContent'));
- assert.equal(items[1].dataset.value, element.items![1].value as any);
- assert.equal(mobileItems[1].value, element.items![1].value);
+ assert.equal(items[1].dataset.value, element.items[1].value as any);
+ assert.equal(mobileItems[1].value, element.items[1].value);
assert.equal(
queryAndAssert<HTMLDivElement>(items[1], '.topContent div').innerText,
- element.items![1].text
+ element.items[1].text
);
// Since there is mobile specific text, it should that.
- assert.equal(mobileItems[1].text, element.items![1].mobileText);
+ assert.equal(mobileItems[1].text, element.items[1].mobileText);
// Since this item is selected, and it has triggerText defined, that
// should be used.
- assert.equal(element.text, element.items![1].triggerText);
+ assert.equal(element.text, element.items[1].triggerText);
// Third item
// The third item should be disabled, and have a date, and bottom content.
@@ -158,15 +158,15 @@
assert.isOk(items[2].querySelector('gr-date-formatter'));
assert.isOk(items[2].querySelector('.bottomContent'));
- assert.equal(items[2].dataset.value, element.items![2].value as any);
- assert.equal(mobileItems[2].value, element.items![2].value);
+ assert.equal(items[2].dataset.value, element.items[2].value as any);
+ assert.equal(mobileItems[2].value, element.items[2].value);
assert.equal(
queryAndAssert<HTMLDivElement>(items[2], '.topContent div').innerText,
- element.items![2].text
+ element.items[2].text
);
// Since there is mobile specific text, it should that.
- assert.equal(mobileItems[2].text, element.items![2].mobileText);
+ assert.equal(mobileItems[2].text, element.items[2].mobileText);
// Select a new item.
MockInteractions.tap(items[0]);
@@ -176,6 +176,6 @@
assert.isTrue(mobileItems[0].selected);
// Since no triggerText, the fallback is used.
- assert.equal(element.text, element.items![0].text);
+ assert.equal(element.text, element.items[0].text);
});
});
diff --git a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-plugin-endpoints.ts b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-plugin-endpoints.ts
index 38b4aee..bb0287a 100644
--- a/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-plugin-endpoints.ts
+++ b/polygerrit-ui/app/elements/shared/gr-js-api-interface/gr-plugin-endpoints.ts
@@ -72,7 +72,7 @@
_getOrCreateModuleInfo(plugin: PluginApi, opts: Options): ModuleInfo {
const {endpoint, slot, type, moduleName, domHook} = opts;
const existingModule = this._endpoints
- .get(endpoint!)!
+ .get(endpoint)!
.find(
(info: ModuleInfo) =>
info.plugin === plugin &&
@@ -91,7 +91,7 @@
domHook,
slot,
};
- this._endpoints.get(endpoint!)!.push(newModule);
+ this._endpoints.get(endpoint)!.push(newModule);
return newModule;
}
}
diff --git a/polygerrit-ui/app/elements/shared/gr-lib-loader/resemblejs_config.ts b/polygerrit-ui/app/elements/shared/gr-lib-loader/resemblejs_config.ts
index 872d01c..5fd75da 100644
--- a/polygerrit-ui/app/elements/shared/gr-lib-loader/resemblejs_config.ts
+++ b/polygerrit-ui/app/elements/shared/gr-lib-loader/resemblejs_config.ts
@@ -20,7 +20,7 @@
src: 'bower_components/resemblejs/resemble.js',
checkPresent: () => window.resemble !== undefined,
configureCallback: () => {
- window.resemble!.outputSettings({
+ window.resemble.outputSettings({
errorColor: {red: 255, green: 0, blue: 255},
errorType: 'flat',
transparency: 0,
diff --git a/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-apis/gr-rest-api-helper_test.ts b/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-apis/gr-rest-api-helper_test.ts
index 209cb5c..ef90764 100644
--- a/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-apis/gr-rest-api-helper_test.ts
+++ b/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-rest-apis/gr-rest-api-helper_test.ts
@@ -112,7 +112,7 @@
});
assert.equal(writeScheduler.scheduled.length, 0);
await assertReadRequest();
- const res: Response = (await promise) as Response;
+ const res: Response = await promise;
assert.equal(await res.text(), 'Yay');
});
@@ -124,7 +124,7 @@
});
assert.equal(readScheduler.scheduled.length, 0);
await assertWriteRequest();
- const res: Response = (await promise) as Response;
+ const res: Response = await promise;
assert.equal(await res.text(), 'Yay');
});
});
@@ -274,7 +274,7 @@
// But we expect the result from the network to return a 429 error when
// it's no longer being retried.
- const res: Response = (await promise) as Response;
+ const res: Response = await promise;
assert.equal(res.status, 429);
});
@@ -306,7 +306,7 @@
await flush();
// We expect a retry.
await assertReadRequest();
- const res: Response = (await promise) as Response;
+ const res: Response = await promise;
assert.equal(await res.text(), 'Yay');
});
});
diff --git a/polygerrit-ui/app/elements/shared/gr-tooltip/gr-tooltip_test.ts b/polygerrit-ui/app/elements/shared/gr-tooltip/gr-tooltip_test.ts
index b693a9e..db25c52 100644
--- a/polygerrit-ui/app/elements/shared/gr-tooltip/gr-tooltip_test.ts
+++ b/polygerrit-ui/app/elements/shared/gr-tooltip/gr-tooltip_test.ts
@@ -26,7 +26,7 @@
let element: GrTooltip;
setup(async () => {
- element = basicFixture.instantiate() as GrTooltip;
+ element = basicFixture.instantiate();
await element.updateComplete;
});
diff --git a/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls.ts b/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls.ts
index 92cf968..0231967 100644
--- a/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls.ts
+++ b/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls.ts
@@ -462,7 +462,7 @@
referenceLine: number
) {
assertIsDefined(this.diff, 'diff');
- const syntaxTree = this.diff!.meta_b.syntax_tree;
+ const syntaxTree = this.diff.meta_b.syntax_tree;
const outlineSyntaxPath = findBlockTreePathForLine(
referenceLine,
syntaxTree
diff --git a/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls_test.ts b/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls_test.ts
index 7af40ed..0755dd0 100644
--- a/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls_test.ts
+++ b/polygerrit-ui/app/embed/diff/gr-context-controls/gr-context-controls_test.ts
@@ -373,7 +373,7 @@
tooltipBelow.querySelector('.breadcrumbTooltip')!.textContent?.trim(),
'20 common lines'
);
- assert.equal(tooltipAbove!.getAttribute('position'), 'top');
- assert.equal(tooltipBelow!.getAttribute('position'), 'bottom');
+ assert.equal(tooltipAbove.getAttribute('position'), 'top');
+ assert.equal(tooltipBelow.getAttribute('position'), 'bottom');
});
});
diff --git a/polygerrit-ui/app/embed/diff/gr-diff-highlight/gr-diff-highlight.ts b/polygerrit-ui/app/embed/diff/gr-diff-highlight/gr-diff-highlight.ts
index 4c51201..2ee6c9f 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff-highlight/gr-diff-highlight.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff-highlight/gr-diff-highlight.ts
@@ -474,9 +474,7 @@
return;
}
- let actionBox = this.shadowRoot!.querySelector(
- 'gr-selection-action-box'
- ) as GrSelectionActionBox | null;
+ let actionBox = this.shadowRoot!.querySelector('gr-selection-action-box');
if (!actionBox) {
actionBox = document.createElement('gr-selection-action-box');
this.root!.insertBefore(actionBox, this.root!.firstElementChild);
diff --git a/polygerrit-ui/app/embed/diff/gr-diff-image-viewer/gr-image-viewer.ts b/polygerrit-ui/app/embed/diff/gr-diff-image-viewer/gr-image-viewer.ts
index 32a3282..c25b284 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff-image-viewer/gr-image-viewer.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff-image-viewer/gr-image-viewer.ts
@@ -889,7 +889,7 @@
}
private handleFollowMouse(event: MouseEvent) {
- const rect = this.imageArea!.getBoundingClientRect();
+ const rect = this.imageArea.getBoundingClientRect();
const offsetX = event.clientX - rect.left;
const offsetY = event.clientY - rect.top;
const fractionX = offsetX / rect.width;
diff --git a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
index e35eff5..2aa220d 100644
--- a/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
+++ b/polygerrit-ui/app/embed/diff/gr-diff/gr-diff.ts
@@ -922,7 +922,7 @@
// The thread group may already have a slot with the right name, but
// that is okay because the first matching slot is used and the rest
// are ignored.
- const slot = document.createElement('slot') as HTMLSlotElement;
+ const slot = document.createElement('slot');
if (slotAtt) slot.name = slotAtt;
threadGroupEl.appendChild(slot);
lastEl = threadEl;
diff --git a/polygerrit-ui/app/embed/diff/gr-ranged-comment-layer/gr-ranged-comment-layer.ts b/polygerrit-ui/app/embed/diff/gr-ranged-comment-layer/gr-ranged-comment-layer.ts
index 11712dc..9cab977 100644
--- a/polygerrit-ui/app/embed/diff/gr-ranged-comment-layer/gr-ranged-comment-layer.ts
+++ b/polygerrit-ui/app/embed/diff/gr-ranged-comment-layer/gr-ranged-comment-layer.ts
@@ -285,7 +285,7 @@
// Normalize invalid ranges where the start is after the end but the
// start still makes sense. Set the end to the end of the line.
// @see Issue 5744
- if (range.start! >= range.end! && range.start! < line.text.length) {
+ if (range.start >= range.end && range.start < line.text.length) {
range.end = line.text.length;
this.dispatchEvent(
new CustomEvent('normalize-range', {
diff --git a/polygerrit-ui/app/mixins/iron-fit-mixin/iron-fit-mixin.ts b/polygerrit-ui/app/mixins/iron-fit-mixin/iron-fit-mixin.ts
index 57e034f..0a4466a 100644
--- a/polygerrit-ui/app/mixins/iron-fit-mixin/iron-fit-mixin.ts
+++ b/polygerrit-ui/app/mixins/iron-fit-mixin/iron-fit-mixin.ts
@@ -39,4 +39,4 @@
// TODO(TS): mixinBehaviors in some lib is returning: `new () => T` instead
// which will fail the type check due to missing IronFitBehavior interface
// eslint-disable-next-line @typescript-eslint/no-explicit-any
- mixinBehaviors([IronFitBehavior], superClass) as any;
+ mixinBehaviors([IronFitBehavior], superClass);
diff --git a/polygerrit-ui/app/mixins/iron-overlay-mixin/iron-overlay-mixin.ts b/polygerrit-ui/app/mixins/iron-overlay-mixin/iron-overlay-mixin.ts
index 8429e38..2e7dbca 100644
--- a/polygerrit-ui/app/mixins/iron-overlay-mixin/iron-overlay-mixin.ts
+++ b/polygerrit-ui/app/mixins/iron-overlay-mixin/iron-overlay-mixin.ts
@@ -39,4 +39,4 @@
// instead which will fail the type check due to missing
// IronOverlayBehavior interface
// eslint-disable-next-line @typescript-eslint/no-explicit-any
- mixinBehaviors([IronOverlayBehavior], superClass) as any;
+ mixinBehaviors([IronOverlayBehavior], superClass);
diff --git a/polygerrit-ui/app/models/change/change-model.ts b/polygerrit-ui/app/models/change/change-model.ts
index 6a93f33..b9a768c 100644
--- a/polygerrit-ui/app/models/change/change-model.ts
+++ b/polygerrit-ui/app/models/change/change-model.ts
@@ -244,7 +244,7 @@
this.updateStateReviewedFiles([]);
return of(undefined);
}
- return from(this.fetchReviewedFiles(currentPatchNum!, changeNum!));
+ return from(this.fetchReviewedFiles(currentPatchNum, changeNum));
})
)
.subscribe(),
diff --git a/polygerrit-ui/app/models/comments/comments-model.ts b/polygerrit-ui/app/models/comments/comments-model.ts
index 03b71a4..00f92b5 100644
--- a/polygerrit-ui/app/models/comments/comments-model.ts
+++ b/polygerrit-ui/app/models/comments/comments-model.ts
@@ -330,7 +330,7 @@
}
finalize() {
- document.removeEventListener('reload', this.reloadListener!);
+ document.removeEventListener('reload', this.reloadListener);
for (const s of this.subscriptions) {
s.unsubscribe();
}
diff --git a/polygerrit-ui/app/models/comments/comments-model_test.ts b/polygerrit-ui/app/models/comments/comments-model_test.ts
index 9674794..01e2f6b 100644
--- a/polygerrit-ui/app/models/comments/comments-model_test.ts
+++ b/polygerrit-ui/app/models/comments/comments-model_test.ts
@@ -17,7 +17,6 @@
import '../../test/common-test-setup-karma';
import {createDraft} from '../../test/test-data-generators';
import {UrlEncodedCommentId} from '../../types/common';
-import {DraftInfo} from '../../utils/comment-util';
import './comments-model';
import {CommentsModel} from './comments-model';
import {deleteDraft} from './comments-model';
@@ -42,7 +41,7 @@
comments: {},
robotComments: {},
drafts: {
- [draft.path!]: [draft as DraftInfo],
+ [draft.path!]: [draft],
},
portedComments: {},
portedDrafts: {},
diff --git a/polygerrit-ui/app/services/app-context-init.ts b/polygerrit-ui/app/services/app-context-init.ts
index 10aa266..dfaa9c3 100644
--- a/polygerrit-ui/app/services/app-context-init.ts
+++ b/polygerrit-ui/app/services/app-context-init.ts
@@ -49,31 +49,31 @@
new FlagsServiceImplementation(),
reportingService: (ctx: Partial<AppContext>) => {
assertIsDefined(ctx.flagsService, 'flagsService)');
- return new GrReporting(ctx.flagsService!);
+ return new GrReporting(ctx.flagsService);
},
eventEmitter: (_ctx: Partial<AppContext>) => new EventEmitter(),
authService: (ctx: Partial<AppContext>) => {
assertIsDefined(ctx.eventEmitter, 'eventEmitter');
- return new Auth(ctx.eventEmitter!);
+ return new Auth(ctx.eventEmitter);
},
restApiService: (ctx: Partial<AppContext>) => {
assertIsDefined(ctx.authService, 'authService');
- return new GrRestApiServiceImpl(ctx.authService!);
+ return new GrRestApiServiceImpl(ctx.authService);
},
jsApiService: (ctx: Partial<AppContext>) => {
const reportingService = ctx.reportingService;
assertIsDefined(reportingService, 'reportingService');
- return new GrJsApiInterface(reportingService!);
+ return new GrJsApiInterface(reportingService);
},
storageService: (_ctx: Partial<AppContext>) => new GrStorageService(),
userModel: (ctx: Partial<AppContext>) => {
assertIsDefined(ctx.restApiService, 'restApiService');
- return new UserModel(ctx.restApiService!);
+ return new UserModel(ctx.restApiService);
},
shortcutsService: (ctx: Partial<AppContext>) => {
assertIsDefined(ctx.userModel, 'userModel');
assertIsDefined(ctx.reportingService, 'reportingService');
- return new ShortcutsService(ctx.userModel, ctx.reportingService!);
+ return new ShortcutsService(ctx.userModel, ctx.reportingService);
},
pluginsModel: (_ctx: Partial<AppContext>) => new PluginsModel(),
highlightService: (_ctx: Partial<AppContext>) => new HighlightService(),
@@ -85,7 +85,7 @@
appContext: AppContext
): Map<DependencyToken<unknown>, Finalizable> {
const dependencies = new Map<DependencyToken<unknown>, Finalizable>();
- const browserModel = new BrowserModel(appContext.userModel!);
+ const browserModel = new BrowserModel(appContext.userModel);
dependencies.set(browserModelToken, browserModel);
const changeModel = new ChangeModel(
diff --git a/polygerrit-ui/app/services/registry_test.ts b/polygerrit-ui/app/services/registry_test.ts
index d677be0..3bb584a 100644
--- a/polygerrit-ui/app/services/registry_test.ts
+++ b/polygerrit-ui/app/services/registry_test.ts
@@ -48,9 +48,8 @@
foo: (_ctx: Partial<DemoContext>) => new Foo(final),
bar: (ctx: Partial<DemoContext>) => new Bar(final, ctx.foo),
};
- const demoContext: DemoContext & Finalizable = create<DemoContext>(
- demoRegistry
- ) as DemoContext & Finalizable;
+ const demoContext: DemoContext & Finalizable =
+ create<DemoContext>(demoRegistry);
demoContext.finalize();
assert.deepEqual(final, ['Foo', 'Bar']);
});
diff --git a/polygerrit-ui/app/test/test-app-context-init.ts b/polygerrit-ui/app/test/test-app-context-init.ts
index 7a9eee9..0d182d3 100644
--- a/polygerrit-ui/app/test/test-app-context-init.ts
+++ b/polygerrit-ui/app/test/test-app-context-init.ts
@@ -55,17 +55,17 @@
restApiService: (_ctx: Partial<AppContext>) => grRestApiMock,
jsApiService: (ctx: Partial<AppContext>) => {
assertIsDefined(ctx.reportingService, 'reportingService');
- return new GrJsApiInterface(ctx.reportingService!);
+ return new GrJsApiInterface(ctx.reportingService);
},
storageService: (_ctx: Partial<AppContext>) => grStorageMock,
userModel: (ctx: Partial<AppContext>) => {
assertIsDefined(ctx.restApiService, 'restApiService');
- return new UserModel(ctx.restApiService!);
+ return new UserModel(ctx.restApiService);
},
shortcutsService: (ctx: Partial<AppContext>) => {
assertIsDefined(ctx.userModel, 'userModel');
assertIsDefined(ctx.reportingService, 'reportingService');
- return new ShortcutsService(ctx.userModel!, ctx.reportingService!);
+ return new ShortcutsService(ctx.userModel, ctx.reportingService);
},
pluginsModel: (_ctx: Partial<AppContext>) => new PluginsModel(),
highlightService: (_ctx: Partial<AppContext>) => new MockHighlightService(),
@@ -84,7 +84,7 @@
resolver: <T>(token: DependencyToken<T>) => T
): Map<DependencyToken<unknown>, Creator<unknown>> {
const dependencies = new Map();
- const browserModel = () => new BrowserModel(appContext.userModel!);
+ const browserModel = () => new BrowserModel(appContext.userModel);
dependencies.set(browserModelToken, browserModel);
const changeModelCreator = () =>
diff --git a/polygerrit-ui/app/utils/attention-set-util.ts b/polygerrit-ui/app/utils/attention-set-util.ts
index b0b7ef8..0347581 100644
--- a/polygerrit-ui/app/utils/attention-set-util.ts
+++ b/polygerrit-ui/app/utils/attention-set-util.ts
@@ -49,7 +49,7 @@
if (change?.attention_set === undefined) return '';
if (account?._account_id === undefined) return '';
- const attentionSetInfo = change.attention_set[account._account_id!];
+ const attentionSetInfo = change.attention_set[account._account_id];
if (attentionSetInfo?.reason === undefined) return '';
diff --git a/polygerrit-ui/app/utils/comment-util.ts b/polygerrit-ui/app/utils/comment-util.ts
index 501da7d..2aefa99 100644
--- a/polygerrit-ui/app/utils/comment-util.ts
+++ b/polygerrit-ui/app/utils/comment-util.ts
@@ -111,7 +111,7 @@
const date1 = parseDate(c1.updated);
const date2 = parseDate(c2.updated);
- const dateDiff = date1!.valueOf() - date2!.valueOf();
+ const dateDiff = date1.valueOf() - date2.valueOf();
if (dateDiff !== 0) return dateDiff;
const id1 = c1.id;
@@ -390,7 +390,7 @@
};
} else {
return {
- patchNum: latestPatchNum as RevisionPatchSetNum,
+ patchNum: latestPatchNum,
basePatchNum: comment.patch_set as BasePatchSetNum,
};
}