Skip to content

Commit cd341e0

Browse files
committed
Adding Node local test scipt
1 parent 3587ff8 commit cd341e0

8 files changed

+226
-96
lines changed

.DS_Store

6 KB
Binary file not shown.

android/.DS_Store

6 KB
Binary file not shown.
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
let wd = require('wd');
2+
let assert = require('assert');
3+
let asserters = wd.asserters;
4+
let Q = wd.Q;
5+
let browserstack = require('browserstack-local');
6+
7+
// Set your BrowserStack access credentials
8+
let userName = 'YOUR_USERNAME'
9+
let accessKey = "YOUR_ACCESS_KEY"
10+
11+
desiredCaps = {
12+
'browserstack.user' : userName,
13+
'browserstack.key' : accessKey,
14+
15+
// Set URL of the application under test
16+
'app' : 'bs://<app-id>',
17+
18+
// Specify device and os_version for testing
19+
'device' : 'Google Pixel 3',
20+
'os_version' : '9.0',
21+
22+
//Set browserstack.local capability as true
23+
'browserstack.local' : true,
24+
25+
// Set other BrowserStack capabilities
26+
'project' : 'First NodeJS project',
27+
'build' : 'Node Android Local',
28+
'name': 'local_test',
29+
'browserstack.debug' : true,
30+
};
31+
32+
let promise = new Promise(function(resolve, reject) {
33+
// Start BrowserStack Local
34+
exports.bs_local = new browserstack.Local();
35+
exports.bs_local.start({'key': accessKey}, (error) => {
36+
if (error) return reject(error);
37+
console.log('BrowserStack Local connected.');
38+
resolve();
39+
});
40+
});
41+
42+
promise.then(function() {
43+
console.log("Debug 3")
44+
// Initialize the remote Webdriver using BrowserStack remote URL
45+
// and desired capabilities defined above
46+
driver = wd.promiseRemote("http://hub-cloud.browserstack.com/wd/hub");
47+
48+
// Test case for the BrowserStack sample Android Local app.
49+
// If you have uploaded your app, update the test case here.
50+
driver.init(desiredCaps)
51+
.then(function () {
52+
return driver.waitForElementById('com.example.android.basicnetworking:id/test_action', asserters.isDisplayed && asserters.isEnabled, 30000);
53+
})
54+
.then(function (testElement) {
55+
return testElement.click();
56+
})
57+
.then(function () {
58+
return driver.waitForElementsByClassName('android.widget.TextView', asserters.isDisplayed, 30000);
59+
})
60+
.then(function (textElements) {
61+
return Q().then(function () {
62+
return textElements.map(function (textElement) {
63+
return textElement.text().then(function(value) {
64+
if (value.indexOf('The active connection is') !== -1) {
65+
console.log(value);
66+
assert(value.indexOf('The active connection is wifi') !== -1);
67+
assert(value.indexOf('Up and running') !== -1);
68+
}
69+
});
70+
})
71+
}).all()
72+
})
73+
.fin(function() {
74+
// Invoke driver.quit() after the test is done to indicate that the test is completed.
75+
return driver.quit();
76+
})
77+
.done(function() {
78+
// Stop BrowserStack Local
79+
exports.bs_local.stop((error) => {
80+
if(error) return console.log("Error in stopping BrowserStack Local :"+ error)
81+
console.log("Stopped BrowserStack Local")
82+
})
83+
});
84+
}, function(error) {
85+
console.log("Failed to start BrowserStack Local :" + error)
86+
})

android/localTest.js

Lines changed: 0 additions & 44 deletions
This file was deleted.

ios/BrowserStackSampleiOSLocal.js

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
let wd = require('wd');
2+
let assert = require('assert');
3+
let asserters = wd.asserters;
4+
let Asserter = wd.Asserter;
5+
let browserstack = require('browserstack-local');
6+
let chai = require("chai");
7+
let chaiAsPromised = require("chai-as-promised");
8+
9+
chai.use(chaiAsPromised);
10+
chai.should();
11+
chaiAsPromised.transferPromiseness = wd.transferPromiseness;
12+
13+
// Set your BrowserStack access credentials
14+
let userName = 'YOUR_USERNAME'
15+
let accessKey = "YOUR_ACCESS_KEY"
16+
17+
desiredCaps = {
18+
'browserstack.user' : userName,
19+
'browserstack.key' : accessKey,
20+
21+
// Set URL of the application under test
22+
'app' : 'bs://<app-id>',
23+
24+
// Specify device and os_version for testing
25+
'device' : 'iPhone 11 Pro',
26+
'os_version' : '13',
27+
28+
//Set browserstack.local capability as true
29+
'browserstack.local' : true,
30+
31+
// Set other BrowserStack capabilities
32+
'project' : 'First NodeJS project',
33+
'build' : 'Node iOS Local',
34+
'name': 'local_test',
35+
'browserstack.debug' : true,
36+
};
37+
38+
let promise = new Promise(function(resolve, reject) {
39+
// Start BrowserStack Local
40+
exports.bs_local = new browserstack.Local();
41+
exports.bs_local.start({'key': accessKey}, (error) => {
42+
if (error) return reject(error);
43+
console.log('BrowserStack Local connected.');
44+
resolve();
45+
});
46+
});
47+
48+
promise.then(function() {
49+
// Initialize the remote Webdriver using BrowserStack remote URL
50+
// and desired capabilities defined above
51+
driver = wd.promiseRemote("http://hub-cloud.browserstack.com/wd/hub");
52+
53+
// Test case for the BrowserStack sample iOS Local app.
54+
// If you have uploaded your app, update the test case here.
55+
driver.init(desiredCaps)
56+
.then(function () {
57+
return driver.waitForElementById('TestBrowserStackLocal', asserters.isDisplayed && asserters.isEnabled, 30000);
58+
})
59+
.then(function (testElement) {
60+
return testElement.click();
61+
})
62+
.then(function () {
63+
return driver.waitForElementById('ResultBrowserStackLocal', asserters.isDisplayed, 30000);
64+
})
65+
.then(function (resultElement) {
66+
return resultElement.text().should.eventually.include('Up and running');
67+
})
68+
.fin(function() {
69+
// Invoke driver.quit() after the test is done to indicate that the test is completed.
70+
return driver.quit();
71+
})
72+
.done(function() {
73+
// Stop BrowserStack Local
74+
exports.bs_local.stop((error) => {
75+
if(error) return console.log("Error in stopping BrowserStack Local :"+ error)
76+
console.log("Stopped BrowserStack Local")
77+
})
78+
});
79+
80+
},function(error) {
81+
console.log("Failed to start BrowserStack Local :" + error)
82+
})
83+

ios/localTest.js

Lines changed: 0 additions & 51 deletions
This file was deleted.

package-lock.json

Lines changed: 54 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
"homepage": "https://github.com/browserstack/node-appium-app-browserstack#readme",
1919
"dependencies": {
2020
"browserstack-local": "^1.0.2",
21-
"wd": "^1.13.0"
21+
"wd": "^1.13.0",
22+
"chai": "^4.2.0",
23+
"chai-as-promised": "7.1.1"
2224
},
2325
"engines": {
2426
"node": "^6"

0 commit comments

Comments
 (0)