How to test journey files before passing them to heartbeat

Hi,
We are using synthetics monitoring with heartbeat as a container. It works whit no problems.

The thing is that we are working writing more journey files so we need a way to test those journey files before putting them to heartbeat config.

We where using this to test and it worked on heartbeat 7.15.1:

docker run --rm -v $PWD/synthetic_monitoring/journeys/banner:/data -v $PWD/test-reports:/report docker.elastic.co/beats/heartbeat:7.15.1 bash -c 'export TEMP=/tmp/$RANDOM && mkdir -p $TEMP && cp -rp /data/* $TEMP && cd $TEMP && npm install && node_modules/.bin/elastic-synthetics --debug --reporter junit . '

Here is the output:

> sharp@0.28.3 install /tmp/13360/node_modules/sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)

sharp: Using cached /usr/share/heartbeat/.npm/_libvips/libvips-8.10.6-linux-x64.tar.br

> playwright-chromium@1.12.3 install /tmp/13360/node_modules/playwright-chromium
> node install.js

Playwright build of chromium v888113 downloaded to /usr/share/heartbeat/.cache/ms-playwright/chromium-888113
npm notice created a lockfile as package-lock.json. You should commit this file.
added 1 package from 1 contributor, removed 2 packages, updated 175 packages and audited 176 packages in 36.224s

15 packages are looking for funding
  run `npm fund` for details

found 2 moderate severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details
at 927 ms Processing file: /tmp/13360/app1.example.com.journey.ts
at 928 ms Processing file: /tmp/13360/app2.example.com.journey.ts
at 1149 ms register journey: "app1.example.com"
at 1171 ms register journey: "app2"
at 1197 ms Runner: run 2 journeys
at 1198 ms Runner: beforeAll hooks
at 1198 ms Runner: start journey (app1.example.com)
at 1714 ms Gatherer: started recording
at 1714 ms register step: Ir a app1.example.com
at 1715 ms register step: Marca bloques lunes en la mañana
at 1715 ms register step: Click buscar
at 1715 ms register step: Click primera ocurrencia
at 1715 ms Runner: before hooks for (app1.example.com)
at 1715 ms Runner: start step (Ir a app1.example.com)
at 2320 ms Runner: end step (Ir a app1.example.com)
at 2320 ms Runner: start step (Marca bloques lunes en la mañana)
at 2748 ms Runner: end step (Marca bloques lunes en la mañana)
at 2748 ms Runner: start step (Click buscar)
at 5694 ms Runner: end step (Click buscar)
at 5695 ms Runner: start step (Click primera ocurrencia)
at 6238 ms Runner: end step (Click primera ocurrencia)
at 6238 ms Runner: after hooks for (app1.example.com)
at 6248 ms Runner: end journey (app1.example.com)
at 6248 ms Runner: start journey (app2)
at 6297 ms Gatherer: started recording
at 6297 ms register step: Ir a app2.example.com
at 6297 ms register step: Seleccionar Arquitectura
at 6297 ms register step: Click buscar
at 6297 ms register step: Click en texto descriptivo
at 6297 ms Runner: before hooks for (app2)
at 6297 ms Runner: start step (Ir a app2.example.com)
at 8972 ms Runner: end step (Ir a app2.example.com)
at 8972 ms Runner: start step (Seleccionar Arquitectura)
at 9136 ms Runner: end step (Seleccionar Arquitectura)
at 9136 ms Runner: start step (Click buscar)
at 14080 ms Runner: end step (Click buscar)
at 14080 ms Runner: start step (Click en texto descriptivo)
at 15076 ms Runner: end step (Click en texto descriptivo)
at 15076 ms Runner: after hooks for (app2)
at 15082 ms Runner: end journey (app2)
at 15110 ms Runner: afterAll hooks
<testsuites name="" tests="8" failures="0" skipped="0" errors="0" time="15.111">
   <testsuite name="app1.example.com" tests="4" failures="0" skipped="0" errors="0">
      <testcase name="Ir a app1.example.com" classname="app1.example.com Ir a app1.example.com" time="0.6049565970315598">
      </testcase>
      <testcase name="Marca bloques lunes en la mañana" classname="app1.example.com Marca bloques lunes en la mañana" time="0.42836980300489813">
      </testcase>
      <testcase name="Click buscar" classname="app1.example.com Click buscar" time="2.9460161160095595">
      </testcase>
      <testcase name="Click primera ocurrencia" classname="app1.example.com Click primera ocurrencia" time="0.5436386900255457">
      </testcase>
   </testsuite>
   <testsuite name="app2" tests="4" failures="0" skipped="0" errors="0">
      <testcase name="Ir a app2.example.com" classname="app2 Ir a app2.example.com" time="2.6748613819945604">
      </testcase>
      <testcase name="Seleccionar Arquitectura" classname="app2 Seleccionar Arquitectura" time="0.16330350999487564">
      </testcase>
      <testcase name="Click buscar" classname="app2 Click buscar" time="4.944639066990931">
      </testcase>
      <testcase name="Click en texto descriptivo" classname="app2 Click en texto descriptivo" time="0.995671633980237">
      </testcase>
   </testsuite>
</testsuites>

When we do that just changin to 7.17.1 this is the output. It takes for ever and finally timeout the job at CI:

> sharp@0.28.3 install /tmp/27209/node_modules/sharp
> (node install/libvips && node install/dll-copy && prebuild-install) || (node install/can-compile && node-gyp rebuild && node install/dll-copy)

sharp: Downloading https://github.com/lovell/sharp-libvips/releases/download/v8.10.6/libvips-8.10.6-linux-x64.tar.br

> playwright-chromium@1.12.3 install /tmp/27209/node_modules/playwright-chromium
> node install.js

Playwright build of chromium v888113 downloaded to /usr/share/heartbeat/.cache/ms-playwright/chromium-888113
npm notice created a lockfile as package-lock.json. You should commit this file.
added 1 package from 1 contributor, removed 2 packages, updated 175 packages and audited 176 packages in 67.012s

15 packages are looking for funding
  run `npm fund` for details

found 2 moderate severity vulnerabilities
  run `npm audit fix` to fix them, or `npm audit` for details
at 636 ms Processing file: /tmp/27209/app1.example.com.journey.ts
at 637 ms Processing file: /tmp/27209/app2.example.com.journey.ts
at 805 ms register journey: "app1"
at 821 ms register journey: "app2"
at 842 ms Runner: run 2 journeys
at 842 ms Runner: beforeAll hooks
at 843 ms Runner: start journey (app1)

What is the right way to do that?

Thanks!
Andres.