From eef715d0a417afbc04aca2041cb87357b7679be1 Mon Sep 17 00:00:00 2001 From: Thomas Schoemaecker Date: Fri, 22 Aug 2025 10:41:55 +0100 Subject: [PATCH] Fixing ES issues and dependencies Issues fixed for glob, rimraf Adding support for node >=18.20 --- .gitignore | 1 + index.mjs | 24 ++++++++++++++++++------ package.json | 13 ++++++++----- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 953b4ae..089be71 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ package-lock.json semgrep.sarif +.DS_Store diff --git a/index.mjs b/index.mjs index f677b98..713ff39 100755 --- a/index.mjs +++ b/index.mjs @@ -1,18 +1,19 @@ #!/usr/bin/env node import fs from 'fs' -import rimraf from "rimraf"; +import { rimrafSync } from "rimraf"; import path from 'path' import codeExport from './browserstack-mocha-export.mjs' import { project as projectProcessor } from '@seleniumhq/side-code-export' import pkg from '@seleniumhq/side-utils'; import commander from 'commander'; import logger from 'cli-logger'; -import glob from 'glob'; +import { globSync } from 'glob'; import spawn from 'cross-spawn'; import * as dotenv from 'dotenv'; import { exit } from 'process'; import sanitize from 'sanitize-filename'; +import { fileURLToPath } from 'url'; dotenv.config(); commander @@ -36,14 +37,14 @@ var log = logger(conf); const sideFiles = [ ...commander.args.reduce((projects, project) => { - glob.sync(project).forEach(p => { + globSync(project).forEach(p => { projects.add(p) }) return projects }, new Set()), ]; -rimraf.sync(options.buildFolderPath) +rimrafSync(options.buildFolderPath) fs.mkdirSync(options.buildFolderPath); function readFile(filename) { @@ -90,9 +91,20 @@ var reporter = [] if (options.outputFormat && options.outputFile) reporter = ['--reporter', options.outputFormat, '--reporter-options', 'output=' + options.outputFile] -const testSuiteProcess = spawn.sync('npx', ['browserstack-node-sdk', 'mocha', '_generated', '--timeouts', options.testTimeout, '-g', options.filter, '--browserstack.config', options.browserstackConfig, ...reporter], { stdio: 'inherit', env: { ...process.env, testTimeout: options.testTimeout } }); +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const browserstackSdkPath = path.join(__dirname, 'node_modules', '.bin', 'browserstack-node-sdk'); +const sideRunnerNodeModules = path.join(__dirname, 'node_modules'); + +const testSuiteProcess = spawn.sync(browserstackSdkPath, ['mocha', '_generated', '--timeouts', options.testTimeout, '-g', options.filter, '--browserstack.config', options.browserstackConfig, ...reporter], { + stdio: 'inherit', + env: { + ...process.env, + testTimeout: options.testTimeout, + NODE_PATH: `${sideRunnerNodeModules}${path.delimiter}${process.env.NODE_PATH || ''}` + } +}); if (!options.debug) { - rimraf.sync(options.buildFolderPath) + rimrafSync(options.buildFolderPath) } exit(testSuiteProcess.status) \ No newline at end of file diff --git a/package.json b/package.json index db89988..84fa4e8 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "type": "git", "url": "git+https://github.com/BrowserStackCE/browserstack-side-runner.git" }, - "version": "2.2.2", + "version": "2.3.0", "main": "index.mjs", "homepage": "https://github.com/BrowserStackCE/browserstack-side-runner#readme", "scripts": { @@ -13,6 +13,9 @@ "bin": { "browserstack-side-runner": "index.mjs" }, + "engines": { + "node": ">=18" + }, "author": "", "license": "ISC", "description": "", @@ -21,18 +24,18 @@ "@seleniumhq/code-export-javascript-mocha": "^4.0.0-alpha.4", "@seleniumhq/side-code-export": "^4.0.0-alpha.3", "@seleniumhq/side-utils": "^3.17.2", - "browserstack-node-sdk": "^1.32.0", + "browserstack-node-sdk": "^1.40.8", "cli-logger": "^0.5.40", "commander": "^8.0.0", "cross-spawn": "^7.0.3", "dotenv": "^16.0.3", - "glob": "^11.0.3", + "glob": "^10.4.5", "js-yaml": "^4.1.0", "mocha": "^8.4.0", "mocha-multi-reporters": "^1.5.1", "rfdc": "^1.3.0", - "rimraf": "^6.0.1", + "rimraf": "^5.0.9", "sanitize-filename": "^1.6.3", - "selenium-webdriver": "^4.1.1" + "selenium-webdriver": "^4.5.0" } } \ No newline at end of file