-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.
// 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
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}`)
// 3. Create browser instance
global.browser = await puppeteer.launch({
defaultViewport: { width: 1024, height: 768 },
- timeout: 10000,
+ 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();
this.proxy_server.close(() => console.log('proxy server stopped'));
}
-};
+}