diff options
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.html | 104 |
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> |