forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			37 lines
		
	
	
	
		
			944 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			37 lines
		
	
	
	
		
			944 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import {equal} from "assert"; | ||
|  | import {UIElement} from "../UI/UIElement"; | ||
|  | UIElement.runningFromConsole = true; | ||
|  | import {CustomLayoutFromJSON} from "../Customizations/JSON/CustomLayoutFromJSON"; | ||
|  | import {And} from "../Logic/TagsFilter"; | ||
|  | 
 | ||
|  | let failures = 0; | ||
|  | 
 | ||
|  | function t(descripiton: string, f: () => void) { | ||
|  | 
 | ||
|  |     try { | ||
|  |         f(); | ||
|  |     } catch (e) { | ||
|  |         failures++; | ||
|  |         console.warn(e); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | function done() { | ||
|  |     if (failures == 0) { | ||
|  |         console.log("All tests done!") | ||
|  |     } else { | ||
|  |         console.warn(failures, "tests failedd :(") | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | t("Parse and match advanced tagging", () => { | ||
|  |     const tags = CustomLayoutFromJSON.TagsFromJson("indoor=yes&access!=private"); | ||
|  |     console.log(tags); | ||
|  |     const m0 = new And(tags).matches([{k: "indoor", v: "yes"}, {k: "access", v: "yes"}]); | ||
|  |     equal(m0, true); | ||
|  |     const m1 = new And(tags).matches([{k: "indoor", v: "yes"}, {k: "access", v: "private"}]); | ||
|  |     equal(m1, false); | ||
|  | }); | ||
|  | 
 | ||
|  | 
 | ||
|  | done(); |