mapcomplete/test/Logic/OSM/OsmObject.spec.ts

93 lines
3.8 KiB
TypeScript

import {describe} from 'mocha'
import {expect} from 'chai'
import {OsmObject} from "../../../Logic/Osm/OsmObject";
import {Utils} from "../../../Utils";
import ScriptUtils from "../../../scripts/ScriptUtils";
import {readFileSync} from "fs";
describe("OsmObject", () => {
describe("download referencing ways", () => {
Utils.injectJsonDownloadForTests(
"https://www.openstreetmap.org/api/0.6/node/1124134958/ways", {
"version": "0.6",
"generator": "CGImap 0.8.6 (49805 spike-06.openstreetmap.org)",
"copyright": "OpenStreetMap and contributors",
"attribution": "http://www.openstreetmap.org/copyright",
"license": "http://opendatacommons.org/licenses/odbl/1-0/",
"elements": [{
"type": "way",
"id": 97038428,
"timestamp": "2019-06-19T12:26:24Z",
"version": 6,
"changeset": 71399984,
"user": "Pieter Vander Vennet",
"uid": 3818858,
"nodes": [1124134958, 323729212, 323729351, 2542460408, 187073405],
"tags": {
"highway": "residential",
"name": "Brugs-Kerkhofstraat",
"sett:pattern": "arc",
"surface": "sett"
}
}, {
"type": "way",
"id": 97038434,
"timestamp": "2019-06-19T12:26:24Z",
"version": 5,
"changeset": 71399984,
"user": "Pieter Vander Vennet",
"uid": 3818858,
"nodes": [1124134958, 1124135024, 187058607],
"tags": {
"bicycle": "use_sidepath",
"highway": "residential",
"name": "Kerkhofblommenstraat",
"sett:pattern": "arc",
"surface": "sett"
}
}, {
"type": "way",
"id": 97038435,
"timestamp": "2017-12-21T21:41:08Z",
"version": 4,
"changeset": 54826837,
"user": "Jakka",
"uid": 2403313,
"nodes": [1124134958, 2576628889, 1124135035, 5298371485, 5298371495],
"tags": {"bicycle": "use_sidepath", "highway": "residential", "name": "Kerkhofblommenstraat"}
}, {
"type": "way",
"id": 251446313,
"timestamp": "2019-01-07T19:22:47Z",
"version": 4,
"changeset": 66106872,
"user": "M!dgard",
"uid": 763799,
"nodes": [1124134958, 5243143198, 4555715455],
"tags": {"foot": "yes", "highway": "service"}
}]
})
it("should download referencing ways",
async () => {
const ways = await OsmObject.DownloadReferencingWays("node/1124134958")
expect(ways).not.undefined
expect(ways).length(4)
})
it("should download full OSM-relations", async () => {
ScriptUtils.fixUtils()
Utils.injectJsonDownloadForTests("https://www.openstreetmap.org/api/0.6/relation/5759328/full", JSON.parse(readFileSync("./test/data/relation_5759328.json","UTF-8")))
const r = await OsmObject.DownloadObjectAsync("relation/5759328").then(x => x)
const geojson = r.asGeoJson();
expect(geojson.geometry.type).eq("MultiPolygon")
})
})
})