@@ -3,6 +3,7 @@ package env
3
3
import (
4
4
"os"
5
5
"reflect"
6
+ "slices"
6
7
"sort"
7
8
"task-runner-launcher/internal/config"
8
9
"task-runner-launcher/internal/logs"
@@ -179,7 +180,8 @@ func TestPrepareRunnerEnv(t *testing.T) {
179
180
},
180
181
RunnerConfigs : map [string ]* config.RunnerConfig {
181
182
"javascript" : {
182
- AllowedEnv : []string {"CUSTOM_VAR1" , "CUSTOM_VAR2" },
183
+ AllowedEnv : []string {"CUSTOM_VAR1" , "CUSTOM_VAR2" },
184
+ HealthCheckServerPort : "5681" ,
183
185
},
184
186
},
185
187
},
@@ -198,6 +200,7 @@ func TestPrepareRunnerEnv(t *testing.T) {
198
200
"LANG=en_US.UTF-8" ,
199
201
"N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT=15" ,
200
202
"N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED=true" ,
203
+ "N8N_RUNNERS_HEALTH_CHECK_SERVER_PORT=5681" ,
201
204
"N8N_RUNNERS_TASK_BROKER_URI=http://localhost:5679" ,
202
205
"N8N_RUNNERS_TASK_TIMEOUT=60" ,
203
206
"PATH=/usr/bin" ,
@@ -215,7 +218,8 @@ func TestPrepareRunnerEnv(t *testing.T) {
215
218
},
216
219
RunnerConfigs : map [string ]* config.RunnerConfig {
217
220
"javascript" : {
218
- AllowedEnv : []string {},
221
+ AllowedEnv : []string {},
222
+ HealthCheckServerPort : "5681" ,
219
223
},
220
224
},
221
225
},
@@ -228,6 +232,7 @@ func TestPrepareRunnerEnv(t *testing.T) {
228
232
"LANG=en_US.UTF-8" ,
229
233
"N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT=15" ,
230
234
"N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED=true" ,
235
+ "N8N_RUNNERS_HEALTH_CHECK_SERVER_PORT=5681" ,
231
236
"N8N_RUNNERS_TASK_BROKER_URI=http://localhost:5679" ,
232
237
"N8N_RUNNERS_TASK_TIMEOUT=60" ,
233
238
"PATH=/usr/bin" ,
@@ -243,7 +248,8 @@ func TestPrepareRunnerEnv(t *testing.T) {
243
248
},
244
249
RunnerConfigs : map [string ]* config.RunnerConfig {
245
250
"javascript" : {
246
- AllowedEnv : []string {},
251
+ AllowedEnv : []string {},
252
+ HealthCheckServerPort : "5681" ,
247
253
},
248
254
},
249
255
},
@@ -254,6 +260,7 @@ func TestPrepareRunnerEnv(t *testing.T) {
254
260
expected : []string {
255
261
"N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT=30" ,
256
262
"N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED=true" ,
263
+ "N8N_RUNNERS_HEALTH_CHECK_SERVER_PORT=5681" ,
257
264
"N8N_RUNNERS_TASK_BROKER_URI=http://localhost:5679" ,
258
265
"N8N_RUNNERS_TASK_TIMEOUT=60" ,
259
266
"PATH=/usr/bin" ,
@@ -269,7 +276,8 @@ func TestPrepareRunnerEnv(t *testing.T) {
269
276
},
270
277
RunnerConfigs : map [string ]* config.RunnerConfig {
271
278
"javascript" : {
272
- AllowedEnv : []string {"CUSTOM_VAR1" , "CUSTOM_VAR2" },
279
+ AllowedEnv : []string {"CUSTOM_VAR1" , "CUSTOM_VAR2" },
280
+ HealthCheckServerPort : "5681" ,
273
281
EnvOverrides : map [string ]string {
274
282
"CUSTOM_VAR1" : "overridden" ,
275
283
"NEW_VAR" : "added" ,
@@ -289,6 +297,7 @@ func TestPrepareRunnerEnv(t *testing.T) {
289
297
"LANG=en_US.UTF-8" ,
290
298
"N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT=30" ,
291
299
"N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED=true" ,
300
+ "N8N_RUNNERS_HEALTH_CHECK_SERVER_PORT=5681" ,
292
301
"N8N_RUNNERS_TASK_BROKER_URI=http://localhost:5679" ,
293
302
"N8N_RUNNERS_TASK_TIMEOUT=60" ,
294
303
"NEW_VAR=added" ,
@@ -306,7 +315,8 @@ func TestPrepareRunnerEnv(t *testing.T) {
306
315
307
316
RunnerConfigs : map [string ]* config.RunnerConfig {
308
317
"javascript" : {
309
- AllowedEnv : []string {"CUSTOM_VAR1" , "CUSTOM_VAR2" },
318
+ AllowedEnv : []string {"CUSTOM_VAR1" , "CUSTOM_VAR2" },
319
+ HealthCheckServerPort : "5681" ,
310
320
EnvOverrides : map [string ]string {
311
321
"N8N_RUNNERS_TASK_BROKER_URI" : "http://evil:5679" ,
312
322
"N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED" : "false" ,
@@ -324,6 +334,7 @@ func TestPrepareRunnerEnv(t *testing.T) {
324
334
"LANG=en_US.UTF-8" ,
325
335
"N8N_RUNNERS_AUTO_SHUTDOWN_TIMEOUT=30" ,
326
336
"N8N_RUNNERS_HEALTH_CHECK_SERVER_ENABLED=true" ,
337
+ "N8N_RUNNERS_HEALTH_CHECK_SERVER_PORT=5681" ,
327
338
"N8N_RUNNERS_TASK_BROKER_URI=http://localhost:5679" ,
328
339
"N8N_RUNNERS_TASK_TIMEOUT=60" ,
329
340
"PATH=/usr/bin" ,
@@ -356,3 +367,49 @@ func TestPrepareRunnerEnv(t *testing.T) {
356
367
})
357
368
}
358
369
}
370
+
371
+ func TestRunnerPortPassedToEnv (t * testing.T ) {
372
+ tests := []struct {
373
+ name string
374
+ port string
375
+ expectedEnv string
376
+ }{
377
+ {
378
+ name : "standard port" ,
379
+ port : "5683" ,
380
+ expectedEnv : "N8N_RUNNERS_HEALTH_CHECK_SERVER_PORT=5683" ,
381
+ },
382
+ {
383
+ name : "alternative port" ,
384
+ port : "8080" ,
385
+ expectedEnv : "N8N_RUNNERS_HEALTH_CHECK_SERVER_PORT=8080" ,
386
+ },
387
+ {
388
+ name : "high port number" ,
389
+ port : "65000" ,
390
+ expectedEnv : "N8N_RUNNERS_HEALTH_CHECK_SERVER_PORT=65000" ,
391
+ },
392
+ }
393
+
394
+ for _ , tt := range tests {
395
+ t .Run (tt .name , func (t * testing.T ) {
396
+ runnerConfig := & config.RunnerConfig {
397
+ HealthCheckServerPort : tt .port ,
398
+ AllowedEnv : []string {},
399
+ EnvOverrides : map [string ]string {},
400
+ }
401
+
402
+ baseConfig := & config.BaseConfig {
403
+ AutoShutdownTimeout : "15" ,
404
+ TaskTimeout : "60" ,
405
+ TaskBrokerURI : "http://localhost:5679" ,
406
+ }
407
+
408
+ logger := logs .NewLogger (logs .InfoLevel , "" )
409
+ env := PrepareRunnerEnv (baseConfig , runnerConfig , logger )
410
+
411
+ found := slices .Contains (env , tt .expectedEnv )
412
+ assert .True (t , found , "Expected %s in runner environment" , tt .expectedEnv )
413
+ })
414
+ }
415
+ }
0 commit comments