Convert gr-label-scores_test to typescript
Change-Id: I8770a1bf8cc666559038ed0d47a9fed8a7fc0af3
diff --git a/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores_test.js b/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores_test.ts
similarity index 61%
rename from polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores_test.js
rename to polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores_test.ts
index 2335307..58fe189 100644
--- a/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores_test.js
+++ b/polygerrit-ui/app/elements/change/gr-label-scores/gr-label-scores_test.ts
@@ -15,20 +15,28 @@
* limitations under the License.
*/
-import '../../../test/common-test-setup-karma.js';
-import './gr-label-scores.js';
-import {stubRestApi} from '../../../test/test-utils.js';
+import '../../../test/common-test-setup-karma';
+import './gr-label-scores';
+import {queryAndAssert, stubRestApi} from '../../../test/test-utils';
+import {GrLabelScores} from './gr-label-scores';
+import {AccountId} from '../../../types/common';
+import {GrLabelScoreRow} from '../gr-label-score-row/gr-label-score-row';
+import {
+ createAccountWithId,
+ createChange,
+} from '../../../test/test-data-generators';
const basicFixture = fixtureFromElement('gr-label-scores');
suite('gr-label-scores tests', () => {
- let element;
+ const accountId = 123 as AccountId;
+ let element: GrLabelScores;
setup(async () => {
- stubRestApi('getLoggedIn').returns(Promise.resolve(false));
+ stubRestApi('getLoggedIn').resolves(false);
element = basicFixture.instantiate();
element.change = {
- _number: '123',
+ ...createChange(),
labels: {
'Code-Review': {
values: {
@@ -40,12 +48,14 @@
},
default_value: 0,
value: 1,
- all: [{
- _account_id: 123,
- value: 1,
- }],
+ all: [
+ {
+ _account_id: accountId,
+ value: 1,
+ },
+ ],
},
- 'Verified': {
+ Verified: {
values: {
'0': 'No score',
'+1': 'good',
@@ -55,50 +65,42 @@
},
default_value: 0,
value: 1,
- all: [{
- _account_id: 123,
- value: 1,
- }],
+ all: [
+ {
+ _account_id: accountId,
+ value: 1,
+ },
+ ],
},
},
};
- element.account = {
- _account_id: 123,
- };
+ element.account = createAccountWithId(accountId);
element.permittedLabels = {
- 'Code-Review': [
- '-2',
- '-1',
- ' 0',
- '+1',
- '+2',
- ],
- 'Verified': [
- '-1',
- ' 0',
- '+1',
- ],
+ 'Code-Review': ['-2', '-1', ' 0', '+1', '+2'],
+ Verified: ['-1', ' 0', '+1'],
};
await flush();
});
test('get and set label scores', () => {
- for (const label of Object.keys(element.permittedLabels)) {
- const row = element.shadowRoot
- .querySelector('gr-label-score-row[name="' + label + '"]');
- row.setSelectedValue(-1);
+ for (const label of Object.keys(element.permittedLabels!)) {
+ const row = queryAndAssert<GrLabelScoreRow>(
+ element,
+ 'gr-label-score-row[name="' + label + '"]'
+ );
+ row.setSelectedValue('-1');
}
assert.deepEqual(element.getLabelValues(), {
'Code-Review': -1,
- 'Verified': -1,
+ Verified: -1,
});
});
test('getLabelValues includeDefaults', async () => {
element.change = {
- _number: '123',
+ ...createChange(),
labels: {
'Code-Review': {
values: {'0': 'meh', '+1': 'good', '-1': 'bad'},
@@ -114,9 +116,14 @@
test('_getVoteForAccount', () => {
const labelName = 'Code-Review';
- assert.strictEqual(element._getVoteForAccount(
- element.change.labels, labelName, element.account),
- '+1');
+ assert.strictEqual(
+ element._getVoteForAccount(
+ element.change!.labels,
+ labelName,
+ element.account
+ ),
+ '+1'
+ );
});
test('_computeColumns', () => {
@@ -132,26 +139,30 @@
test('_computeLabelAccessClass undefined case', () => {
assert.strictEqual(
- element._computeLabelAccessClass(undefined, undefined), '');
- assert.strictEqual(
- element._computeLabelAccessClass('', undefined), '');
- assert.strictEqual(
- element._computeLabelAccessClass(undefined, {}), '');
+ element._computeLabelAccessClass(undefined, undefined),
+ ''
+ );
+ assert.strictEqual(element._computeLabelAccessClass('', undefined), '');
+ assert.strictEqual(element._computeLabelAccessClass(undefined, {}), '');
});
test('_computeLabelAccessClass has access', () => {
assert.strictEqual(
- element._computeLabelAccessClass('foo', {foo: ['']}), 'access');
+ element._computeLabelAccessClass('foo', {foo: ['']}),
+ 'access'
+ );
});
test('_computeLabelAccessClass no access', () => {
assert.strictEqual(
- element._computeLabelAccessClass('zap', {foo: ['']}), 'no-access');
+ element._computeLabelAccessClass('zap', {foo: ['']}),
+ 'no-access'
+ );
});
test('changes in label score are reflected in _labels', () => {
element.change = {
- _number: '123',
+ ...createChange(),
labels: {
'Code-Review': {
values: {
@@ -163,7 +174,7 @@
},
default_value: 0,
},
- 'Verified': {
+ Verified: {
values: {
'0': 'No score',
'+1': 'good',
@@ -175,15 +186,17 @@
},
},
};
- assert.deepEqual(element._labels [
- ({name: 'Code-Review', value: null}, {name: 'Verified', value: null})
+ assert.deepEqual(element._labels, [
+ {name: 'Code-Review', value: null},
+ {name: 'Verified', value: null},
]);
- element.set(['change', 'labels', 'Verified', 'all'],
- [{_account_id: 123, value: 1}]);
+ element.set(
+ ['change', 'labels', 'Verified', 'all'],
+ [{_account_id: accountId, value: 1}]
+ );
assert.deepEqual(element._labels, [
{name: 'Code-Review', value: null},
{name: 'Verified', value: '+1'},
]);
});
});
-