@@ -663,7 +663,7 @@ setup_web_java() {
663663 # === 3️⃣ Update Base URL ===
664664 if grep -qr " https://www.bstackdemo.com" . ; then
665665 log_msg_to " 🌐 Updating base URL to $CX_TEST_URL " " $GLOBAL " " $WEB_LOG_FILE "
666- sed -i.bak " s|https://www.bstackdemo.com|$CX_TEST_URL |g" $( grep -rl " https://www.bstackdemo.com" .)
666+ sed -i " s|https://www.bstackdemo.com|$CX_TEST_URL |g" $( grep -rl " https://www.bstackdemo.com" .)
667667 fi
668668
669669 if is_domain_private; then
@@ -719,6 +719,8 @@ setup_web_python() {
719719 REPO=" now-pytest-browserstack"
720720 TARGET_DIR=" $WORKSPACE_DIR /$PROJECT_FOLDER /$REPO "
721721
722+ rm -rf $TARGET_DIR
723+
722724 git clone https://github.com/browserstackCE/$REPO .git " $TARGET_DIR " >> " $WEB_LOG_FILE " 2>&1 || true
723725 log_msg_to " ✅ Cloned repository: $REPO into $TARGET_DIR " " $PRE_RUN_LOG_FILE "
724726
774776
775777
776778 # Update base URL in the new sample test
777- # sed -i.bak "s|https://bstackdemo.com/|$CX_TEST_URL|g" tests/bstack-sample-test.py || true
778- sed -i.bak " s|https://bstackdemo.com|$CX_TEST_URL |g" tests/bstack-sample-test.py || true
779+ # sed -i "s|https://bstackdemo.com/|$CX_TEST_URL|g" tests/bstack-sample-test.py || true
780+ sed -i " s|https://bstackdemo.com|$CX_TEST_URL |g" tests/bstack-sample-test.py || true
779781 log_msg_to " 🌐 Updated base URL in tests/bstack-sample-test.py to: $CX_TEST_URL "
780782
781783
@@ -792,21 +794,22 @@ EOF
792794}
793795
794796
795- setup_web_js () {
797+ setup_web_nodejs () {
796798 local local_flag=$1
797799 local parallels=$2
798800
799- REPO=" webdriverio-browserstack"
801+ REPO=" now- webdriverio-browserstack"
800802 TARGET_DIR=" $WORKSPACE_DIR /$PROJECT_FOLDER /$REPO "
801803
804+ rm -rf $TARGET_DIR
805+
802806 mkdir -p " $WORKSPACE_DIR /$PROJECT_FOLDER "
803807
804808 # === 1️⃣ Clone Repo ===
805- log_msg_to " 📦 Cloning repo $REPO (branch tra) into $TARGET_DIR " " $GLOBAL " " $WEB_LOG_FILE "
806- git clone -b tra https://github.com/browserstack /$REPO .git " $TARGET_DIR " >> " $WEB_LOG_FILE " 2>&1 || true
809+ log_msg_to " 📦 Cloning repo $REPO into $TARGET_DIR " " $GLOBAL " " $WEB_LOG_FILE "
810+ git clone https://github.com/browserstackCE /$REPO .git " $TARGET_DIR " >> " $WEB_LOG_FILE " 2>&1 || true
807811
808812 cd " $TARGET_DIR " || return 1
809- validate_prereqs || return 1
810813
811814 # === 2️⃣ Install Dependencies ===
812815 log_msg_to " ⚙️ Running 'npm install'" " $GLOBAL " " $WEB_LOG_FILE "
@@ -818,148 +821,9 @@ setup_web_js() {
818821 local caps_json
819822 caps_json=$( generate_web_caps_json " $parallels " )
820823
821- # === 5️⃣ Determine buildIdentifier based on local ===
822- if [ " $local_flag " = true ]; then
823- BUILD_ID=" #${BUILD_NUMBER} -local"
824- else
825- BUILD_ID=" #${BUILD_NUMBER} -remote"
826- fi
827-
828- cat > conf/base.conf.js << EOF
829- exports.config = {
830- user: process.env.BROWSERSTACK_USERNAME || 'BROWSERSTACK_USERNAME',
831- key: process.env.BROWSERSTACK_ACCESS_KEY || 'BROWSERSTACK_ACCESS_KEY',
832-
833- updateJob: false,
834- specs: ['./tests/specs/test.js'],
835- exclude: [],
836-
837- logLevel: 'warn',
838- coloredLogs: true,
839- screenshotPath: './errorShots/',
840- baseUrl: "$CX_TEST_URL ",
841-
842- waitforTimeout: 10000,
843- connectionRetryTimeout: 120000,
844- connectionRetryCount: 1,
845- hostname: 'hub.browserstack.com',
846- services: [['browserstack']],
847-
848- before: function () {
849- var chai = require('chai');
850- global.expect = chai.expect;
851- chai.Should();
852- },
853-
854- framework: 'mocha',
855- mochaOpts: {
856- ui: 'bdd',
857- timeout: 60000,
858- },
859- };
860- EOF
861-
862- cat > tests/specs/test.js << EOF
863- describe("Testing with BStackDemo", () => {
864- it("add product to cart", async () => {
865- await browser.url("$CX_TEST_URL ");
866-
867- await browser.waitUntil(
868- async () => (await browser.getTitle()).match(/StackDemo/i),
869- { timeout: 5000, timeoutMsg: "Title didn't match with BrowserStack" }
870- );
871-
872- await browser.waitUntil(
873- async () => (await productInCart.getText()).match(productOnScreenText),
874- { timeout: 5000 }
875- );
876- });
877- });
878- EOF
879-
880-
881-
882- # === 6️⃣ Create conf/test.conf.js using template ===
883- log_msg_to " 🛠️ Creating conf/test.conf.js configuration file" " $GLOBAL " " $WEB_LOG_FILE "
884-
885- if [ " $local_flag " = true ]; then
886- # BUILD_ID="#${BUILD_NUMBER}-localOn"
887- cat > conf/test.conf.js << EOF
888- const { config: baseConfig } = require('./base.conf.js');
889- const parallelConfig = {
890- maxInstances: $parallels ,
891- commonCapabilities: {
892- 'bstack:options': {
893- buildIdentifier: "$BUILD_ID ",
894- buildName: 'browserstack-sample-js-web',
895- source: 'webdriverio:sample-master:v1.2',
896- projectName: 'NOW-Web-Test',
897- }
898- },
899- services: [
900- [
901- 'browserstack',
902- {
903- testObservability: true,
904- testObservabilityOptions: {
905- buildTag: ['bstack_sample']
906- },
907- browserstackLocal: true,
908- accessibility: true,
909- percy: true,
910- },
911- ],
912- ],
913- capabilities: [
914- $( echo " $caps_json " | sed ' s/^/ /' )
915- ],
916- };
917- exports.config = { ...baseConfig, ...parallelConfig };
918- exports.config.capabilities.forEach(function (caps) {
919- for (var i in exports.config.commonCapabilities)
920- caps[i] = { ...caps[i], ...exports.config.commonCapabilities[i]};
921- });
922- EOF
923-
924- else
925- cat > conf/test.conf.js << EOF
926- const { config: baseConfig } = require('./base.conf.js');
927- const parallelConfig = {
928- maxInstances: $parallels ,
929- commonCapabilities: {
930- 'bstack:options': {
931- buildIdentifier: "$BUILD_ID ",
932- buildName: 'browserstack-sample-js-web',
933- source: 'webdriverio:sample-master:v1.2',
934- projectName: 'NOW-Web-Test',
935- }
936- },
937- services: [
938- [
939- 'browserstack',
940- {
941- testObservability: true,
942- testObservabilityOptions: {
943- buildTag: ['bstack_sample']
944- },
945- browserstackLocal: false,
946- accessibility: true,
947- percy: true,
948- },
949- ],
950- ],
951- capabilities: [
952- $( echo " $caps_json " | sed ' s/^/ /' )
953- ],
954- };
955- exports.config = { ...baseConfig, ...parallelConfig };
956- exports.config.capabilities.forEach(function (caps) {
957- for (var i in exports.config.commonCapabilities)
958- caps[i] = { ...caps[i], ...exports.config.commonCapabilities[i]};
959- });
960- EOF
961-
962- fi
824+ export BSTACK_PARALLELS=$parallels
825+
826+ export BSTACK_CAPS_JSON=$caps_json
963827
964828 if is_domain_private; then
965829 local_flag=true
@@ -1009,16 +873,29 @@ setup_web() {
1009873 while [ " $attempt " -le 1 ]; do
1010874 log_msg_to " [Web Setup]" " $WEB_LOG_FILE "
1011875 case " $TECH_STACK " in
1012- Java) setup_web_java " $local_flag " " $parallels_per_platform " " $WEB_LOG_FILE " ;;
1013- Python) setup_web_python " $local_flag " " $parallels_per_platform " " $WEB_LOG_FILE " ;;
1014- NodeJS) setup_web_js " $local_flag " " $parallels_per_platform " " $WEB_LOG_FILE " ;;
876+ Java)
877+ setup_web_java " $local_flag " " $parallels_per_platform " " $WEB_LOG_FILE "
878+ if (grep -qiE " BUILD FAILURE" " $WEB_LOG_FILE " ); then
879+ success=false
880+ fi
881+ ;;
882+ Python)
883+ setup_web_python " $local_flag " " $parallels_per_platform " " $WEB_LOG_FILE "
884+ if (grep -qiE " BUILD FAILURE" " $WEB_LOG_FILE " ); then
885+ success=false
886+ fi
887+ ;;
888+
889+
890+ NodeJS) setup_web_nodejs " $local_flag " " $parallels_per_platform " " $WEB_LOG_FILE "
891+ if (grep -qiE " ([1-9][0-9]*) passed, 0 failed" " $WEB_LOG_FILE " ); then
892+ success=false
893+ fi
894+ ;;
895+
1015896 * ) log_msg_to " Unknown TECH_STACK: $TECH_STACK " " $WEB_LOG_FILE " ; return 1 ;;
1016897 esac
1017898
1018- if (grep -qiE " BUILD FAILURE" " $WEB_LOG_FILE " ); then
1019- success=false
1020- fi
1021-
1022899 if [ " $success " = true ]; then
1023900 log_msg_to " ✅ Web setup succeeded." " $WEB_LOG_FILE "
1024901 break
@@ -1188,7 +1065,7 @@ setup_mobile_java() {
11881065 # Update pom.xml → browserstack-java-sdk version to LATEST
11891066 pom_file=" $TARGET_DIR /pom.xml"
11901067 if [ -f " $pom_file " ]; then
1191- sed -i.bak ' /<artifactId>browserstack-java-sdk<\/artifactId>/,/<\/dependency>/ s|<version>.*</version>|<version>LATEST</version>|' " $pom_file "
1068+ sed -i ' /<artifactId>browserstack-java-sdk<\/artifactId>/,/<\/dependency>/ s|<version>.*</version>|<version>LATEST</version>|' " $pom_file "
11921069 log_msg_to " 🔧 Updated browserstack-java-sdk version to LATEST in pom.xml" " $GLOBAL " " $MOBILE_LOG_FILE "
11931070 fi
11941071
@@ -1202,7 +1079,7 @@ setup_mobile_java() {
12021079 # Update TestBase.java → switch AppiumDriver to AndroidDriver
12031080 testbase_file=$( find src -name " TestBase.java" | head -n 1)
12041081 if [ -f " $testbase_file " ]; then
1205- sed -i.bak ' s/new AppiumDriver(/new AndroidDriver(/g' " $testbase_file "
1082+ sed -i ' s/new AppiumDriver(/new AndroidDriver(/g' " $testbase_file "
12061083 log_msg_to " 🔧 Updated driver initialization in $testbase_file to use AndroidDriver" " $GLOBAL " " $MOBILE_LOG_FILE "
12071084 fi
12081085
0 commit comments