forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			41 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
	
		
			2.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { Utils } from "../../../../src/Utils"
 | |
| import { DesugaringContext } from "../../../../src/Models/ThemeConfig/Conversion/Conversion"
 | |
| import { LayerConfigJson } from "../../../../src/Models/ThemeConfig/Json/LayerConfigJson"
 | |
| import { TagRenderingConfigJson } from "../../../../src/Models/ThemeConfig/Json/TagRenderingConfigJson"
 | |
| import { PrepareLayer } from "../../../../src/Models/ThemeConfig/Conversion/PrepareLayer"
 | |
| import * as bookcases from "../../../../assets/layers/public_bookcase/public_bookcase.json"
 | |
| import CreateNoteImportLayer from "../../../../src/Models/ThemeConfig/Conversion/CreateNoteImportLayer"
 | |
| import { describe, expect, it } from "vitest"
 | |
| import { QuestionableTagRenderingConfigJson } from "../../../../src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson"
 | |
| import { ConversionContext } from "../../../../src/Models/ThemeConfig/Conversion/ConversionContext"
 | |
| 
 | |
| describe("CreateNoteImportLayer", () => {
 | |
|     it("should generate a layerconfig", () => {
 | |
|         const desugaringState: DesugaringContext = {
 | |
|             sharedLayers: new Map<string, LayerConfigJson>(),
 | |
|             tagRenderings: new Map<string, QuestionableTagRenderingConfigJson>(),
 | |
|         }
 | |
|         const layerPrepare = new PrepareLayer(desugaringState)
 | |
|         const layer = layerPrepare.convertStrict(
 | |
|             <any>bookcases,
 | |
|             ConversionContext.test("parse bookcases")
 | |
|         )
 | |
|         const generator = new CreateNoteImportLayer()
 | |
|         const generatedLayer: LayerConfigJson = generator.convertStrict(
 | |
|             layer,
 | |
|             ConversionContext.test("convert")
 | |
|         )
 | |
|         expect(generatedLayer.isShown["and"][1].or[0].and[0]).toEqual(
 | |
|             "_tags~(^|.*;)amenity=public_bookcase($|;.*)"
 | |
|         )
 | |
|         // "Zoomlevel is to high"
 | |
|         expect(generatedLayer.minzoom <= layer.minzoom).toBe(true)
 | |
|         let renderings = Utils.NoNull(
 | |
|             Utils.NoNull(
 | |
|                 generatedLayer.tagRenderings.map((tr) => (<TagRenderingConfigJson>tr).render)
 | |
|             ).map((render) => render["en"])
 | |
|         )
 | |
|         // "no import button found"
 | |
|         expect(renderings.some((r) => r.indexOf("import_button") > 0)).toBe(true)
 | |
|     })
 | |
| })
 |