import ThemeConfig from "../../../../src/Models/ThemeConfig/ThemeConfig" import { FixLegacyTheme } from "../../../../src/Models/ThemeConfig/Conversion/LegacyJsonConvert" import { describe, expect, it } from "vitest" import { ConversionContext } from "../../../../src/Models/ThemeConfig/Conversion/ConversionContext" 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 {ref}", }, }, ], }, 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 {rwn_ref}", }, }, label: { mappings: [ { if: "rwn_ref~*", then: "
{rwn_ref}
", }, ], }, 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 context = ConversionContext.test() const fixed = new FixLegacyTheme().convert(walking_node_theme, context) // "Could not fix the legacy theme" expect(!context.hasErrors()) const theme = new ThemeConfig(fixed, false) expect(theme).toBeDefined() }) })