diff options
Diffstat (limited to 'polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-reviewer-updates-parser_test.html')
-rw-r--r-- | polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-reviewer-updates-parser_test.html | 163 |
1 files changed, 106 insertions, 57 deletions
diff --git a/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-reviewer-updates-parser_test.html b/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-reviewer-updates-parser_test.html index 1ae04a0fe5..bf082e8b82 100644 --- a/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-reviewer-updates-parser_test.html +++ b/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-reviewer-updates-parser_test.html @@ -20,27 +20,25 @@ limitations under the License. <script src="../../../bower_components/webcomponentsjs/webcomponents-lite.min.js"></script> <script src="../../../bower_components/web-component-tester/browser.js"></script> - -<link rel="import" href="../../../bower_components/iron-test-helpers/iron-test-helpers.html"> - +<link rel="import" href="../../../test/common-test-setup.html"/> <script src="../../../scripts/util.js"></script> <script src="gr-reviewer-updates-parser.js"></script> <script> - suite('gr-reviewer-updates-parser tests', function() { - var sandbox; - var instance; + suite('gr-reviewer-updates-parser tests', () => { + let sandbox; + let instance; - setup(function() { + setup(() => { sandbox = sinon.sandbox.create(); }); - teardown(function() { + teardown(() => { sandbox.restore(); }); - test('ignores changes without messages', function() { - var change = {}; + test('ignores changes without messages', () => { + const change = {}; sandbox.stub( GrReviewerUpdatesParser.prototype, '_filterRemovedMessages'); sandbox.stub( @@ -56,8 +54,8 @@ limitations under the License. GrReviewerUpdatesParser.prototype._formatUpdates.called); }); - test('ignores changes without reviewer updates', function() { - var change = { + test('ignores changes without reviewer updates', () => { + const change = { messages: [], }; sandbox.stub( @@ -75,8 +73,8 @@ limitations under the License. GrReviewerUpdatesParser.prototype._formatUpdates.called); }); - test('ignores changes with empty reviewer updates', function() { - var change = { + test('ignores changes with empty reviewer updates', () => { + const change = { messages: [], reviewer_updates: [], }; @@ -95,18 +93,18 @@ limitations under the License. GrReviewerUpdatesParser.prototype._formatUpdates.called); }); - test('filter removed messages', function() { - var change = { - messages: [ - { - message: 'msg1', - tag: 'autogenerated:gerrit:deleteReviewer', - }, - { - message: 'msg2', - tag: 'foo', - } - ], + test('filter removed messages', () => { + const change = { + messages: [ + { + message: 'msg1', + tag: 'autogenerated:gerrit:deleteReviewer', + }, + { + message: 'msg2', + tag: 'foo', + }, + ], }; instance = new GrReviewerUpdatesParser(change); instance._filterRemovedMessages(); @@ -118,22 +116,22 @@ limitations under the License. }); }); - test('group reviewer updates', function() { - var reviewer1 = {_account_id: 1}; - var reviewer2 = {_account_id: 2}; - var date1 = '2017-01-26 12:11:50.000000000'; - var date2 = '2017-01-26 12:11:55.000000000'; // Within threshold. - var date3 = '2017-01-26 12:33:50.000000000'; - var date4 = '2017-01-26 12:44:50.000000000'; - var makeItem = function(state, reviewer, opt_date, opt_author) { + test('group reviewer updates', () => { + const reviewer1 = {_account_id: 1}; + const reviewer2 = {_account_id: 2}; + const date1 = '2017-01-26 12:11:50.000000000'; + const date2 = '2017-01-26 12:11:55.000000000'; // Within threshold. + const date3 = '2017-01-26 12:33:50.000000000'; + const date4 = '2017-01-26 12:44:50.000000000'; + const makeItem = function(state, reviewer, opt_date, opt_author) { return { - reviewer: reviewer, + reviewer, updated: opt_date || date1, updated_by: opt_author || reviewer1, - state: state, + state, }; }; - var change = { + let change = { reviewer_updates: [ makeItem('REVIEWER', reviewer1), // New group. makeItem('CC', reviewer2), // Appended. @@ -198,36 +196,36 @@ limitations under the License. ]); }); - test('format reviewer updates', function() { - var reviewer1 = {_account_id: 1}; - var reviewer2 = {_account_id: 2}; - var makeItem = function(prev, state, opt_reviewer) { + test('format reviewer updates', () => { + const reviewer1 = {_account_id: 1}; + const reviewer2 = {_account_id: 2}; + const makeItem = function(prev, state, opt_reviewer) { return { reviewer: opt_reviewer || reviewer1, prev_state: prev, - state: state, + state, }; }; - var makeUpdate = function(items) { + const makeUpdate = function(items) { return { author: reviewer1, updated: '', updates: items, }; }; - var change = { - reviewer_updates: [ - makeUpdate([ - makeItem(undefined, 'CC'), - makeItem(undefined, 'CC', reviewer2) - ]), - makeUpdate([ - makeItem('CC', 'REVIEWER'), - makeItem('REVIEWER', 'REMOVED'), - makeItem('REMOVED', 'REVIEWER'), - makeItem(undefined, 'REVIEWER', reviewer2), - ]), - ], + const change = { + reviewer_updates: [ + makeUpdate([ + makeItem(undefined, 'CC'), + makeItem(undefined, 'CC', reviewer2), + ]), + makeUpdate([ + makeItem('CC', 'REVIEWER'), + makeItem('REVIEWER', 'REMOVED'), + makeItem('REMOVED', 'REVIEWER'), + makeItem(undefined, 'REVIEWER', reviewer2), + ]), + ], }; instance = new GrReviewerUpdatesParser(change); @@ -237,7 +235,7 @@ limitations under the License. assert.equal(change.reviewer_updates[0].updates.length, 1); assert.equal(change.reviewer_updates[1].updates.length, 3); - var items = change.reviewer_updates[0].updates; + let items = change.reviewer_updates[0].updates; assert.equal(items[0].message, 'added to CC: '); assert.deepEqual(items[0].reviewers, [reviewer1, reviewer2]); @@ -249,5 +247,56 @@ limitations under the License. assert.equal(items[2].message, 'added to REVIEWER: '); assert.deepEqual(items[2].reviewers, [reviewer1, reviewer2]); }); + + test('_advanceUpdates', () => { + const T0 = util.parseDate('2017-02-17 19:04:18.000000000').getTime(); + const tplus = delta => { + return new Date(T0 + delta) + .toISOString().replace('T', ' ').replace('Z', '000000'); + }; + const change = { + reviewer_updates: [{ + date: tplus(0), + type: 'REVIEWER_UPDATE', + updates: [{ + message: 'same time update', + }], + }, { + date: tplus(200), + type: 'REVIEWER_UPDATE', + updates: [{ + message: 'update within threshold', + }], + }, { + date: tplus(600), + type: 'REVIEWER_UPDATE', + updates: [{ + message: 'update between messages', + }], + }, { + date: tplus(1000), + type: 'REVIEWER_UPDATE', + updates: [{ + message: 'late update', + }], + }], + messages: [{ + id: '6734489eb9d642de28dbf2bcf9bda875923800d8', + date: tplus(0), + message: 'Uploaded patch set 1.', + }, { + id: '6734489eb9d642de28dbf2bcf9bda875923800d8', + date: tplus(800), + message: 'Uploaded patch set 2.', + }], + }; + instance = new GrReviewerUpdatesParser(change); + instance._advanceUpdates(); + const updates = instance.result.reviewer_updates; + assert.isBelow(util.parseDate(updates[0].date).getTime(), T0); + assert.isBelow(util.parseDate(updates[1].date).getTime(), T0); + assert.equal(updates[2].date, tplus(100)); + assert.equal(updates[3].date, tplus(500)); + }); }); </script> |