Skip to content

Commit b591a0d

Browse files
Merge branch 'next' of https://github.com/Geode-solutions/OpenGeodeWeb-Front into test/integration_model
2 parents 68bf5e5 + 2100c54 commit b591a0d

File tree

2 files changed

+57
-25
lines changed

2 files changed

+57
-25
lines changed

tests/integration/setup.js

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,16 @@ async function setupIntegrationTests(file_name, geode_object) {
4040
const microservices_path = path.join("tests", "integration", "microservices")
4141
const project_folder_path = path.join(data_folder, uuidv4())
4242
const upload_folder_path = path.join(__dirname, "data", "uploads")
43-
const back_path = path.join(
44-
executable_path(path.join(microservices_path, "back")),
45-
executable_name("opengeodeweb-back"),
46-
)
47-
const viewer_path = path.join(
48-
executable_path(path.join(microservices_path, "viewer")),
49-
executable_name("opengeodeweb-viewer"),
50-
)
43+
const back_path = executable_path(path.join(microservices_path, "back"))
44+
const back_name = executable_name("opengeodeweb-back")
45+
const viewer_path = executable_path(path.join(microservices_path, "viewer"))
46+
const viewer_name = executable_name("opengeodeweb-viewer")
5147
const [back_port, viewer_port] = await Promise.all([
52-
run_back(back_path, {
48+
run_back(back_name, back_path, {
5349
project_folder_path: project_folder_path,
5450
upload_folder_path: upload_folder_path,
5551
}),
56-
run_viewer(viewer_path, {
52+
run_viewer(viewer_name, viewer_path, {
5753
project_folder_path: project_folder_path,
5854
}),
5955
])

utils/local.js

Lines changed: 51 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,17 @@ function get_available_port() {
5757
})
5858
}
5959

60+
function commandExistsSync(executable_name) {
61+
const envPath = process.env.PATH || ""
62+
return envPath.split(path.delimiter).some((dir) => {
63+
const filePath = path.join(dir, executable_name)
64+
return fs.existsSync(filePath) && fs.statSync(filePath).isFile()
65+
})
66+
}
67+
6068
async function run_script(
61-
command,
69+
executable_name,
70+
executable_path,
6271
args,
6372
expected_response,
6473
timeout_seconds = 30,
@@ -68,6 +77,10 @@ async function run_script(
6877
reject("Timed out after " + timeout_seconds + " seconds")
6978
}, timeout_seconds * 1000)
7079

80+
const command = commandExistsSync(executable_name)
81+
? executable_name
82+
: path.join(executable_path, executable_name)
83+
console.log("run_script", command, args)
7184
const child = child_process.spawn(command, args, {
7285
encoding: "utf8",
7386
shell: true,
@@ -109,7 +122,8 @@ async function run_script(
109122
}
110123

111124
async function run_back(
112-
command,
125+
executable_name,
126+
executable_path,
113127
args = {
114128
project_folder_path,
115129
upload_folder_path: undefined,
@@ -128,22 +142,36 @@ async function run_back(
128142
"--allowed_origin http://localhost:*",
129143
"--timeout " + 0,
130144
]
131-
console.log("run_back", command, back_args)
132-
await run_script(command, back_args, "Serving Flask app")
145+
console.log("run_back", executable_name, executable_path, back_args)
146+
await run_script(
147+
executable_name,
148+
executable_path,
149+
back_args,
150+
"Serving Flask app",
151+
)
133152
resolve(port)
134153
})
135154
}
136155

137-
async function run_viewer(command, args = { project_folder_path }) {
156+
async function run_viewer(
157+
executable_name,
158+
executable_path,
159+
args = { project_folder_path },
160+
) {
138161
return new Promise(async (resolve, reject) => {
139162
const port = await get_available_port()
140163
const viewer_args = [
141164
"--port " + port,
142165
"--data_folder_path " + args.project_folder_path,
143166
"--timeout " + 0,
144167
]
145-
console.log("run_viewer", command, viewer_args)
146-
await run_script(command, viewer_args, "Starting factory")
168+
console.log("run_viewer", executable_name, executable_path, viewer_args)
169+
await run_script(
170+
executable_name,
171+
executable_path,
172+
viewer_args,
173+
"Starting factory",
174+
)
147175
resolve(port)
148176
})
149177
}
@@ -224,19 +252,27 @@ function kill_viewer(viewer_port) {
224252
async function run_browser(
225253
script_name,
226254
microservices_options = {
227-
back: { command, args: { project_folder_path } },
228-
viewer: { command, args: { project_folder_path } },
255+
back: { executable_name, executable_path, args: { project_folder_path } },
256+
viewer: { executable_name, executable_path, args: { project_folder_path } },
229257
},
230258
) {
231259
console.log("microservices_options", microservices_options)
232-
const back_promise = run_back(microservices_options.back.command, {
233-
...microservices_options.back.args,
234-
})
260+
const back_promise = run_back(
261+
microservices_options.back.executable_name,
262+
microservices_options.back.executable_path,
263+
{
264+
...microservices_options.back.args,
265+
},
266+
)
235267
console.log("back_promise", back_promise)
236268

237-
const viewer_promise = run_viewer(microservices_options.viewer.command, {
238-
...microservices_options.viewer.args,
239-
})
269+
const viewer_promise = run_viewer(
270+
microservices_options.viewer.executable_name,
271+
microservices_options.viewer.executable_path,
272+
{
273+
...microservices_options.viewer.args,
274+
},
275+
)
240276
console.log("viewer_promise", viewer_promise)
241277

242278
const [back_port, viewer_port] = await Promise.all([

0 commit comments

Comments
 (0)