| 
									
										
										
										
											2023-07-15 18:55:03 +02:00
										 |  |  | import LayoutConfig from "../../../../src/Models/ThemeConfig/LayoutConfig" | 
					
						
							|  |  |  | import { FixLegacyTheme } from "../../../../src/Models/ThemeConfig/Conversion/LegacyJsonConvert" | 
					
						
							| 
									
										
										
										
											2023-02-03 04:48:32 +01:00
										 |  |  | import { describe, expect, it } from "vitest" | 
					
						
							| 
									
										
										
										
											2023-11-02 04:35:32 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | import { ConversionContext } from "../../../../src/Models/ThemeConfig/Conversion/ConversionContext" | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | describe("FixLegacyTheme", () => { | 
					
						
							|  |  |  |     it("should create a working theme config", () => { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         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"], | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                         }, | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                     }, | 
					
						
							|  |  |  |                     minzoom: 12, | 
					
						
							|  |  |  |                     title: { | 
					
						
							|  |  |  |                         render: { | 
					
						
							|  |  |  |                             en: "node to node link", | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                         }, | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                         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", | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                             }, | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                             mappings: [ | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                                 { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                                     if: "survey:date:={_now:date}", | 
					
						
							|  |  |  |                                     then: "Surveyed today!", | 
					
						
							|  |  |  |                                 }, | 
					
						
							|  |  |  |                             ], | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                         }, | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                     ], | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     id: "node", | 
					
						
							|  |  |  |                     name: { | 
					
						
							|  |  |  |                         en: "nodes", | 
					
						
							|  |  |  |                     }, | 
					
						
							|  |  |  |                     source: { | 
					
						
							|  |  |  |                         osmTags: "rwn_ref~*", | 
					
						
							|  |  |  |                     }, | 
					
						
							|  |  |  |                     minzoom: 12, | 
					
						
							|  |  |  |                     title: { | 
					
						
							|  |  |  |                         render: { | 
					
						
							|  |  |  |                             en: "walking node <strong>{rwn_ref}</strong>", | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                         }, | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                     }, | 
					
						
							|  |  |  |                     label: { | 
					
						
							|  |  |  |                         mappings: [ | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                             { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                                 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>", | 
					
						
							|  |  |  |                             }, | 
					
						
							|  |  |  |                         ], | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                     }, | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                     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: [ | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                                 { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                                     if: "survey:date:={_now:date}", | 
					
						
							|  |  |  |                                     then: "Surveyed today!", | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                                 }, | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                             ], | 
					
						
							|  |  |  |                         }, | 
					
						
							|  |  |  |                         { | 
					
						
							|  |  |  |                             question: { | 
					
						
							|  |  |  |                                 en: "How many other walking nodes does this node link to?", | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                             }, | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                             render: { | 
					
						
							|  |  |  |                                 en: "This node links to {expected_rwn_route_relations} other walking nodes.", | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |                             }, | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                             freeform: { | 
					
						
							|  |  |  |                                 key: "expected_rwn_route_relations", | 
					
						
							|  |  |  |                                 type: "int", | 
					
						
							|  |  |  |                             }, | 
					
						
							|  |  |  |                         }, | 
					
						
							|  |  |  |                         "images", | 
					
						
							|  |  |  |                     ], | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |             ], | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2023-10-12 16:55:26 +02:00
										 |  |  |         const context = ConversionContext.test() | 
					
						
							|  |  |  |         const fixed = new FixLegacyTheme().convert(<any>walking_node_theme, context) | 
					
						
							| 
									
										
										
										
											2023-02-03 04:48:32 +01:00
										 |  |  |         // "Could not fix the legacy theme"
 | 
					
						
							| 
									
										
										
										
											2023-10-12 16:55:26 +02:00
										 |  |  |         expect(!context.hasErrors()) | 
					
						
							|  |  |  |         const theme = new LayoutConfig(fixed, false) | 
					
						
							| 
									
										
										
										
											2023-02-03 04:48:32 +01:00
										 |  |  |         expect(theme).toBeDefined() | 
					
						
							| 
									
										
										
										
											2022-03-24 03:30:05 +01:00
										 |  |  |     }) | 
					
						
							|  |  |  | }) |