UNPKG

@kartotherian/module-loader

Version:

Kartotherian loader that instantiates tilelive and Kartotherian modules

65 lines (50 loc) 1.74 kB
'use strict'; let assert = require('assert'), XmlLoader = require('..').XmlLoader; function test(opts, expected) { return () => { let loader = new XmlLoader(opts, (v, n) => v.ref); let xml = loader.update(opts.xml); assert.strictEqual(xml, expected); } } function xml(opts) { opts = opts || {}; if (opts.source === undefined){ opts.source = '<![CDATA[<a/>]]>'; } const source = !opts.source ? '' : `<Parameter name="source">${opts.source}</Parameter>`; const layerOptional = opts.excludeOptional ? '' : `<Layer name="layerOptional"><StyleName>Optional</StyleName></Layer>`; return `<?xml version="1.0" encoding="UTF-8"?> <Map srs="abc"${opts.attrs || ''}><Parameters><Parameter name="attribution"><![CDATA[<a/>]]></Parameter>${source}</Parameters><Layer name="layerAlways"><StyleName>Always</StyleName></Layer>${layerOptional}</Map> `; } describe('xmlLoader', () => { it('unmodified', test({xml: 'abc'}, 'abc')); it('xmlSetParams', test({ xml: xml(), xmlSetParams: { source: {ref: "sourceId"} } }, xml({source: 'sourceId'}))); it('xmlSetParams new', test({ xml: xml({source: null}), xmlSetParams: { source: {ref: "sourceId"} } }, xml({source: 'sourceId'}))); it('xmlSetAttrs', test({ xml: xml(), xmlSetAttrs: { attr: {ref: "abc"} } }, xml({attrs: ' attr="abc"'}))); it('xmlLayers', test({ xml: xml(), xmlLayers: ['layerAlways'] }, xml({excludeOptional: true}))); it('xmlExceptLayers', test({ xml: xml(), xmlExceptLayers: ['layerOptional'] }, xml({excludeOptional: true}))); });