UNPKG

@geogirafe/lib-geoportal

Version:

GeoGirafe is a flexible application to build online geoportals.

64 lines (63 loc) 2.45 kB
import { afterAll, beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'; import OgcApiFeaturesManager from './ogcapifeaturesmanager'; import Feature from 'ol/Feature'; import MockHelper from '../tests/mockhelper'; import ServerOgcApi from '../../models/serverogcapi'; vi.mock('./ogcapifeaturesclient'); describe('OgcApiFeaturesManager', () => { beforeAll(() => { MockHelper.startMocking(); }); afterAll(() => { MockHelper.stopMocking(); }); let manager; let layer = { url: 'https://testUrl.com', collectionId: 'collectionId', crs: '', credentials: '', geometryType: 'Point', attributeName: '', attributeType: '', serverType: 'default', server: new ServerOgcApi('test', 'https://testUrl.com', 'default') }; beforeEach(() => { vi.clearAllMocks(); manager = OgcApiFeaturesManager.getInstance(); }); describe('getItemTemplate', () => { it('should return a template object based on queryables', async () => { const mockQueryables = { properties: { name: {}, age: {}, id: {}, geometry: {} } }; manager.getClient(layer.server).getQueryables.mockResolvedValue(mockQueryables); const result = await manager.getItemTemplate(layer); expect(result).toEqual({ name: null, age: null }); }); it('should handle error and return an empty object', async () => { manager.getClient(layer.server).getQueryables.mockRejectedValue(new Error('Error')); const result = await manager.getItemTemplate(layer); expect(result).toEqual({}); }); }); describe('getItems', () => { it('should return a list of features', async () => { const mockFeatures = [new Feature()]; manager.getClient(layer.server).getItems.mockResolvedValue(mockFeatures); const result = await manager.getItems(layer); expect(result).toEqual(mockFeatures); }); it('should handle failure and return empty list', async () => { manager.getClient(layer.server).getItems.mockRejectedValue(new Error('Error')); const result = await manager.getItems(layer); expect(result).toEqual([]); }); }); });