forked from MapComplete/MapComplete
		
	Add tests for selectedElementUpdater, fix deletion of keys
This commit is contained in:
		
							parent
							
								
									89d4a6bcce
								
							
						
					
					
						commit
						baaf66038d
					
				
					 3 changed files with 115 additions and 1 deletions
				
			
		
							
								
								
									
										111
									
								
								test/Actors.spec.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								test/Actors.spec.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,111 @@ | ||||||
|  | import T from "./TestHelper"; | ||||||
|  | import State from "../State"; | ||||||
|  | import {AllKnownLayouts} from "../Customizations/AllKnownLayouts"; | ||||||
|  | import SelectedElementTagsUpdater from "../Logic/Actors/SelectedElementTagsUpdater"; | ||||||
|  | import UserRelatedState from "../Logic/State/UserRelatedState"; | ||||||
|  | import {Utils} from "../Utils"; | ||||||
|  | import ScriptUtils from "../scripts/ScriptUtils"; | ||||||
|  | 
 | ||||||
|  | export default class ActorsSpec extends T { | ||||||
|  | 
 | ||||||
|  |     constructor() { | ||||||
|  |          | ||||||
|  |         const latestTags = { | ||||||
|  |             "amenity": "public_bookcase", | ||||||
|  |             "books": "children;adults", | ||||||
|  |             "capacity": "25", | ||||||
|  |             "description": "Deze boekenruilkast vindt je recht tegenover de Pim Pam Poem", | ||||||
|  |             "image:0": "https://i.imgur.com/Z8a69UG.jpg", | ||||||
|  |             "name": "Stubbekwartier-buurtbibliotheek", | ||||||
|  |             "nobrand": "yes", | ||||||
|  |             "opening_hours": "24/7", | ||||||
|  |             "operator": "Huisbewoner", | ||||||
|  |             "public_bookcase:type": "reading_box" | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         Utils.injectJsonDownloadForTests( | ||||||
|  |             "https://www.openstreetmap.org/api/0.6/node/5568693115", | ||||||
|  |             { | ||||||
|  |                 "version": "0.6", | ||||||
|  |                 "generator": "CGImap 0.8.5 (1815943 spike-06.openstreetmap.org)", | ||||||
|  |                 "copyright": "OpenStreetMap and contributors", | ||||||
|  |                 "attribution": "http://www.openstreetmap.org/copyright", | ||||||
|  |                 "license": "http://opendatacommons.org/licenses/odbl/1-0/", | ||||||
|  |                 "elements": [{ | ||||||
|  |                     "type": "node", | ||||||
|  |                     "id": 5568693115, | ||||||
|  |                     "lat": 51.2179199, | ||||||
|  |                     "lon": 3.2154662, | ||||||
|  |                     "timestamp": "2021-08-21T16:22:55Z", | ||||||
|  |                     "version": 6, | ||||||
|  |                     "changeset": 110034454, | ||||||
|  |                     "user": "Pieter Vander Vennet", | ||||||
|  |                     "uid": 3818858, | ||||||
|  |                     "tags": latestTags | ||||||
|  |                 }] | ||||||
|  |             } | ||||||
|  |         ) | ||||||
|  | 
 | ||||||
|  |         super("Actors", [ | ||||||
|  |             [ | ||||||
|  |                 "download latest version", | ||||||
|  |                 () => { | ||||||
|  |                     const state = new UserRelatedState(AllKnownLayouts.allKnownLayouts.get("bookcases")) | ||||||
|  |                     const feature = { | ||||||
|  |                         "type": "Feature", | ||||||
|  |                         "id": "node/5568693115", | ||||||
|  |                         "properties": { | ||||||
|  |                             "amenity": "public_bookcase", | ||||||
|  |                             "books": "children;adults", | ||||||
|  |                             "capacity": "25", | ||||||
|  |                             "description": "Deze boekenruilkast vindt je recht tegenover de Pim Pam Poem", | ||||||
|  |                             "image:0": "https://i.imgur.com/Z8a69UG.jpg", | ||||||
|  |                             "name": "OUTDATED NAME", | ||||||
|  |                             "nobrand": "yes", | ||||||
|  |                             "opening_hours": "24/7", | ||||||
|  |                             "operator": "Huisbewoner", | ||||||
|  |                             "public_bookcase:type": "reading_box", | ||||||
|  |                             "id": "node/5568693115", | ||||||
|  |                             "_lat": "51.2179199", | ||||||
|  |                             "_lon": "3.2154662", | ||||||
|  |                             "fixme": "SOME FIXME" | ||||||
|  |                         }, | ||||||
|  |                         "geometry": { | ||||||
|  |                             "type": "Point", | ||||||
|  |                             "coordinates": [ | ||||||
|  |                                 3.2154662, | ||||||
|  |                                 51.2179199 | ||||||
|  |                             ] | ||||||
|  |                         }, | ||||||
|  |                         "bbox": { | ||||||
|  |                             "maxLat": 51.2179199, | ||||||
|  |                             "maxLon": 3.2154662, | ||||||
|  |                             "minLat": 51.2179199, | ||||||
|  |                             "minLon": 3.2154662 | ||||||
|  |                         }, | ||||||
|  |                         "_lon": 3.2154662, | ||||||
|  |                         "_lat": 51.2179199 | ||||||
|  |                     } | ||||||
|  |                     state.allElements.addOrGetElement(feature) | ||||||
|  |                     SelectedElementTagsUpdater.installCallback(state) | ||||||
|  | 
 | ||||||
|  |                     // THis should trigger a download of the latest feaures and update the tags
 | ||||||
|  |                     // However, this doesn't work with ts-node for some reason
 | ||||||
|  |                     state.selectedElement.setData(feature) | ||||||
|  |                      | ||||||
|  |                     SelectedElementTagsUpdater.applyUpdate(state, latestTags, feature.properties.id) | ||||||
|  | 
 | ||||||
|  |                     // The name should be updated
 | ||||||
|  |                     T.equals("Stubbekwartier-buurtbibliotheek", feature.properties.name) | ||||||
|  |                     // The fixme should be removed
 | ||||||
|  |                     T.equals(undefined, feature.properties.fixme) | ||||||
|  | 
 | ||||||
|  |                 }] | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |         ]); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | } | ||||||
|  | @ -12,6 +12,7 @@ import {Utils} from "../Utils"; | ||||||
| import TileFreshnessCalculatorSpec from "./TileFreshnessCalculator.spec"; | import TileFreshnessCalculatorSpec from "./TileFreshnessCalculator.spec"; | ||||||
| import WikidataSpecTest from "./Wikidata.spec.test"; | import WikidataSpecTest from "./Wikidata.spec.test"; | ||||||
| import ImageProviderSpec from "./ImageProvider.spec"; | import ImageProviderSpec from "./ImageProvider.spec"; | ||||||
|  | import ActorsSpec from "./Actors.spec"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| ScriptUtils.fixUtils() | ScriptUtils.fixUtils() | ||||||
|  | @ -27,7 +28,8 @@ const allTests = [ | ||||||
|     new SplitActionSpec(), |     new SplitActionSpec(), | ||||||
|     new TileFreshnessCalculatorSpec(), |     new TileFreshnessCalculatorSpec(), | ||||||
|     new WikidataSpecTest(), |     new WikidataSpecTest(), | ||||||
|     new ImageProviderSpec() |     new ImageProviderSpec(), | ||||||
|  |     new ActorsSpec() | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| Utils.externalDownloadFunction = async (url) => { | Utils.externalDownloadFunction = async (url) => { | ||||||
|  |  | ||||||
|  | @ -19,6 +19,7 @@ export default class T { | ||||||
|             try { |             try { | ||||||
|                 test(); |                 test(); | ||||||
|             } catch (e) { |             } catch (e) { | ||||||
|  |                 console.log("ERROR: ", e, e.stack) | ||||||
|                 failures.push({testsuite: this.name, name: name, msg: "" + e}); |                 failures.push({testsuite: this.name, name: name, msg: "" + e}); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue