@geogirafe/lib-geoportal
Version:
GeoGirafe is a flexible application to build online geoportals.
64 lines (63 loc) • 2.45 kB
JavaScript
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([]);
});
});
});