Recrear la DDBB con cada ejecución de los tests
[isfdt166-ansi-edi2-2024-server.git] / openapi / README.md
blob7e5558552b09124fb443ca22a760245d490265d2
1 Fake REST API
2 -------------
4 A continuación se documentan dos formas de crear un servicio que ejecute una REST API falsa, basada en la documentación OpenAPI (archivo YAML).
6 Primero hay que crear un entorno virtual donde instalar las herramientas.
8 ```bash
9 virtualenv venv
10 source venv/bin/activate
11 pip install nodeenv
12 nodeenv -p
13 deactivate
14 ```
16 Luego, como primera opción, se puede usar [counterfact](https://github.com/pmcelhaney/counterfact) para crear el servicio de la REST API falsa.
18 ```bash
19 source venv/bin/activate
20 npx counterfact@latest openapi.yaml api
21 # ... trabajar ...
22 deactivate
23 ```
25 La segunda opción, para ejecutar la REST API falsa, es usar [prism](https://github.com/stoplightio/prism).
27 ```bash
28 source venv/bin/activate
29 # Instalar `prism` (solo una vez)
30 npm install -g @stoplight/prism-cli
31 # Ejecutar el servicio con `prism`
32 prism mock -d openapi.yaml
33 # ... trabajar ...
34 deactivate
35 ```
37 También existe otra herramienta llamada [mockoon](https://github.com/mockoon/mockoon).
39 ```bash
40 source venv/bin/activate
41 # Instalar `mockoon` (solo una vez)
42 npm install -g @mockoon/cli
43 # Ejecutar el servicio con `mockoon`
44 mockoon-cli start --data openapi.yaml
45 # ... trabajar ...
46 deactivate
47 ```
49 --------------------------------------------------------------------------------
51 Pruebas Automatizadas
52 ---------------------
54 Para correr todas las pruebas automatizadas, ejecutar el script `test-api.sh` de la siguiente manera.
56 ```bash
57 bash test-api.sh [HOST] [PORT]
58 ```
60 Donde `[HOST]` y `[PORT]` hacen referencia, respectivamente, al servidor y puerto donde está corriendo el servicio de la API REST.
62 De querer detener la ejecución de las pruebas en el primer error, se puede usar la variable global `STOP_ON_FAILURE` de la siguiente forma.
64 ```bash
65 STOP_ON_FAILURE='true' bash test-api.sh [HOST] [PORT]
66 ```