forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			63 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			2.8 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 EditableTagRendering from "../UI/Popup/EditableTagRendering";
 | |
| 
 | |
| export default class TagQuestionSpec extends T {
 | |
|     constructor() {
 | |
|         super("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);
 | |
|                 }]
 | |
|             ]);
 | |
|     }
 | |
| }
 |