Fix type errors on related change results
When results resolve for any of the five different types of related changes, an observer is called which updates the hidden attribute of the entire related changes UI. Over time, the type of value resolved for two of these types of related changes evolved, but this code didn't evolve with them. This resulted in a bug where in certain cases the related changes section would not appear when it should. Bug: Issue 9925 Change-Id: If8e390d7561a114bcad69c9316d0c9f31a3cb3cb
This commit is contained in:
@@ -290,14 +290,14 @@
|
||||
_resultsChanged(related, submittedTogether, conflicts,
|
||||
cherryPicks, sameTopic) {
|
||||
const results = [
|
||||
related,
|
||||
submittedTogether,
|
||||
related && related.changes,
|
||||
submittedTogether && submittedTogether.changes,
|
||||
conflicts,
|
||||
cherryPicks,
|
||||
sameTopic,
|
||||
];
|
||||
for (let i = 0; i < results.length; i++) {
|
||||
if (results[i].length > 0) {
|
||||
if (results[i] && results[i].length > 0) {
|
||||
this.hidden = false;
|
||||
this.fire('update', null, {bubbles: false});
|
||||
return;
|
||||
|
||||
@@ -382,7 +382,7 @@ limitations under the License.
|
||||
true);
|
||||
});
|
||||
|
||||
test('clear and empties', () => {
|
||||
suite('hidden attribute and update event', () => {
|
||||
const changes = [{
|
||||
project: 'foo/bar',
|
||||
change_id: 'Ideadbeef',
|
||||
@@ -397,33 +397,68 @@ limitations under the License.
|
||||
_current_revision_number: 1,
|
||||
status: 'NEW',
|
||||
}];
|
||||
element._relatedResponse = {changes};
|
||||
element._submittedTogether = {changes};
|
||||
element._conflicts = changes;
|
||||
element._cherryPicks = changes;
|
||||
element._sameTopic = changes;
|
||||
|
||||
element.hidden = false;
|
||||
element.clear();
|
||||
assert.isTrue(element.hidden);
|
||||
assert.equal(element._relatedResponse.changes.length, 0);
|
||||
assert.equal(element._submittedTogether.changes.length, 0);
|
||||
assert.equal(element._conflicts.length, 0);
|
||||
assert.equal(element._cherryPicks.length, 0);
|
||||
assert.equal(element._sameTopic.length, 0);
|
||||
});
|
||||
test('clear and empties', () => {
|
||||
element._relatedResponse = {changes};
|
||||
element._submittedTogether = {changes};
|
||||
element._conflicts = changes;
|
||||
element._cherryPicks = changes;
|
||||
element._sameTopic = changes;
|
||||
|
||||
test('update fires', () => {
|
||||
const updateHandler = sandbox.stub();
|
||||
element.addEventListener('update', updateHandler);
|
||||
element.hidden = false;
|
||||
element.clear();
|
||||
assert.isTrue(element.hidden);
|
||||
assert.equal(element._relatedResponse.changes.length, 0);
|
||||
assert.equal(element._submittedTogether.changes.length, 0);
|
||||
assert.equal(element._conflicts.length, 0);
|
||||
assert.equal(element._cherryPicks.length, 0);
|
||||
assert.equal(element._sameTopic.length, 0);
|
||||
});
|
||||
|
||||
element._resultsChanged([], [], [], [], []);
|
||||
assert.isTrue(element.hidden);
|
||||
assert.isFalse(updateHandler.called);
|
||||
test('update fires', () => {
|
||||
const updateHandler = sandbox.stub();
|
||||
element.addEventListener('update', updateHandler);
|
||||
|
||||
element._resultsChanged([], [], [], [], ['test']);
|
||||
assert.isFalse(element.hidden);
|
||||
assert.isTrue(updateHandler.called);
|
||||
element._resultsChanged({}, {}, [], [], []);
|
||||
assert.isTrue(element.hidden);
|
||||
assert.isFalse(updateHandler.called);
|
||||
|
||||
element._resultsChanged({}, {}, [], [], ['test']);
|
||||
assert.isFalse(element.hidden);
|
||||
assert.isTrue(updateHandler.called);
|
||||
});
|
||||
|
||||
suite('hiding and unhiding', () => {
|
||||
test('related response', () => {
|
||||
assert.isTrue(element.hidden);
|
||||
element._resultsChanged({changes}, {}, [], [], []);
|
||||
assert.isFalse(element.hidden);
|
||||
});
|
||||
|
||||
test('submitted together', () => {
|
||||
assert.isTrue(element.hidden);
|
||||
element._resultsChanged({}, {changes}, [], [], []);
|
||||
assert.isFalse(element.hidden);
|
||||
});
|
||||
|
||||
test('conflicts', () => {
|
||||
assert.isTrue(element.hidden);
|
||||
element._resultsChanged({}, {}, changes, [], []);
|
||||
assert.isFalse(element.hidden);
|
||||
});
|
||||
|
||||
test('cherrypicks', () => {
|
||||
assert.isTrue(element.hidden);
|
||||
element._resultsChanged({}, {}, [], changes, []);
|
||||
assert.isFalse(element.hidden);
|
||||
});
|
||||
|
||||
test('same topic', () => {
|
||||
assert.isTrue(element.hidden);
|
||||
element._resultsChanged({}, {}, [], [], changes);
|
||||
assert.isFalse(element.hidden);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
test('_computeChangeURL uses Gerrit.Nav', () => {
|
||||
|
||||
Reference in New Issue
Block a user