forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			154 lines
		
	
	
	
		
			6.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			154 lines
		
	
	
	
		
			6.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import {describe} from 'mocha' | ||
|  | import {expect} from 'chai' | ||
|  | import LayoutConfig from "../../../../Models/ThemeConfig/LayoutConfig"; | ||
|  | import {FixLegacyTheme} from "../../../../Models/ThemeConfig/Conversion/LegacyJsonConvert"; | ||
|  | 
 | ||
|  | 
 | ||
|  | 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.34750, | ||
|  |                 "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") | ||
|  |             expect(fixed.errors, "Could not fix the legacy theme").empty | ||
|  |             const theme = new LayoutConfig(fixed.result, false,"test") | ||
|  |             expect(theme).not.undefined | ||
|  | 
 | ||
|  |     }) | ||
|  | }) | ||
|  | 
 |