Remove deleted rules for the new added section
Bug: Issue 11339 Change-Id: Ief0944afe03c55a3ee48b7ed23a3997c569b3354
This commit is contained in:
@@ -344,6 +344,12 @@
|
|||||||
} else if (obj[k].added) {
|
} else if (obj[k].added) {
|
||||||
this._updateAddRemoveObj(addRemoveObj,
|
this._updateAddRemoveObj(addRemoveObj,
|
||||||
path.concat(ref), 'add', obj[k]);
|
path.concat(ref), 'add', obj[k]);
|
||||||
|
/**
|
||||||
|
* As add / delete both can happen in the new section,
|
||||||
|
* so here to make sure it will remove the deleted ones.
|
||||||
|
* @see Issue 11339
|
||||||
|
*/
|
||||||
|
this._recursivelyRemoveDeleted(addRemoveObj.add[k]);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
this._recursivelyUpdateAddRemoveObj(obj[k], addRemoveObj,
|
this._recursivelyUpdateAddRemoveObj(obj[k], addRemoveObj,
|
||||||
|
|||||||
@@ -416,6 +416,72 @@ limitations under the License.
|
|||||||
assert.deepEqual(obj, expectedResult);
|
assert.deepEqual(obj, expectedResult);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('_recursivelyUpdateAddRemoveObj on new added section', () => {
|
||||||
|
const obj = {
|
||||||
|
'refs/for/*': {
|
||||||
|
permissions: {
|
||||||
|
'label-Code-Review': {
|
||||||
|
rules: {
|
||||||
|
e798fed07afbc9173a587f876ef8760c78d240c1: {
|
||||||
|
min: -2,
|
||||||
|
max: 2,
|
||||||
|
action: 'ALLOW',
|
||||||
|
added: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
added: true,
|
||||||
|
label: 'Code-Review',
|
||||||
|
},
|
||||||
|
'labelAs-Code-Review': {
|
||||||
|
rules: {
|
||||||
|
'ldap:gerritcodereview-eng': {
|
||||||
|
min: -2,
|
||||||
|
max: 2,
|
||||||
|
action: 'ALLOW',
|
||||||
|
added: true,
|
||||||
|
deleted: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
added: true,
|
||||||
|
label: 'Code-Review',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
added: true,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const expectedResult = {
|
||||||
|
add: {
|
||||||
|
'refs/for/*': {
|
||||||
|
permissions: {
|
||||||
|
'label-Code-Review': {
|
||||||
|
rules: {
|
||||||
|
e798fed07afbc9173a587f876ef8760c78d240c1: {
|
||||||
|
min: -2,
|
||||||
|
max: 2,
|
||||||
|
action: 'ALLOW',
|
||||||
|
added: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
added: true,
|
||||||
|
label: 'Code-Review',
|
||||||
|
},
|
||||||
|
'labelAs-Code-Review': {
|
||||||
|
rules: {},
|
||||||
|
added: true,
|
||||||
|
label: 'Code-Review',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
added: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
remove: {},
|
||||||
|
};
|
||||||
|
const updateObj = {add: {}, remove: {}};
|
||||||
|
element._recursivelyUpdateAddRemoveObj(obj, updateObj);
|
||||||
|
assert.deepEqual(updateObj, expectedResult);
|
||||||
|
});
|
||||||
|
|
||||||
test('_handleSaveForReview with no changes', () => {
|
test('_handleSaveForReview with no changes', () => {
|
||||||
assert.deepEqual(element._computeAddAndRemove(), {add: {}, remove: {}});
|
assert.deepEqual(element._computeAddAndRemove(), {add: {}, remove: {}});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user