Preset.isFallback() should return true for the area: yes preset

This commit is contained in:
Bryan Housel
2016-01-29 00:28:17 -05:00
parent 7c9bc50718
commit 649ba856f6
2 changed files with 15 additions and 4 deletions
+2 -1
View File
@@ -50,7 +50,8 @@ iD.presets.Preset = function(id, preset, fields) {
};
preset.isFallback = function() {
return Object.keys(preset.tags).length === 0;
var tagCount = Object.keys(preset.tags).length;
return tagCount === 0 || (tagCount === 1 && preset.tags.hasOwnProperty('area'));
};
preset.reference = function(geometry) {
+13 -3
View File
@@ -48,12 +48,22 @@ describe('iD.presets.Preset', function() {
describe("isFallback", function() {
it("returns true if preset has no tags", function() {
var preset = iD.presets.Preset("area", {tags: {}});
var preset = iD.presets.Preset("point", {tags: {}});
expect(preset.isFallback()).to.equal(true);
});
it("returns false if preset has tags", function() {
var preset = iD.presets.Preset("area", {tags: {building: 'yes'}});
it("returns true if preset has a single 'area' tag", function() {
var preset = iD.presets.Preset("area", {tags: {area: 'yes'}});
expect(preset.isFallback()).to.equal(true);
});
it("returns false if preset has a single non-'area' tag", function() {
var preset = iD.presets.Preset("building", {tags: {building: 'yes'}});
expect(preset.isFallback()).to.equal(false);
});
it("returns false if preset has multiple tags", function() {
var preset = iD.presets.Preset("building", {tags: {area: 'yes', building: 'yes'}});
expect(preset.isFallback()).to.equal(false);
});
});