summaryrefslogtreecommitdiffstats
path: root/polygerrit-ui/app/elements/shared/gr-rest-api-interface/gr-reviewer-updates-parser_test.html
diff options
context:
space:
mode:
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.html163
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>