diff options
Diffstat (limited to 'polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select_test.html')
-rw-r--r-- | polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select_test.html | 297 |
1 files changed, 165 insertions, 132 deletions
diff --git a/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select_test.html b/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select_test.html index ff89d30f0b..2614885726 100644 --- a/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select_test.html +++ b/polygerrit-ui/app/elements/diff/gr-patch-range-select/gr-patch-range-select_test.html @@ -1,5 +1,6 @@ <!DOCTYPE html> <!-- +@license Copyright (C) 2015 The Android Open Source Project Licensed under the Apache License, Version 2.0 (the "License"); @@ -23,13 +24,26 @@ limitations under the License. <link rel="import" href="../../../test/common-test-setup.html"/> <script src="../../../bower_components/page/page.js"></script> +<link rel="import" href="../../diff/gr-comment-api/gr-comment-api.html"> +<link rel="import" href="../../shared/gr-rest-api-interface/mock-diff-response_test.html"> +<link rel="import" href="../../shared/revision-info/revision-info.html"> + <link rel="import" href="gr-patch-range-select.html"> <script>void(0);</script> +<dom-module id="comment-api-mock"> + <template> + <gr-patch-range-select id="patchRange" auto + change-comments="[[_changeComments]]"></gr-patch-range-select> + <gr-comment-api id="commentAPI"></gr-comment-api> + </template> + <script src="../../diff/gr-comment-api/gr-comment-api-mock.js"></script> +</dom-module> + <test-fixture id="basic"> <template> - <gr-patch-range-select auto></gr-patch-range-select> + <comment-api-mock></comment-api-mock> </template> </test-fixture> @@ -37,10 +51,33 @@ limitations under the License. suite('gr-patch-range-select tests', () => { let element; let sandbox; + let commentApiWrapper; + + function getInfo(revisions) { + const revisionObj = {}; + for (let i = 0; i < revisions.length; i++) { + revisionObj[i] = revisions[i]; + } + return new Gerrit.RevisionInfo({revisions: revisionObj}); + } setup(() => { - element = fixture('basic'); sandbox = sinon.sandbox.create(); + + stub('gr-rest-api-interface', { + getDiffComments() { return Promise.resolve({}); }, + getDiffRobotComments() { return Promise.resolve({}); }, + getDiffDrafts() { return Promise.resolve({}); }, + }); + + // Element must be wrapped in an element with direct access to the + // comment API. + commentApiWrapper = fixture('basic'); + element = commentApiWrapper.$.patchRange; + + // Stub methods on the changeComments object after changeComments has + // been initalized. + return commentApiWrapper.loadComments(); }); teardown(() => sandbox.restore()); @@ -51,17 +88,17 @@ limitations under the License. patchNum: '3', }; const sortedRevisions = [ - {_number: 1}, - {_number: 2}, - {_number: element.EDIT_NAME, basePatchNum: 2}, {_number: 3}, + {_number: element.EDIT_NAME, basePatchNum: 2}, + {_number: 2}, + {_number: 1}, ]; for (const patchNum of ['1', '2', '3']) { - assert.isFalse(element._computeRightDisabled(patchNum, - patchRange.basePatchNum, sortedRevisions)); + assert.isFalse(element._computeRightDisabled(patchRange.basePatchNum, + patchNum, sortedRevisions)); } - for (const patchNum of ['PARENT', '1', '2']) { - assert.isFalse(element._computeLeftDisabled(patchNum, + for (const basePatchNum of ['1', '2']) { + assert.isFalse(element._computeLeftDisabled(basePatchNum, patchRange.patchNum, sortedRevisions)); } assert.isTrue(element._computeLeftDisabled('3', patchRange.patchNum)); @@ -69,53 +106,58 @@ limitations under the License. patchRange.basePatchNum = element.EDIT_NAME; assert.isTrue(element._computeLeftDisabled('3', patchRange.patchNum, sortedRevisions)); - assert.isTrue(element._computeRightDisabled('1', patchRange.basePatchNum, + assert.isTrue(element._computeRightDisabled(patchRange.basePatchNum, '1', sortedRevisions)); - assert.isTrue(element._computeRightDisabled('2', patchRange.basePatchNum, + assert.isTrue(element._computeRightDisabled(patchRange.basePatchNum, '2', sortedRevisions)); - assert.isFalse(element._computeRightDisabled('3', patchRange.basePatchNum, + assert.isFalse(element._computeRightDisabled(patchRange.basePatchNum, '3', sortedRevisions)); - assert.isTrue(element._computeRightDisabled(element.EDIT_NAME, - patchRange.basePatchNum, sortedRevisions)); + assert.isTrue(element._computeRightDisabled(patchRange.basePatchNum, + element.EDIT_NAME, sortedRevisions)); }); test('_computeBaseDropdownContent', () => { - const comments = {}; const availablePatches = [ - {num: 1}, - {num: 2}, - {num: 3}, {num: 'edit'}, + {num: 3}, + {num: 2}, + {num: 1}, ]; const revisions = [ { - commit: {}, + commit: {parents: []}, _number: 2, description: 'description', }, - {commit: {}}, - {commit: {}}, - {commit: {}}, + {commit: {parents: []}}, + {commit: {parents: []}}, + {commit: {parents: []}}, ]; + element.revisionInfo = getInfo(revisions); const patchNum = 1; const sortedRevisions = [ - {_number: 1}, - {_number: 2}, + {_number: 3, created: 'Mon, 01 Jan 2001 00:00:00 GMT'}, {_number: element.EDIT_NAME, basePatchNum: 2}, - {_number: 3}, + {_number: 2, description: 'description'}, + {_number: 1}, ]; const expectedResult = [ { - text: 'Base', - value: 'PARENT', + disabled: true, + triggerText: 'Patchset edit', + text: 'Patchset edit', + mobileText: 'edit', + bottomText: '', + value: 'edit', }, { disabled: true, - triggerText: 'Patchset 1', - text: 'Patchset 1', - mobileText: '1', + triggerText: 'Patchset 3', + text: 'Patchset 3', + mobileText: '3', bottomText: '', - value: 1, + value: 3, + date: 'Mon, 01 Jan 2001 00:00:00 GMT', }, { disabled: true, @@ -127,32 +169,31 @@ limitations under the License. }, { disabled: true, - triggerText: 'Patchset 3', - text: 'Patchset 3', - mobileText: '3', + triggerText: 'Patchset 1', + text: 'Patchset 1', + mobileText: '1', bottomText: '', - value: 3, + value: 1, }, { - disabled: true, - triggerText: 'Patchset edit', - text: 'Patchset edit', - mobileText: 'edit', - bottomText: '', - value: 'edit', + text: 'Base', + value: 'PARENT', }, ]; assert.deepEqual(element._computeBaseDropdownContent(availablePatches, - patchNum, sortedRevisions, revisions, comments), expectedResult); + patchNum, sortedRevisions, element.changeComments, + element.revisionInfo), + expectedResult); }); test('_computeBaseDropdownContent called when patchNum updates', () => { element.revisions = [ - {commit: {}}, - {commit: {}}, - {commit: {}}, - {commit: {}}, + {commit: {parents: []}}, + {commit: {parents: []}}, + {commit: {parents: []}}, + {commit: {parents: []}}, ]; + element.revisionInfo = getInfo(element.revisions); element.availablePatches = [ {num: 1}, {num: 2}, @@ -170,42 +211,42 @@ limitations under the License. assert.equal(element._computeBaseDropdownContent.callCount, 1); }); - test('_computeBaseDropdownContent called when comments update', () => { - element.revisions = [ - {commit: {}}, - {commit: {}}, - {commit: {}}, - {commit: {}}, - ]; - element.availablePatches = [ - {num: 1}, - {num: 2}, - {num: 3}, - {num: 'edit'}, - ]; - element.patchNum = 2; - element.basePatchNum = 'PARENT'; - flushAsynchronousOperations(); - - // Should be recomputed for each available patch - sandbox.stub(element, '_computeBaseDropdownContent'); - assert.equal(element._computeBaseDropdownContent.callCount, 0); - element.set('comments', { - file: [{ - message: 'test', - patch_set: 2, - }], - }); - assert.equal(element._computeBaseDropdownContent.callCount, 1); - }); + test('_computeBaseDropdownContent called when changeComments update', + done => { + element.revisions = [ + {commit: {parents: []}}, + {commit: {parents: []}}, + {commit: {parents: []}}, + {commit: {parents: []}}, + ]; + element.revisionInfo = getInfo(element.revisions); + element.availablePatches = [ + {num: 'edit'}, + {num: 3}, + {num: 2}, + {num: 1}, + ]; + element.patchNum = 2; + element.basePatchNum = 'PARENT'; + flushAsynchronousOperations(); + + // Should be recomputed for each available patch + sandbox.stub(element, '_computeBaseDropdownContent'); + assert.equal(element._computeBaseDropdownContent.callCount, 0); + commentApiWrapper.loadComments().then().then(() => { + assert.equal(element._computeBaseDropdownContent.callCount, 1); + done(); + }); + }); test('_computePatchDropdownContent called when basePatchNum updates', () => { element.revisions = [ - {commit: {}}, - {commit: {}}, - {commit: {}}, - {commit: {}}, + {commit: {parents: []}}, + {commit: {parents: []}}, + {commit: {parents: []}}, + {commit: {parents: []}}, ]; + element.revisionInfo = getInfo(element.revisions); element.availablePatches = [ {num: 1}, {num: 2}, @@ -222,13 +263,14 @@ limitations under the License. assert.equal(element._computePatchDropdownContent.callCount, 1); }); - test('_computePatchDropdownContent called when comments update', () => { + test('_computePatchDropdownContent called when comments update', done => { element.revisions = [ - {commit: {}}, - {commit: {}}, - {commit: {}}, - {commit: {}}, + {commit: {parents: []}}, + {commit: {parents: []}}, + {commit: {parents: []}}, + {commit: {parents: []}}, ]; + element.revisionInfo = getInfo(element.revisions); element.availablePatches = [ {num: 1}, {num: 2}, @@ -242,57 +284,34 @@ limitations under the License. // Should be recomputed for each available patch sandbox.stub(element, '_computePatchDropdownContent'); assert.equal(element._computePatchDropdownContent.callCount, 0); - element.set('comments', { - file: [{ - message: 'test', - patch_set: 2, - }], + commentApiWrapper.loadComments().then().then(() => { + done(); }); - assert.equal(element._computePatchDropdownContent.callCount, 1); }); test('_computePatchDropdownContent', () => { - const comments = {}; const availablePatches = [ - {num: 1}, - {num: 2}, - {num: 3}, {num: 'edit'}, - ]; - const revisions = [ - { - commit: {}, - _number: 2, - description: 'description', - }, - {commit: {}}, - {commit: {}}, - {commit: {}}, + {num: 3}, + {num: 2}, + {num: 1}, ]; const basePatchNum = 1; const sortedRevisions = [ - {_number: 1}, - {_number: 2}, + {_number: 3, created: 'Mon, 01 Jan 2001 00:00:00 GMT'}, {_number: element.EDIT_NAME, basePatchNum: 2}, - {_number: 3}, + {_number: 2, description: 'description'}, + {_number: 1}, ]; const expectedResult = [ { - disabled: true, - triggerText: 'Patchset 1', - text: 'Patchset 1', - mobileText: '1', - bottomText: '', - value: 1, - }, - { disabled: false, - triggerText: 'Patchset 2', - text: 'Patchset 2', - mobileText: '2 description', - bottomText: 'description', - value: 2, + triggerText: 'edit', + text: 'edit', + mobileText: 'edit', + bottomText: '', + value: 'edit', }, { disabled: false, @@ -301,19 +320,29 @@ limitations under the License. mobileText: '3', bottomText: '', value: 3, + date: 'Mon, 01 Jan 2001 00:00:00 GMT', }, { disabled: false, - triggerText: 'edit', - text: 'edit', - mobileText: 'edit', + triggerText: 'Patchset 2', + text: 'Patchset 2', + mobileText: '2 description', + bottomText: 'description', + value: 2, + }, + { + disabled: true, + triggerText: 'Patchset 1', + text: 'Patchset 1', + mobileText: '1', bottomText: '', - value: 'edit', + value: 1, }, ]; assert.deepEqual(element._computePatchDropdownContent(availablePatches, - basePatchNum, sortedRevisions, revisions, comments), expectedResult); + basePatchNum, sortedRevisions, element.changeComments), + expectedResult); }); test('filesWeblinks', () => { @@ -341,37 +370,41 @@ limitations under the License. test('_computePatchSetCommentsString', () => { // Test string with unresolved comments. - comments = { + element.changeComments._comments = { foo: [{ id: '27dcee4d_f7b77cfa', message: 'test', patch_set: 1, unresolved: true, + updated: '2017-10-11 20:48:40.000000000', }], bar: [{ id: '27dcee4d_f7b77cfa', message: 'test', patch_set: 1, + updated: '2017-10-12 20:48:40.000000000', }, { id: '27dcee4d_f7b77cfa', message: 'test', patch_set: 1, + updated: '2017-10-13 20:48:40.000000000', }], abc: [], }; - assert.equal(element._computePatchSetCommentsString(comments, 1), - ' (3 comments, 1 unresolved)'); + assert.equal(element._computePatchSetCommentsString( + element.changeComments, 1), ' (3 comments, 1 unresolved)'); // Test string with no unresolved comments. - delete comments['foo']; - assert.equal(element._computePatchSetCommentsString(comments, 1), - ' (2 comments)'); + delete element.changeComments._comments['foo']; + assert.equal(element._computePatchSetCommentsString( + element.changeComments, 1), ' (2 comments)'); // Test string with no comments. - delete comments['bar']; - assert.equal(element._computePatchSetCommentsString(comments, 1), ''); + delete element.changeComments._comments['bar']; + assert.equal(element._computePatchSetCommentsString( + element.changeComments, 1), ''); }); test('patch-range-change fires', () => { |