]> git.openstreetmap.org Git - nominatim-ui.git/blobdiff - test/_bootstrap.js
Merge remote-tracking branch 'upstream/master'
[nominatim-ui.git] / test / _bootstrap.js
index b527ee8b32d522fd094f929218e236097e65305c..e608d2b451e3b4d5a2d471de235b5e012c1cb21e 100644 (file)
@@ -1,23 +1,23 @@
-const static_server = require('static-server');
-const http = require('http');
-const httpProxy = require('http-proxy');
-const puppeteer = require('puppeteer');
-const fse = require('fs-extra');
+import static_server from 'static-server';
+import http from 'node:http';
+import httpProxy from 'http-proxy';
+import puppeteer from 'puppeteer';
+import fse from 'fs-extra';
 
 const testing_port = 9999; // this is the port all tests expect nominatim-ui to listen to
 
 // The installation on https://nominatim.openstreetmap.org/ui/ is a bit more complex as
-// for backward compatiblity they run the API and the UI on the same port. Nominatim-UI
+// for backward compatibility they run the API and the UI on the same port. Nominatim-UI
 // is installed in the /ui subdirectory plus their webserver has custom redirect rules.
 //
 // We can simulate that with a proxy.
 const use_proxy = !!process.env.API_ON_SAME_PORT;
 const static_port = use_proxy ? 9998 : 9999;
-
+const reverse_only = !!process.env.REVERSE_ONLY;
 
 // Methods to run at the start and end of the mocha testsuite run
 // https://mochajs.org/#global-setup-fixtures
-exports.mochaGlobalSetup = async function () {
+export async function mochaGlobalSetup() {
   const workdir = 'dist_for_testing';
 
   // 1. Prepare build directory
@@ -28,6 +28,7 @@ exports.mochaGlobalSetup = async function () {
 
   fse.outputFile(workdir + '/theme/config.theme.js', `
 Nominatim_Config.Nominatim_API_Endpoint = '${api_endpoint}';
+Nominatim_Config.Reverse_Only = ${reverse_only};
   `);
 
 
@@ -48,7 +49,7 @@ Nominatim_Config.Nominatim_API_Endpoint = '${api_endpoint}';
       let api_url_match = req.url.match(/\/(\w+\.php)/);
 
       let target = api_url_match
-        ? 'http://nominatim.openstreetmap.org/' + api_url_match[1]
+        ? 'https://nominatim.openstreetmap.org'
         : 'http://localhost:' + static_port;
 
       // console.log(`http proxy ${req.url} => ${target + req.url}`)
@@ -61,15 +62,17 @@ Nominatim_Config.Nominatim_API_Endpoint = '${api_endpoint}';
   // 3. Create browser instance
   global.browser = await puppeteer.launch({
     defaultViewport: { width: 1024, height: 768 },
-    timeout: 5000,
+    timeout: 20000,
+    // latency: 1000,
+    headless: 'new',
     args: [
       '--user-agent=Nominatim UI test suite Mozilla/5.0 Gecko/20100101 HeadlessChrome/90.0'
     ]
   });
-};
+}
 
 
-exports.mochaGlobalTeardown = async function () {
+export async function mochaGlobalTeardown() {
   global.browser.close();
 
   await this.static_http_server.stop();
@@ -81,4 +84,4 @@ exports.mochaGlobalTeardown = async function () {
 
     this.proxy_server.close(() => console.log('proxy server stopped'));
   }
-};
+}