mirror of
https://github.com/FoggedLens/iD.git
synced 2026-03-06 11:21:33 +00:00
97 lines
3.6 KiB
JavaScript
97 lines
3.6 KiB
JavaScript
describe("iD.util.relevantChanges", function() {
|
|
var base = iD.Graph({
|
|
'a': iD.Node({id: 'a', loc: [0, 0]}),
|
|
'b': iD.Node({id: 'b', loc: [2, 0]}),
|
|
'c': iD.Node({id: 'c', loc: [2, 2]}),
|
|
'd': iD.Node({id: 'd', loc: [0, 2]}),
|
|
'e': iD.Node({id: 'e', loc: [0, 2]}),
|
|
'-': iD.Way({id: '-', nodes: ['a', 'b', 'c', 'd', 'e', 'a']})
|
|
});
|
|
|
|
it("returns a way that changed", function() {
|
|
var way = iD.Way({id: '-', nodes: ['a', 'b', 'c', 'd', 'a']}),
|
|
graph = base.replace(way),
|
|
changes = { modified: [way] },
|
|
a = iD.util.relevantChanges(graph, changes, base);
|
|
expect(a).to.eql([{
|
|
changeType: 'modified',
|
|
entity: way
|
|
}]);
|
|
});
|
|
|
|
it("reports an existing modified way, leaving out the verticies", function() {
|
|
var way = iD.Way({id: '-', nodes: ['a', 'b', 'c', 'd', 'e', 'a']}),
|
|
vertex = iD.Node({id: 'e', loc: [0, 3]}),
|
|
graph = base.replace(way).replace(vertex),
|
|
changes = { modified: [way, vertex] },
|
|
a = iD.util.relevantChanges(graph, changes, base);
|
|
expect(a).to.eql([{
|
|
changeType: 'modified',
|
|
entity: way
|
|
}]);
|
|
});
|
|
|
|
it("reports an existing way as modified when a member vertex is modified", function() {
|
|
var vertex = base.entity('e').move([0,3]),
|
|
graph = base.replace(vertex),
|
|
changes = { modified: [vertex], deleted: [] },
|
|
a = iD.util.relevantChanges(graph, changes, base);
|
|
expect(a).to.eql([{
|
|
changeType: 'modified',
|
|
entity: graph.entity('-')
|
|
}]);
|
|
});
|
|
|
|
it("reports a created way containing a moved vertex as being created", function() {
|
|
var vertex = base.entity('e').move([0,3]),
|
|
way = iD.Way({id: '+', nodes: ['e']}),
|
|
graph = base.replace(way).replace(vertex),
|
|
changes = { created: [way], modified: [vertex, graph.entity('-')] },
|
|
a = iD.util.relevantChanges(graph, changes, base);
|
|
expect(a).to.eql([{
|
|
changeType: 'created',
|
|
entity: way
|
|
}, {
|
|
changeType: 'modified',
|
|
entity: graph.entity('-')
|
|
}]);
|
|
});
|
|
|
|
it("reports an existing way with an added vertex as being modified", function() {
|
|
var vertex = iD.Node({id: 'f'}),
|
|
graph = base.replace(vertex).replace(base.entity('-').addNode('f'));
|
|
var changes = {
|
|
created: [vertex],
|
|
modified: [graph.entity('-')]
|
|
},
|
|
a = iD.util.relevantChanges(graph, changes, base);
|
|
expect(a).to.eql([{
|
|
changeType: 'modified',
|
|
entity: graph.entity('-')
|
|
}]);
|
|
});
|
|
|
|
it("reports a created way with a created vertex as being created", function() {
|
|
var vertex = iD.Node({id: 'f'}),
|
|
way = iD.Way({id: '+', nodes: ['f']}),
|
|
graph = base.replace(vertex).replace(way),
|
|
changes = { created: [way, vertex] },
|
|
a = iD.util.relevantChanges(graph, changes, base);
|
|
expect(a).to.eql([{
|
|
changeType: 'created',
|
|
entity: way
|
|
}]);
|
|
});
|
|
|
|
it("reports an existing vertex with added tags as modified", function() {
|
|
var vertex = iD.Node({id: 'f', tags: {yes: 'it works'}}),
|
|
graph = base.replace(vertex),
|
|
changes = { modified: [vertex] },
|
|
a = iD.util.relevantChanges(graph, changes, base);
|
|
expect(a).to.eql([{
|
|
changeType: 'modified',
|
|
entity: vertex
|
|
}]);
|
|
});
|
|
});
|