forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			60 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								import T from "./TestHelper";
							 | 
						||
| 
								 | 
							
								import {Utils} from "../Utils";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Utils.runningFromConsole = true;
							 | 
						||
| 
								 | 
							
								import TagRenderingQuestion from "../UI/Popup/TagRenderingQuestion";
							 | 
						||
| 
								 | 
							
								import {UIEventSource} from "../Logic/UIEventSource";
							 | 
						||
| 
								 | 
							
								import TagRenderingConfig from "../Customizations/JSON/TagRenderingConfig";
							 | 
						||
| 
								 | 
							
								import {equal} from "assert";
							 | 
						||
| 
								 | 
							
								import * as assert from "assert";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								new T("TagQuestionElement",
							 | 
						||
| 
								 | 
							
								    [
							 | 
						||
| 
								 | 
							
								        ["Freeform has textfield", () => {
							 | 
						||
| 
								 | 
							
								            const tags = new UIEventSource({
							 | 
						||
| 
								 | 
							
								                id: "way/123",
							 | 
						||
| 
								 | 
							
								                amenity: 'public_bookcases'
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								            const config = new TagRenderingConfig(
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    render: "The name is {name}",
							 | 
						||
| 
								 | 
							
								                    question: "What is the name of this bookcase?",
							 | 
						||
| 
								 | 
							
								                    freeform: {
							 | 
						||
| 
								 | 
							
								                        key: "name",
							 | 
						||
| 
								 | 
							
								                        type: "string"
							 | 
						||
| 
								 | 
							
								                    }
							 | 
						||
| 
								 | 
							
								                }, undefined, "Testing tag"
							 | 
						||
| 
								 | 
							
								            );
							 | 
						||
| 
								 | 
							
								            const questionElement = new TagRenderingQuestion(tags, config);
							 | 
						||
| 
								 | 
							
								            const html = questionElement.InnerRender();
							 | 
						||
| 
								 | 
							
								            T.assertContains("What is the name of this bookcase?", html);
							 | 
						||
| 
								 | 
							
								            T.assertContains("<input type='text'", html);
							 | 
						||
| 
								 | 
							
								        }],
							 | 
						||
| 
								 | 
							
								        ["TagsQuestion with Freeform and mappings has textfield", () => {
							 | 
						||
| 
								 | 
							
								            const tags = new UIEventSource({
							 | 
						||
| 
								 | 
							
								                id: "way/123",
							 | 
						||
| 
								 | 
							
								                amenity: 'public_bookcases'
							 | 
						||
| 
								 | 
							
								            });
							 | 
						||
| 
								 | 
							
								            const config = new TagRenderingConfig(
							 | 
						||
| 
								 | 
							
								                {
							 | 
						||
| 
								 | 
							
								                    render: "The name is {name}",
							 | 
						||
| 
								 | 
							
								                    question: "What is the name of this bookcase?",
							 | 
						||
| 
								 | 
							
								                    freeform: {
							 | 
						||
| 
								 | 
							
								                        key: "name",
							 | 
						||
| 
								 | 
							
								                        type: "string"
							 | 
						||
| 
								 | 
							
								                    },
							 | 
						||
| 
								 | 
							
								                    mappings: [
							 | 
						||
| 
								 | 
							
								                        {"if": "noname=yes",
							 | 
						||
| 
								 | 
							
								                        "then": "This bookcase has no name"}
							 | 
						||
| 
								 | 
							
								                    ]
							 | 
						||
| 
								 | 
							
								                }, undefined, "Testing tag"
							 | 
						||
| 
								 | 
							
								            );
							 | 
						||
| 
								 | 
							
								            const questionElement = new TagRenderingQuestion(tags, config);
							 | 
						||
| 
								 | 
							
								            const html = questionElement.InnerRender();
							 | 
						||
| 
								 | 
							
								            T.assertContains("What is the name of this bookcase?", html);
							 | 
						||
| 
								 | 
							
								            T.assertContains("This bookcase has no name", html);
							 | 
						||
| 
								 | 
							
								            T.assertContains("<input type='text'", html);
							 | 
						||
| 
								 | 
							
								        }]
							 | 
						||
| 
								 | 
							
								    ]
							 | 
						||
| 
								 | 
							
								);
							 |