| 
									
										
										
										
											2021-10-20 00:10:02 +02:00
										 |  |  | import T from "./TestHelper"; | 
					
						
							|  |  |  | import SelectedElementTagsUpdater from "../Logic/Actors/SelectedElementTagsUpdater"; | 
					
						
							|  |  |  | import UserRelatedState from "../Logic/State/UserRelatedState"; | 
					
						
							|  |  |  | import {Utils} from "../Utils"; | 
					
						
							| 
									
										
										
										
											2021-10-20 01:13:55 +02:00
										 |  |  | import SelectedFeatureHandler from "../Logic/Actors/SelectedFeatureHandler"; | 
					
						
							|  |  |  | import {UIEventSource} from "../Logic/UIEventSource"; | 
					
						
							|  |  |  | import {ElementStorage} from "../Logic/ElementStorage"; | 
					
						
							|  |  |  | import Loc from "../Models/Loc"; | 
					
						
							| 
									
										
										
										
											2021-12-21 21:15:07 +01:00
										 |  |  | import * as bookcaseJson from "../assets/generated/themes/bookcases.json" | 
					
						
							| 
									
										
										
										
											2021-12-21 18:35:31 +01:00
										 |  |  | import LayoutConfig from "../Models/ThemeConfig/LayoutConfig"; | 
					
						
							| 
									
										
										
										
											2021-10-20 00:10:02 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | export default class ActorsSpec extends T { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     constructor() { | 
					
						
							| 
									
										
										
										
											2021-10-20 01:13:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-20 00:10:02 +02:00
										 |  |  |         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" | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2021-10-20 01:13:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-20 00:10:02 +02:00
										 |  |  |         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 | 
					
						
							|  |  |  |                 }] | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-01-14 13:58:15 +01:00
										 |  |  |         super([ | 
					
						
							| 
									
										
										
										
											2021-10-20 00:10:02 +02:00
										 |  |  |             [ | 
					
						
							|  |  |  |                 "download latest version", | 
					
						
							|  |  |  |                 () => { | 
					
						
							| 
									
										
										
										
											2022-01-26 21:40:38 +01:00
										 |  |  |                     const state = new UserRelatedState(new LayoutConfig(bookcaseJson, true, "tests")) | 
					
						
							| 
									
										
										
										
											2021-10-20 00:10:02 +02:00
										 |  |  |                     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) | 
					
						
							| 
									
										
										
										
											2021-10-20 01:13:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-20 00:10:02 +02:00
										 |  |  |                     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) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-20 01:13:55 +02:00
										 |  |  |                 }], | 
					
						
							|  |  |  |             ["Hash without selected element should download geojson from OSM-API", async () => { | 
					
						
							|  |  |  |                 const hash = new UIEventSource("node/5568693115") | 
					
						
							|  |  |  |                 const selected = new UIEventSource(undefined) | 
					
						
							|  |  |  |                 const loc = new UIEventSource<Loc>({ | 
					
						
							|  |  |  |                     lat: 0, | 
					
						
							|  |  |  |                     lon: 0, | 
					
						
							|  |  |  |                     zoom: 0 | 
					
						
							|  |  |  |                 }) | 
					
						
							| 
									
										
										
										
											2021-11-07 16:34:51 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-20 01:13:55 +02:00
										 |  |  |                 loc.addCallback(_ => { | 
					
						
							|  |  |  |                     T.equals("node/5568693115", selected.data.properties.id) | 
					
						
							|  |  |  |                     T.equals(14, loc.data.zoom) | 
					
						
							| 
									
										
										
										
											2021-11-07 16:34:51 +01:00
										 |  |  |                     T.equals(51.2179199, loc.data.lat) | 
					
						
							| 
									
										
										
										
											2021-10-20 01:13:55 +02:00
										 |  |  |                 }) | 
					
						
							| 
									
										
										
										
											2021-11-07 16:34:51 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-20 01:13:55 +02:00
										 |  |  |                 new SelectedFeatureHandler(hash, { | 
					
						
							|  |  |  |                     selectedElement: selected, | 
					
						
							|  |  |  |                     allElements: new ElementStorage(), | 
					
						
							|  |  |  |                     featurePipeline: undefined, | 
					
						
							|  |  |  |                     locationControl: loc, | 
					
						
							|  |  |  |                     layoutToUse: undefined | 
					
						
							|  |  |  |                 }) | 
					
						
							| 
									
										
										
										
											2021-11-07 16:34:51 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-20 01:13:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |             }] | 
					
						
							| 
									
										
										
										
											2021-10-20 00:10:02 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         ]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |