mirror of
https://github.com/ansible/awx.git
synced 2024-10-31 23:51:09 +03:00
Add tests for flat fact comparison
This commit is contained in:
parent
9f6d93760e
commit
aed496a069
@ -75,7 +75,7 @@ export default
|
|||||||
value1: slottedValues.left,
|
value1: slottedValues.left,
|
||||||
value1IsAbsent: slottedValues.left === 'absent',
|
value1IsAbsent: slottedValues.left === 'absent',
|
||||||
value2: slottedValues.right,
|
value2: slottedValues.right,
|
||||||
value2IsAbsent: slotFactValues.right === 'absent'
|
value2IsAbsent: slottedValues.right === 'absent'
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -113,7 +113,7 @@ export default
|
|||||||
|
|
||||||
if (slottedValues.left !== slottedValues.right) {
|
if (slottedValues.left !== slottedValues.right) {
|
||||||
return {
|
return {
|
||||||
keyName: key,
|
keyName: basisFact[nameKey],
|
||||||
value1: slottedValues.left,
|
value1: slottedValues.left,
|
||||||
value2: slottedValues.right
|
value2: slottedValues.right
|
||||||
};
|
};
|
||||||
|
127
awx/ui/tests/unit/system-tracking/compare-facts/flat-test.js
Normal file
127
awx/ui/tests/unit/system-tracking/compare-facts/flat-test.js
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
/* jshint node: true */
|
||||||
|
/* globals -expect, -_ */
|
||||||
|
|
||||||
|
import compareFacts from 'tower/system-tracking/compare-facts/flat';
|
||||||
|
|
||||||
|
var expect = require('chai').expect;
|
||||||
|
var _ = require('lodash');
|
||||||
|
|
||||||
|
global._ = _;
|
||||||
|
|
||||||
|
describe('CompareFacts.Flat', function() {
|
||||||
|
|
||||||
|
it('returns empty array with empty basis facts', function() {
|
||||||
|
var result = compareFacts({ facts: [] }, { facts: [] });
|
||||||
|
|
||||||
|
expect(result).to.deep.equal([]);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('returns empty array when no differences', function() {
|
||||||
|
var result = compareFacts(
|
||||||
|
{ facts:
|
||||||
|
[{ 'name': 'foo',
|
||||||
|
'value': 'bar'
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
{ facts:
|
||||||
|
[{ 'name': 'foo',
|
||||||
|
'value': 'bar'
|
||||||
|
}]
|
||||||
|
}, 'name', ['value']);
|
||||||
|
|
||||||
|
expect(result).to.deep.equal([]);
|
||||||
|
});
|
||||||
|
|
||||||
|
context('when both collections contain facts', function() {
|
||||||
|
it('includes each fact value when a compareKey differs', function() {
|
||||||
|
var result = compareFacts(
|
||||||
|
{ position: 'left',
|
||||||
|
facts:
|
||||||
|
[{ 'name': 'foo',
|
||||||
|
'value': 'bar'
|
||||||
|
}]
|
||||||
|
},
|
||||||
|
{ position: 'right',
|
||||||
|
facts:
|
||||||
|
[{ 'name': 'foo',
|
||||||
|
'value': 'baz'
|
||||||
|
}]
|
||||||
|
}, 'name', ['value']);
|
||||||
|
|
||||||
|
expect(result).to.deep.equal(
|
||||||
|
[{ displayKeyPath: 'foo',
|
||||||
|
nestingLevel: 0,
|
||||||
|
facts:
|
||||||
|
[{ keyName: 'foo',
|
||||||
|
value1: 'bar',
|
||||||
|
value2: 'baz'
|
||||||
|
}]
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
context('when value for nameKey is present in one collection but not the other', function() {
|
||||||
|
|
||||||
|
function factData(leftFacts) {
|
||||||
|
var facts = [{ position: 'left',
|
||||||
|
facts: leftFacts
|
||||||
|
},
|
||||||
|
{ position: 'right',
|
||||||
|
facts: []
|
||||||
|
}];
|
||||||
|
|
||||||
|
return facts;
|
||||||
|
}
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
it('uses "absent" for the missing value', function() {
|
||||||
|
|
||||||
|
var facts = factData([{ 'name': 'foo'
|
||||||
|
}]);
|
||||||
|
|
||||||
|
var result = compareFacts(facts[0], facts[1], 'name', ['value']);
|
||||||
|
|
||||||
|
expect(result).to.deep.equal(
|
||||||
|
[{ displayKeyPath: 'foo',
|
||||||
|
nestingLevel: 0,
|
||||||
|
facts:
|
||||||
|
[{ keyName: 'name',
|
||||||
|
value1: 'foo',
|
||||||
|
value1IsAbsent: false,
|
||||||
|
value2: 'absent',
|
||||||
|
value2IsAbsent: true
|
||||||
|
}]
|
||||||
|
}]);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('includes all keys from basisFacts', function() {
|
||||||
|
var facts = factData([{ 'name': 'foo',
|
||||||
|
'value': 'bar'
|
||||||
|
}]);
|
||||||
|
|
||||||
|
var result = compareFacts(facts[0], facts[1], 'name', ['value']);
|
||||||
|
|
||||||
|
expect(result).to.deep.equal(
|
||||||
|
[{ displayKeyPath: 'foo',
|
||||||
|
nestingLevel: 0,
|
||||||
|
facts:
|
||||||
|
[{ keyName: 'name',
|
||||||
|
value1: 'foo',
|
||||||
|
value1IsAbsent: false,
|
||||||
|
value2: 'absent',
|
||||||
|
value2IsAbsent: true
|
||||||
|
},
|
||||||
|
{ keyName: 'value',
|
||||||
|
value1: 'bar',
|
||||||
|
value1IsAbsent: false,
|
||||||
|
value2: 'absent',
|
||||||
|
value2IsAbsent: true
|
||||||
|
}]
|
||||||
|
}]);
|
||||||
|
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user