diff --git a/tests/integration/microservices/back/requirements.txt b/tests/integration/microservices/back/requirements.txt index 264b69f..bd3a3ef 100644 --- a/tests/integration/microservices/back/requirements.txt +++ b/tests/integration/microservices/back/requirements.txt @@ -5,4 +5,3 @@ # pip-compile --output-file=tests/integration/microservices/back/requirements.txt tests/integration/microservices/back/requirements.in # -opengeodeweb-back==5.*,>=5.11.1 diff --git a/tests/integration/microservices/viewer/requirements.txt b/tests/integration/microservices/viewer/requirements.txt index 80e4fbb..4d09739 100644 --- a/tests/integration/microservices/viewer/requirements.txt +++ b/tests/integration/microservices/viewer/requirements.txt @@ -5,4 +5,3 @@ # pip-compile --output-file=tests/integration/microservices/viewer/requirements.txt tests/integration/microservices/viewer/requirements.in # -opengeodeweb-viewer==1.*,>=1.11.6rc4 diff --git a/tests/integration/setup.js b/tests/integration/setup.js index f75bcef..8b9dd8c 100644 --- a/tests/integration/setup.js +++ b/tests/integration/setup.js @@ -42,20 +42,16 @@ async function setupIntegrationTests(file_name, geode_object, object_type) { const microservices_path = path.join("tests", "integration", "microservices") const project_folder_path = path.join(__dirname, "data", uuidv4()) const upload_folder_path = path.join(__dirname, "data", "uploads") - const back_path = path.join( - executable_path(path.join(microservices_path, "back")), - executable_name("opengeodeweb-back"), - ) - const viewer_path = path.join( - executable_path(path.join(microservices_path, "viewer")), - executable_name("opengeodeweb-viewer"), - ) + const back_path = executable_path(path.join(microservices_path, "back")) + const back_name = executable_name("opengeodeweb-back") + const viewer_path = executable_path(path.join(microservices_path, "viewer")) + const viewer_name = executable_name("opengeodeweb-viewer") const [back_port, viewer_port] = await Promise.all([ - run_back(back_path, { + run_back(back_name, back_path, { project_folder_path: project_folder_path, upload_folder_path: upload_folder_path, }), - run_viewer(viewer_path, { + run_viewer(viewer_name, viewer_path, { project_folder_path: project_folder_path, }), ]) diff --git a/utils/local.js b/utils/local.js index a467bcd..13534f8 100644 --- a/utils/local.js +++ b/utils/local.js @@ -57,8 +57,17 @@ function get_available_port() { }) } +function commandExistsSync(executable_name) { + const envPath = process.env.PATH || "" + return envPath.split(path.delimiter).some((dir) => { + const filePath = path.join(dir, executable_name) + return fs.existsSync(filePath) && fs.statSync(filePath).isFile() + }) +} + async function run_script( - command, + executable_name, + executable_path, args, expected_response, timeout_seconds = 30, @@ -68,6 +77,10 @@ async function run_script( reject("Timed out after " + timeout_seconds + " seconds") }, timeout_seconds * 1000) + const command = commandExistsSync(executable_name) + ? executable_name + : path.join(executable_path, executable_name) + console.log("run_script", command, args) const child = child_process.spawn(command, args, { encoding: "utf8", shell: true, @@ -109,7 +122,8 @@ async function run_script( } async function run_back( - command, + executable_name, + executable_path, args = { project_folder_path, upload_folder_path: undefined, @@ -128,13 +142,22 @@ async function run_back( "--allowed_origin http://localhost:*", "--timeout " + 0, ] - console.log("run_back", command, back_args) - await run_script(command, back_args, "Serving Flask app") + console.log("run_back", executable_name, executable_path, back_args) + await run_script( + executable_name, + executable_path, + back_args, + "Serving Flask app", + ) resolve(port) }) } -async function run_viewer(command, args = { project_folder_path }) { +async function run_viewer( + executable_name, + executable_path, + args = { project_folder_path }, +) { return new Promise(async (resolve, reject) => { const port = await get_available_port() const viewer_args = [ @@ -142,8 +165,13 @@ async function run_viewer(command, args = { project_folder_path }) { "--data_folder_path " + args.project_folder_path, "--timeout " + 0, ] - console.log("run_viewer", command, viewer_args) - await run_script(command, viewer_args, "Starting factory") + console.log("run_viewer", executable_name, executable_path, viewer_args) + await run_script( + executable_name, + executable_path, + viewer_args, + "Starting factory", + ) resolve(port) }) } @@ -224,19 +252,27 @@ function kill_viewer(viewer_port) { async function run_browser( script_name, microservices_options = { - back: { command, args: { project_folder_path } }, - viewer: { command, args: { project_folder_path } }, + back: { executable_name, executable_path, args: { project_folder_path } }, + viewer: { executable_name, executable_path, args: { project_folder_path } }, }, ) { console.log("microservices_options", microservices_options) - const back_promise = run_back(microservices_options.back.command, { - ...microservices_options.back.args, - }) + const back_promise = run_back( + microservices_options.back.executable_name, + microservices_options.back.executable_path, + { + ...microservices_options.back.args, + }, + ) console.log("back_promise", back_promise) - const viewer_promise = run_viewer(microservices_options.viewer.command, { - ...microservices_options.viewer.args, - }) + const viewer_promise = run_viewer( + microservices_options.viewer.executable_name, + microservices_options.viewer.executable_path, + { + ...microservices_options.viewer.args, + }, + ) console.log("viewer_promise", viewer_promise) const [back_port, viewer_port] = await Promise.all([