Files
NODEDC_PLATFORM/services/map-gateway/test/zone-source-snapshot.test.mjs
T

36 lines
1.9 KiB
JavaScript

import assert from "node:assert/strict";
import test from "node:test";
import { dirname, resolve } from "node:path";
import { fileURLToPath } from "node:url";
import { loadZoneSourceProfile, ZONE_SOURCE_GENERATION_SCHEMA_VERSION } from "../src/zone-source-snapshot.mjs";
const root = resolve(dirname(fileURLToPath(import.meta.url)), "../zone-sources");
test("loads the immutable Department of Transport MMap generation", async () => {
const loaded = await loadZoneSourceProfile(root, "moscow-pmd-slow-zones");
const generation = loaded.generation;
assert.equal(generation.schemaVersion, ZONE_SOURCE_GENERATION_SCHEMA_VERSION);
assert.equal(generation.authorityId, "moscow-department-of-transport");
assert.equal(generation.datasetId, "pmd-slow-zones");
assert.equal(generation.adapterId, "depttrans-mmap-snapshot-v1");
assert.equal(generation.complete, true);
assert.equal(generation.metadata.sourceZoneCount, 905);
assert.equal(generation.metadata.publishedZoneCount, 903);
assert.equal(generation.metadata.excludedZoneCount, 2);
assert.equal(generation.metadata.scheduleRowCount, 6335);
assert.equal(generation.metadata.positionCount, 62955);
assert.equal(generation.metadata.geometrySha256, "914797122297d06acaff8a32605f172abb6c769b879d1b75f567db450d29913f");
assert.equal(generation.metadata.scheduleSha256, "8f3e50e2aec3889657814ea17982b2e75fcc2b83d0511c901016cd08e5844cd5");
assert.match(generation.contentDigest, /^[a-f0-9]{64}$/);
assert.ok(loaded.body.byteLength < 16 * 1024 * 1024);
assert.equal(generation.zones.some((zone) => zone.nativeId === "1521" || zone.nativeId === "1522"), false);
const zone = generation.zones.find((entry) => entry.nativeId === "1478");
assert.equal(zone.displayName, "Петровский парк_6 (15 км/ч)");
assert.equal(zone.geometry.type, "Polygon");
assert.equal(zone.maxSpeedKph, 15);
assert.equal(zone.weeklySpeedSchedule.length, 7);
});