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