summaryrefslogtreecommitdiffstats
path: root/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.html
diff options
context:
space:
mode:
Diffstat (limited to 'polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.html')
-rw-r--r--polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.html104
1 files changed, 104 insertions, 0 deletions
diff --git a/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.html b/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.html
index 0ea7c495de..c6e9ec4804 100644
--- a/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.html
+++ b/polygerrit-ui/app/elements/change/gr-confirm-rebase-dialog/gr-confirm-rebase-dialog_test.html
@@ -1,5 +1,6 @@
<!DOCTYPE html>
<!--
+@license
Copyright (C) 2016 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
@@ -34,9 +35,15 @@ limitations under the License.
<script>
suite('gr-confirm-rebase-dialog tests', () => {
let element;
+ let sandbox;
setup(() => {
element = fixture('basic');
+ sandbox = sinon.sandbox.create();
+ });
+
+ teardown(() => {
+ sandbox.restore();
});
test('controls with parent and rebase on current available', () => {
@@ -82,5 +89,102 @@ limitations under the License.
assert.isTrue(element.$.rebaseOnTip.hasAttribute('hidden'));
assert.isFalse(element.$.tipUpToDateMsg.hasAttribute('hidden'));
});
+
+ test('input cleared on cancel or submit', () => {
+ element._text = '123';
+ element.$.confirmDialog.fire('confirm');
+ assert.equal(element._text, '');
+
+ element._text = '123';
+ element.$.confirmDialog.fire('cancel');
+ assert.equal(element._text, '');
+ });
+
+ test('_getSelectedBase', () => {
+ element._text = '5fab321c';
+ element.$.rebaseOnParentInput.checked = true;
+ assert.equal(element._getSelectedBase(), null);
+ element.$.rebaseOnParentInput.checked = false;
+ element.$.rebaseOnTipInput.checked = true;
+ assert.equal(element._getSelectedBase(), '');
+ element.$.rebaseOnTipInput.checked = false;
+ assert.equal(element._getSelectedBase(), element._text);
+ element._text = '101: Test';
+ assert.equal(element._getSelectedBase(), '101');
+ });
+
+ suite('parent suggestions', () => {
+ let recentChanges;
+ setup(() => {
+ recentChanges = [
+ {
+ name: '123: my first awesome change',
+ value: 123,
+ },
+ {
+ name: '124: my second awesome change',
+ value: 124,
+ },
+ {
+ name: '245: my third awesome change',
+ value: 245,
+ },
+ ];
+
+ sandbox.stub(element.$.restAPI, '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',
+ },
+ ]
+ ));
+ });
+
+ test('_getRecentChanges', () => {
+ sandbox.spy(element, '_getRecentChanges');
+ return element._getRecentChanges().then(() => {
+ assert.deepEqual(element._recentChanges, recentChanges);
+ assert.equal(element.$.restAPI.getChanges.callCount, 1);
+ // When called a second time, should not re-request recent changes.
+ element._getRecentChanges();
+ }).then(() => {
+ assert.equal(element._getRecentChanges.callCount, 2);
+ assert.equal(element.$.restAPI.getChanges.callCount, 1);
+ });
+ });
+
+ test('_filterChanges', () => {
+ assert.equal(element._filterChanges('123', recentChanges).length, 1);
+ assert.equal(element._filterChanges('12', recentChanges).length, 2);
+ assert.equal(element._filterChanges('awesome', recentChanges).length,
+ 3);
+ assert.equal(element._filterChanges('third', recentChanges).length,
+ 1);
+
+ element.changeNumber = 123;
+ 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', () => {
+ sandbox.spy(element, '_getRecentChanges');
+ element.$.parentInput.noDebounce = true;
+ element._text = '1';
+ assert.isTrue(element._getRecentChanges.calledOnce);
+ element._text = '12';
+ assert.isTrue(element._getRecentChanges.calledTwice);
+ });
+ });
});
</script>