Skip to content

Commit 4444bb3

Browse files
committed
nodejs tested
1 parent 15bfbac commit 4444bb3

File tree

1 file changed

+36
-159
lines changed

1 file changed

+36
-159
lines changed

mac.sh

Lines changed: 36 additions & 159 deletions
Original file line numberDiff line numberDiff line change
@@ -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

@@ -774,8 +776,8 @@ EOF
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

Comments
 (0)