For example, building=yes with no other useful tags (e.g. amenity) will show as Building now
44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
import { module, test } from 'qunit';
|
|
import { setupTest } from 'marco/tests/helpers';
|
|
import { getLocalizedName, getPlaceType } from 'marco/utils/osm';
|
|
|
|
module('Unit | Utility | osm', function (hooks) {
|
|
setupTest(hooks);
|
|
|
|
test('getLocalizedName returns default name if tags are missing', function (assert) {
|
|
const result = getLocalizedName(null);
|
|
assert.strictEqual(result, 'Untitled Place');
|
|
});
|
|
|
|
test('getLocalizedName returns name tag', function (assert) {
|
|
const tags = { name: 'Foo' };
|
|
const result = getLocalizedName(tags);
|
|
assert.strictEqual(result, 'Foo');
|
|
});
|
|
|
|
test('getPlaceType returns value for normal tags', function (assert) {
|
|
const tags = { amenity: 'restaurant' };
|
|
const result = getPlaceType(tags);
|
|
assert.strictEqual(result, 'Restaurant');
|
|
});
|
|
|
|
test('getPlaceType returns key name if value is "yes"', function (assert) {
|
|
const tags = { building: 'yes' };
|
|
const result = getPlaceType(tags);
|
|
assert.strictEqual(result, 'Building');
|
|
});
|
|
|
|
test('getPlaceType prioritizes order (amenity > shop > building)', function (assert) {
|
|
// If something is both a shop and a building, it should be a shop
|
|
const tags = { building: 'yes', shop: 'supermarket' };
|
|
const result = getPlaceType(tags);
|
|
assert.strictEqual(result, 'Supermarket');
|
|
});
|
|
|
|
test('getPlaceType returns null if no known type found', function (assert) {
|
|
const tags = { foo: 'bar' };
|
|
const result = getPlaceType(tags);
|
|
assert.strictEqual(result, null);
|
|
});
|
|
});
|