@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
67 lines (66 loc) • 3.09 kB
JavaScript
import { describe, it, expect, beforeAll } from 'vitest';
import MockHelper from '../../tools/tests/mockhelper';
import OfflineComponent from './component';
import { createTestBasemap, createTestLayerWmts } from '../../tools/tests/layerhelpers';
import LayerManager from '../../tools/layers/layermanager';
describe('OfflineComponent.getAllWmtsLayers', () => {
let element;
beforeAll(() => {
MockHelper.startMocking();
if (!customElements.get('girafe-offline')) {
customElements.define('girafe-offline', OfflineComponent);
}
element = new OfflineComponent();
});
it('should return empty array if no layers are available and', () => {
// @ts-ignore
const result = element.getAllWmtsLayers();
expect(result).toEqual([]);
});
it('should return only basemap layers if no active layers are available', () => {
const wmtsLayer1 = createTestLayerWmts();
const wmtsLayer2 = createTestLayerWmts();
const basemap = createTestBasemap();
basemap.layersList = [wmtsLayer1, wmtsLayer2];
element.state.activeBasemap = basemap;
// @ts-ignore
const result = element.getAllWmtsLayers();
expect(result).toEqual([wmtsLayer1, wmtsLayer2]);
});
it('should return only layers if no basemap layers are available', () => {
const wmtsLayer1 = createTestLayerWmts();
const wmtsLayer2 = createTestLayerWmts();
element.state.layers.layersList = [wmtsLayer1, wmtsLayer2];
LayerManager.getInstance().toggleLayer(wmtsLayer1, 'on');
LayerManager.getInstance().toggleLayer(wmtsLayer2, 'on');
element.state.activeBasemap = null;
// @ts-ignore
const result = element.getAllWmtsLayers();
expect(result).toEqual([wmtsLayer1, wmtsLayer2]);
});
it('should return only active layers', () => {
const wmtsLayer1 = createTestLayerWmts();
const wmtsLayer2 = createTestLayerWmts();
element.state.layers.layersList = [wmtsLayer1, wmtsLayer2];
LayerManager.getInstance().toggleLayer(wmtsLayer1, 'on');
LayerManager.getInstance().toggleLayer(wmtsLayer2, 'off');
// @ts-ignore
const result = element.getAllWmtsLayers();
expect(result).toEqual([wmtsLayer1]);
});
it('should return both basemap and active layers', () => {
const wmtsLayer1 = createTestLayerWmts();
const wmtsLayer2 = createTestLayerWmts();
const basemap = createTestBasemap();
basemap.layersList = [wmtsLayer1, wmtsLayer2];
element.state.activeBasemap = basemap;
const wmtsLayer3 = createTestLayerWmts();
const wmtsLayer4 = createTestLayerWmts();
element.state.layers.layersList = [wmtsLayer3, wmtsLayer4];
LayerManager.getInstance().toggleLayer(wmtsLayer3, 'on');
LayerManager.getInstance().toggleLayer(wmtsLayer4, 'off');
// @ts-ignore
const result = element.getAllWmtsLayers();
expect(result).toEqual([wmtsLayer1, wmtsLayer2, wmtsLayer3]);
});
});