WIP Add places to lists
This commit is contained in:
58
tests/unit/utils/place-mapping-test.js
Normal file
58
tests/unit/utils/place-mapping-test.js
Normal file
@@ -0,0 +1,58 @@
|
||||
import { mapToStorageSchema } from 'marco/utils/place-mapping';
|
||||
import { module, test } from 'qunit';
|
||||
|
||||
module('Unit | Utility | place-mapping', function () {
|
||||
test('it maps a raw place object to the storage schema', function (assert) {
|
||||
const rawPlace = {
|
||||
osmId: 12345,
|
||||
osmType: 'node',
|
||||
lat: 52.52,
|
||||
lon: 13.405,
|
||||
osmTags: {
|
||||
name: 'Test Place',
|
||||
website: 'https://example.com',
|
||||
},
|
||||
description: 'A test description',
|
||||
};
|
||||
|
||||
const result = mapToStorageSchema(rawPlace);
|
||||
|
||||
assert.strictEqual(result.title, 'Test Place');
|
||||
assert.strictEqual(result.lat, 52.52);
|
||||
assert.strictEqual(result.lon, 13.405);
|
||||
assert.strictEqual(result.osmId, '12345');
|
||||
assert.strictEqual(result.osmType, 'node');
|
||||
assert.strictEqual(result.url, 'https://example.com');
|
||||
assert.strictEqual(result.description, 'A test description');
|
||||
assert.deepEqual(result.osmTags, rawPlace.osmTags);
|
||||
assert.deepEqual(result.tags, []);
|
||||
});
|
||||
|
||||
test('it prioritizes place.title over osmTags.name', function (assert) {
|
||||
const rawPlace = {
|
||||
osmId: 123,
|
||||
lat: 0,
|
||||
lon: 0,
|
||||
title: 'Custom Title',
|
||||
osmTags: {
|
||||
name: 'OSM Name',
|
||||
},
|
||||
};
|
||||
|
||||
const result = mapToStorageSchema(rawPlace);
|
||||
assert.strictEqual(result.title, 'Custom Title');
|
||||
});
|
||||
|
||||
test('it handles fallback title correctly when no name is present', function (assert) {
|
||||
const rawPlace = {
|
||||
id: 987,
|
||||
lat: 10,
|
||||
lon: 20,
|
||||
osmTags: {},
|
||||
};
|
||||
|
||||
const result = mapToStorageSchema(rawPlace);
|
||||
assert.strictEqual(result.title, 'Untitled Place');
|
||||
assert.strictEqual(result.osmId, '987');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user