Skip to content

Guía de test de API IDEE

Jesús Guillen Encinas edited this page Feb 26, 2026 · 1 revision

La API-IDEE utiliza playwright para hacer las pruebas de la herramienta.

Ejemplo de test en playwright:

// Ejemplo en OL
import { test, expect } from '@playwright/test';

test('Click attributions', async ({ page }) => {
  await page.goto('/test/playwright/ol/basic-ol.html');
  let mapjs;
  await page.evaluate(() => {
    mapjs = IDEE.map({
      container: 'map',
      controls: ['attributions'],
    });
  });
  await page.waitForFunction(() => mapjs.isFinished());
  const attributions = await page.locator('.m-attributions').first();
  await expect(attributions).toHaveClass(/collapsed/);
  await attributions.getByRole('button', { name: 'Plugin attributions' }).click();
  await page.waitForTimeout(1000);
  await expect(attributions).toHaveClass(/opened/);
  await attributions.getByRole('button', { name: 'Plugin attributions' }).click();
  await page.waitForTimeout(1000);
  await expect(attributions).toHaveClass(/collapsed/);
});

Estructura

En el Core como en los plugins, en la carpeta test, tendrá que contener una carpeta llamada playwright que contendrán los test.

Dependiendo de la implementación, se crean dos carpetas:

  • cesium: Test de playwright para la implementación de Cesium.
  • ol: Test de playwright para la implementación de Openlayers.
test/
├── development/
├── playwright/
    ├── cesium
    ├── ol
├── production/
└── configuration_filtered.js

En la carpeta cesium y ol se encuentra un html básico que se utilizará como base para los test.

Ejecución de Test en el CORE (API-IDEE-JS)

Configuración

Será necesario ejecutar npx -y playwright@1.50.1 install para instalar playwright en la máquina.

Para configurar los test de Playwright la API-IDEE proporciona dos archivos de configuración, uno por cada implementación. Estos archivos se encuentran en la carpeta playwright-config,playwright-cesium.config.js y playwright-ol.config.js.

La configuración se utilizará en el package.json para la ejecución de los test:

  • "test:playwright-ol": "playwright test --config=./playwright-config/playwright-ol.config.js"
  • "test:playwright-cesium": "playwright test --config=./playwright-config/playwright-cesium.config.js"
  • "test:all": "npm run test:playwright-ol; npm run test:playwright-cesium"

Ejecución

Para ejecutar las pruebas en local, se tiene que tener compilada la herramienta. Ejecutar el comando npm run build para generar la carpeta "dist".

En el package.json contiene 3 scripts para la ejecución de los test.

  • npm run test:playwright-ol: Ejecuta los test de Openlayers.
  • npm run test:playwright-cesium: Ejecuta los test de Cesium.
  • npm run test:all: Ejecuta todos los test (ol y cesium).

Cada test se ejecutará en 3 navegadores distintos: Chrome, Firefox y Webkit.

El puerto donde se levantarán los test será el 8081, este puerto debe estar libre en la máquina donde se ejecuten.

Ejecución de Test en los plugins

Configuración

Al igual que en el CORE los plugins contarán con una carpeta playwright-config para la configuración.

El package.json contará con los 3 (test:playwright-ol, test:playwright-cesium y test:all)script necesarios para lanzar los test.

Ejecución

  • npm run test:playwright-ol: Ejecuta los test de Openlayers.
  • npm run test:playwright-cesium: Ejecuta los test de Cesium.
  • npm run test:all: Ejecuta todos los test (ol y cesium).

Cada test se ejecutará en 3 navegadores distintos: Chrome, Firefox y Webkit.

El puerto donde se levantarán los test será el 8081, este puerto debe estar libre en la máquina donde se ejecuten.

Ejecución de Test en los plugins externos

Para los plugins que no se encuentran dentro de api-idee-js (externos) deberán:

  • Instalar la librería playwright: npm i -D @playwright/test@1.50.1
  • Crear archivo webpack.playwright.config.js con el mismo contenido que el del propio CORE
  • Crear carpeta playwright-config con archivos playwright-cesium.config.js y playwright-ol.config.js con el mismo contenido que el del propio CORE
  • Crear el html apuntando al dist del plugin (necesario npm run build)
  • En el test apuntar a page.goto('/test/playwright/ol/help-ol.html')
  • Crear scripts en el package.json
    • "test:playwright-ol": "playwright test --config=./playwright-config/playwright-ol.config.js",
    • "test:playwright-cesium": "playwright test --config=./playwright-config/playwright-cesium.config.js"
    • "test:all": "npm run test:playwright-ol",

1.INICIO
   1.1. Componentes de la API-IDEE
   1.2. Documentación y Puntos de acceso
   1.3. Primeros pasos
   1.4. Diagrama API IDEE

2. MAPA
2.1. Capas

 ■ 2.1.1. Fuentes
   • 2.1.1.1. Capas vectoriales
     + Vector
     + WFS
     + GeoJSON
     + KML
     + MVT
     + OGCAPIFeatures
     + MBTilesVector
     + GenericVector
     + MapLibre
   • 2.1.1.2. Capas ráster
     + WMS
     + WMC
     + WMTS
     + TMS
     + XYZ
     + OSM
     + MBTiles
     + GenericRaster
     + GeoTIFF
     + GeoPackageTile
   • 2.1.1.3. Capas 3D
     + Terreno
     + 3DTiles
       + info 3DTiles
   • 2.1.1.4. Capas rápidas
   • 2.1.1.5. Grupo de capas
   • 2.1.1.6. Secciones
   • 2.1.1.7. GeoPackage
   • 2.1.1.8. Capas externas

 ■ 2.1.2. Simbolización
   • 2.1.2.1. Genérica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.2. Básica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.3. Avanzada
     + Coropletas
     + Proporcional
     + Categorías
     + Estadísticos
     + Mapas de Calor
     + Cluster
     + Línea de flujo
     + Composición

 ■ 2.1.3. Filtros

2.3.-Plugins

  > Creación de plugin en cliente

  » Tutorial de creación de un plugin

2.4. Paneles

  » Creación de panel desde cero sin controles

  » Tutorial Panel de un único control

  » Tutorial Panel de un único control con más de un botón

  » Tutorial Panel con más de un control

2.5. Eventos

  » Gestión de eventos
  » Gestión de eventos en controles personalizados

    2.6. Internacionalización

    2.7. Configuración

    2.8. Acceso librerías base

3. UTILIDADES

4. PROXY

5. API REST
 5.1. Parametrización API-REST
 5.2. Base de Datos API-REST
 5.3. API REST Actions
 5.4. Servicio de correos electrónicos
 5.5. Capas rápidas
 5.6. Parametrización API-REST plugins externos

6. PARAMETRIZACIÓN VISUALIZADORES

7. SOLUCIÓN DE PROBLEMAS

8. PROCESO DE VERSIONADO

9. GUÍA DE DESARROLLO
  > Guía para colaborar en el repositorio
  > Guía para el desarrollo de API-IDEE
  > Guía de test de API-IDEE
  » Tutorial desarrollo del núcleo de API-IDEE - (Cliente)
  > Guía de desarrollo de componentes
  » Tutorial desarrollo del núcleo de API-IDEE - (Servidor)
  > Guía de desarrollo de plugins
  » Tutorial desarrollo de plugins ya creados
  » Tutorial desarrollo de nuevos plugins
  > Guía de desarrollo de visualizadores con React

  > Compilación proyecto API-IDEE

Clone this wiki locally