| 
									
										
										
										
											2023-07-15 18:55:03 +02:00
										 |  |  | import { Utils } from "../../../../src/Utils" | 
					
						
							| 
									
										
										
										
											2023-11-02 04:35:32 +01:00
										 |  |  | import { DesugaringContext } from "../../../../src/Models/ThemeConfig/Conversion/Conversion" | 
					
						
							| 
									
										
										
										
											2023-07-15 18:55:03 +02:00
										 |  |  | import { LayerConfigJson } from "../../../../src/Models/ThemeConfig/Json/LayerConfigJson" | 
					
						
							|  |  |  | import { TagRenderingConfigJson } from "../../../../src/Models/ThemeConfig/Json/TagRenderingConfigJson" | 
					
						
							|  |  |  | import { PrepareLayer } from "../../../../src/Models/ThemeConfig/Conversion/PrepareLayer" | 
					
						
							| 
									
										
										
										
											2022-03-23 19:48:06 +01:00
										 |  |  | import * as bookcases from "../../../../assets/layers/public_bookcase/public_bookcase.json" | 
					
						
							| 
									
										
										
										
											2023-07-15 18:55:03 +02:00
										 |  |  | import CreateNoteImportLayer from "../../../../src/Models/ThemeConfig/Conversion/CreateNoteImportLayer" | 
					
						
							| 
									
										
										
										
											2023-02-03 04:48:32 +01:00
										 |  |  | import { describe, expect, it } from "vitest" | 
					
						
							| 
									
										
										
										
											2023-10-12 16:55:26 +02:00
										 |  |  | import { QuestionableTagRenderingConfigJson } from "../../../../src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson" | 
					
						
							| 
									
										
										
										
											2023-11-02 04:35:32 +01:00
										 |  |  | import { ConversionContext } from "../../../../src/Models/ThemeConfig/Conversion/ConversionContext" | 
					
						
							| 
									
										
										
										
											2022-03-23 19:48:06 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | describe("CreateNoteImportLayer", () => { | 
					
						
							|  |  |  |     it("should generate a layerconfig", () => { | 
					
						
							|  |  |  |         const desugaringState: DesugaringContext = { | 
					
						
							|  |  |  |             sharedLayers: new Map<string, LayerConfigJson>(), | 
					
						
							| 
									
										
										
										
											2023-10-12 16:55:26 +02:00
										 |  |  |             tagRenderings: new Map<string, QuestionableTagRenderingConfigJson>(), | 
					
						
							| 
									
										
										
										
											2022-03-23 19:48:06 +01:00
										 |  |  |         } | 
					
						
							|  |  |  |         const layerPrepare = new PrepareLayer(desugaringState) | 
					
						
							|  |  |  |         const layer = layerPrepare.convertStrict( | 
					
						
							| 
									
										
										
										
											2024-07-21 12:30:29 +02:00
										 |  |  |             <any>bookcases, | 
					
						
							| 
									
										
										
										
											2023-10-12 16:55:26 +02:00
										 |  |  |             ConversionContext.test("parse bookcases") | 
					
						
							| 
									
										
										
										
											2022-03-23 19:48:06 +01:00
										 |  |  |         ) | 
					
						
							|  |  |  |         const generator = new CreateNoteImportLayer() | 
					
						
							|  |  |  |         const generatedLayer: LayerConfigJson = generator.convertStrict( | 
					
						
							|  |  |  |             layer, | 
					
						
							| 
									
										
										
										
											2023-10-12 16:55:26 +02:00
										 |  |  |             ConversionContext.test("convert") | 
					
						
							| 
									
										
										
										
											2022-03-23 19:48:06 +01:00
										 |  |  |         ) | 
					
						
							| 
									
										
										
										
											2023-03-09 23:19:49 +01:00
										 |  |  |         expect(generatedLayer.isShown["and"][1].or[0].and[0]).toEqual( | 
					
						
							|  |  |  |             "_tags~(^|.*;)amenity=public_bookcase($|;.*)" | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2023-02-03 04:48:32 +01:00
										 |  |  |         // "Zoomlevel is to high"
 | 
					
						
							|  |  |  |         expect(generatedLayer.minzoom <= layer.minzoom).toBe(true) | 
					
						
							| 
									
										
										
										
											2022-03-23 19:48:06 +01:00
										 |  |  |         let renderings = Utils.NoNull( | 
					
						
							|  |  |  |             Utils.NoNull( | 
					
						
							|  |  |  |                 generatedLayer.tagRenderings.map((tr) => (<TagRenderingConfigJson>tr).render) | 
					
						
							|  |  |  |             ).map((render) => render["en"]) | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         ) | 
					
						
							| 
									
										
										
										
											2023-02-03 04:48:32 +01:00
										 |  |  |         // "no import button found"
 | 
					
						
							|  |  |  |         expect(renderings.some((r) => r.indexOf("import_button") > 0)).toBe(true) | 
					
						
							| 
									
										
										
										
											2022-03-23 19:48:06 +01:00
										 |  |  |     }) | 
					
						
							|  |  |  | }) |