Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@
"@vueuse/components": "13.1.0",
"@vueuse/nuxt": "13.1.0",
"ajv": "8.17.1",
"command-exists": "^1.2.9",
"get-port-please": "3.2.0",
"is-electron": "2.2.2",
"js-file-download": "0.4.12",
Expand Down
1 change: 0 additions & 1 deletion tests/integration/microservices/back/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
1 change: 0 additions & 1 deletion tests/integration/microservices/viewer/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
16 changes: 6 additions & 10 deletions tests/integration/setup.js
Original file line number Diff line number Diff line change
Expand Up @@ -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,
}),
])
Expand Down
58 changes: 43 additions & 15 deletions utils/local.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import WebSocket from "ws"
import pkg from "electron"
const { app, dialog } = pkg
import { getPort } from "get-port-please"
import { sync as commandExistsSync } from "command-exists"
import isElectron from "is-electron"
import back_schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json" with { type: "json" }
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json" with { type: "json" }
Expand Down Expand Up @@ -58,7 +59,8 @@ function get_available_port() {
}

async function run_script(
command,
executable_name,
executable_path,
args,
expected_response,
timeout_seconds = 30,
Expand All @@ -68,6 +70,9 @@ 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)
const child = child_process.spawn(command, args, {
encoding: "utf8",
shell: true,
Expand Down Expand Up @@ -109,7 +114,8 @@ async function run_script(
}

async function run_back(
command,
executable_name,
executable_path,
args = {
project_folder_path,
upload_folder_path: undefined,
Expand All @@ -128,22 +134,36 @@ 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 = [
"--port " + port,
"--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)
})
}
Expand Down Expand Up @@ -224,19 +244,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([
Expand Down