forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			58 lines
		
	
	
		
			No EOL
		
	
	
		
			2.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			No EOL
		
	
	
		
			2.2 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";
 | 
						|
 | 
						|
 | 
						|
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);
 | 
						|
        }]
 | 
						|
    ]
 | 
						|
); |