142 lines
5.5 KiB
TypeScript
142 lines
5.5 KiB
TypeScript
import LayoutConfig from "../../../../Models/ThemeConfig/LayoutConfig"
|
|
import { FixLegacyTheme } from "../../../../Models/ThemeConfig/Conversion/LegacyJsonConvert"
|
|
import { describe, expect, it } from "vitest"
|
|
|
|
describe("FixLegacyTheme", () => {
|
|
it("should create a working theme config", () => {
|
|
const walking_node_theme = {
|
|
id: "walkingnodenetworks",
|
|
title: {
|
|
en: "Walking node networks",
|
|
},
|
|
maintainer: "L'imaginaire",
|
|
icon: "https://upload.wikimedia.org/wikipedia/commons/3/30/Man_walking_icon_1410105361.svg",
|
|
description: {
|
|
en: "This map shows walking node networks",
|
|
},
|
|
language: ["en"],
|
|
socialImage: "img.jpg",
|
|
version: "2021-10-02",
|
|
startLat: 51.1599,
|
|
startLon: 3.3475,
|
|
startZoom: 12,
|
|
clustering: {
|
|
maxZoom: 12,
|
|
},
|
|
layers: [
|
|
{
|
|
id: "node2node",
|
|
name: {
|
|
en: "node to node links",
|
|
},
|
|
source: {
|
|
osmTags: {
|
|
and: ["network=rwn", "network:type=node_network"],
|
|
},
|
|
},
|
|
minzoom: 12,
|
|
title: {
|
|
render: {
|
|
en: "node to node link",
|
|
},
|
|
mappings: [
|
|
{
|
|
if: "ref~*",
|
|
then: {
|
|
en: "node to node link <strong>{ref}</strong>",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
width: {
|
|
render: "4",
|
|
},
|
|
color: {
|
|
render: "#8b1e20",
|
|
},
|
|
tagRenderings: [
|
|
{
|
|
question: {
|
|
en: "When was this node to node link last surveyed?",
|
|
},
|
|
render: {
|
|
en: "This node to node link was last surveyed on {survey:date}",
|
|
},
|
|
freeform: {
|
|
key: "survey:date",
|
|
type: "date",
|
|
},
|
|
mappings: [
|
|
{
|
|
if: "survey:date:={_now:date}",
|
|
then: "Surveyed today!",
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
id: "node",
|
|
name: {
|
|
en: "nodes",
|
|
},
|
|
source: {
|
|
osmTags: "rwn_ref~*",
|
|
},
|
|
minzoom: 12,
|
|
title: {
|
|
render: {
|
|
en: "walking node <strong>{rwn_ref}</strong>",
|
|
},
|
|
},
|
|
label: {
|
|
mappings: [
|
|
{
|
|
if: "rwn_ref~*",
|
|
then: "<div style='position: absolute; top: 10px; right: 10px; color: white; background-color: #8b1e20; width: 20px; height: 20px; border-radius: 100%'>{rwn_ref}</div>",
|
|
},
|
|
],
|
|
},
|
|
tagRenderings: [
|
|
{
|
|
question: {
|
|
en: "When was this walking node last surveyed?",
|
|
},
|
|
render: {
|
|
en: "This walking node was last surveyed on {survey:date}",
|
|
},
|
|
freeform: {
|
|
key: "survey:date",
|
|
type: "date",
|
|
},
|
|
mappings: [
|
|
{
|
|
if: "survey:date:={_now:date}",
|
|
then: "Surveyed today!",
|
|
},
|
|
],
|
|
},
|
|
{
|
|
question: {
|
|
en: "How many other walking nodes does this node link to?",
|
|
},
|
|
render: {
|
|
en: "This node links to {expected_rwn_route_relations} other walking nodes.",
|
|
},
|
|
freeform: {
|
|
key: "expected_rwn_route_relations",
|
|
type: "int",
|
|
},
|
|
},
|
|
"images",
|
|
],
|
|
},
|
|
],
|
|
}
|
|
const fixed = new FixLegacyTheme().convert(<any>walking_node_theme, "While testing")
|
|
// "Could not fix the legacy theme"
|
|
expect(fixed.errors).empty
|
|
const theme = new LayoutConfig(fixed.result, false)
|
|
expect(theme).toBeDefined()
|
|
})
|
|
})
|