Merge "Convert gr-confirm-rebase-dialog_test.js to typescript"
diff --git a/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog.ts b/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog.ts
index e1cc233..77b7717 100644
--- a/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog.ts
+++ b/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog.ts
@@ -27,8 +27,9 @@
AutocompleteSuggestion,
} from '../../shared/gr-autocomplete/gr-autocomplete';
import {appContext} from '../../../services/app-context';
+import {GrDialog} from '../../shared/gr-dialog/gr-dialog';
-interface RebaseChange {
+export interface RebaseChange {
name: string;
value: NumericChangeId;
}
@@ -39,10 +40,15 @@
export interface GrConfirmRebaseDialog {
$: {
+ confirmDialog: GrDialog;
parentInput: GrAutocomplete;
+ parentUpToDateMsg: HTMLDivElement;
+ rebaseOnParent: HTMLDivElement;
rebaseOnParentInput: HTMLInputElement;
rebaseOnOtherInput: HTMLInputElement;
+ rebaseOnTip: HTMLDivElement;
rebaseOnTipInput: HTMLInputElement;
+ tipUpToDateMsg: HTMLDivElement;
};
}
diff --git a/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.js b/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.ts
similarity index 67%
rename from polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.js
rename to polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.ts
index 0faf604..74c1b3c 100644
--- a/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.js
+++ b/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.ts
@@ -15,14 +15,18 @@
* limitations under the License.
*/
-import '../../../test/common-test-setup-karma.js';
-import './gr-confirm-rebase-dialog.js';
-import {stubRestApi} from '../../../test/test-utils.js';
+import '../../../test/common-test-setup-karma';
+import './gr-confirm-rebase-dialog';
+import {GrConfirmRebaseDialog, RebaseChange} from './gr-confirm-rebase-dialog';
+import {stubRestApi} from '../../../test/test-utils';
+import * as MockInteractions from '@polymer/iron-test-helpers/mock-interactions';
+import {NumericChangeId} from '../../../types/common';
+import {createChangeViewChange} from '../../../test/test-data-generators';
const basicFixture = fixtureFromElement('gr-confirm-rebase-dialog');
suite('gr-confirm-rebase-dialog tests', () => {
- let element;
+ let element: GrConfirmRebaseDialog;
setup(() => {
element = basicFixture.instantiate();
@@ -75,16 +79,20 @@
test('input cleared on cancel or submit', () => {
element._text = '123';
element.$.confirmDialog.dispatchEvent(
- new CustomEvent('confirm', {
- composed: true, bubbles: true,
- }));
+ new CustomEvent('confirm', {
+ composed: true,
+ bubbles: true,
+ })
+ );
assert.equal(element._text, '');
element._text = '123';
element.$.confirmDialog.dispatchEvent(
- new CustomEvent('cancel', {
- composed: true, bubbles: true,
- }));
+ new CustomEvent('cancel', {
+ composed: true,
+ bubbles: true,
+ })
+ );
assert.equal(element._text, '');
});
@@ -102,55 +110,59 @@
});
suite('parent suggestions', () => {
- let recentChanges;
- let getChangesStub;
+ let recentChanges: RebaseChange[];
+ let getChangesStub: sinon.SinonStub;
setup(() => {
recentChanges = [
{
name: '123: my first awesome change',
- value: 123,
+ value: 123 as NumericChangeId,
},
{
name: '124: my second awesome change',
- value: 124,
+ value: 124 as NumericChangeId,
},
{
name: '245: my third awesome change',
- value: 245,
+ value: 245 as NumericChangeId,
},
];
- getChangesStub = stubRestApi('getChanges').returns(Promise.resolve(
- [
- {
- _number: 123,
- subject: 'my first awesome change',
- },
- {
- _number: 124,
- subject: 'my second awesome change',
- },
- {
- _number: 245,
- subject: 'my third awesome change',
- },
- ]
- ));
+ getChangesStub = stubRestApi('getChanges').returns(
+ Promise.resolve([
+ {
+ ...createChangeViewChange(),
+ _number: 123 as NumericChangeId,
+ subject: 'my first awesome change',
+ },
+ {
+ ...createChangeViewChange(),
+ _number: 124 as NumericChangeId,
+ subject: 'my second awesome change',
+ },
+ {
+ ...createChangeViewChange(),
+ _number: 245 as NumericChangeId,
+ subject: 'my third awesome change',
+ },
+ ])
+ );
});
test('_getRecentChanges', () => {
- sinon.spy(element, '_getRecentChanges');
- return element._getRecentChanges()
- .then(() => {
- assert.deepEqual(element._recentChanges, recentChanges);
- assert.equal(getChangesStub.callCount, 1);
- // When called a second time, should not re-request recent changes.
- element._getRecentChanges();
- })
- .then(() => {
- assert.equal(element._getRecentChanges.callCount, 2);
- assert.equal(getChangesStub.callCount, 1);
- });
+ const recentChangesSpy = sinon.spy(element, '_getRecentChanges');
+ return element
+ ._getRecentChanges()
+ .then(() => {
+ assert.deepEqual(element._recentChanges, recentChanges);
+ assert.equal(getChangesStub.callCount, 1);
+ // When called a second time, should not re-request recent changes.
+ element._getRecentChanges();
+ })
+ .then(() => {
+ assert.equal(recentChangesSpy.callCount, 2);
+ assert.equal(getChangesStub.callCount, 1);
+ });
});
test('_filterChanges', () => {
@@ -159,25 +171,25 @@
assert.equal(element._filterChanges('awesome', recentChanges).length, 3);
assert.equal(element._filterChanges('third', recentChanges).length, 1);
- element.changeNumber = 123;
+ element.changeNumber = 123 as NumericChangeId;
assert.equal(element._filterChanges('123', recentChanges).length, 0);
assert.equal(element._filterChanges('124', recentChanges).length, 1);
assert.equal(element._filterChanges('awesome', recentChanges).length, 2);
});
test('input text change triggers function', () => {
- sinon.spy(element, '_getRecentChanges');
+ const recentChangesSpy = sinon.spy(element, '_getRecentChanges');
element.$.parentInput.noDebounce = true;
MockInteractions.pressAndReleaseKeyOn(
- element.$.parentInput.$.input,
- 13,
- null,
- 'enter');
+ element.$.parentInput.$.input,
+ 13,
+ null,
+ 'enter'
+ );
element._text = '1';
- assert.isTrue(element._getRecentChanges.calledOnce);
+ assert.isTrue(recentChangesSpy.calledOnce);
element._text = '12';
- assert.isTrue(element._getRecentChanges.calledTwice);
+ assert.isTrue(recentChangesSpy.calledTwice);
});
});
});
-