forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			153 lines
		
	
	
	
		
			6.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			153 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)
 | 
						|
            expect(theme).not.undefined
 | 
						|
 | 
						|
    })
 | 
						|
})
 | 
						|
 |