Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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: 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
66 changes: 51 additions & 15 deletions utils/local.js
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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,
Expand Down Expand Up @@ -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,
Expand All @@ -128,22 +142,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 +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([
Expand Down