Skip to content

Commit 08cc82c

Browse files
authoredFeb 13, 2024
Merge pull request #27 from LambdaTest/stage
Release v1.0.4
2 parents 1af7399 + 86e0eb5 commit 08cc82c

21 files changed

+5357
-292
lines changed
 

‎README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
# lambdatest-sdk
1+
# lambdatest-js-sdk

‎packages/playwright/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# @lambdatest/playwright-driver

‎packages/playwright/package.json

+16-12
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,33 @@
11
{
22
"name": "@lambdatest/playwright-driver",
3-
"version": "1.0.3",
4-
"description": "Playwright SDK for smart UI",
3+
"version": "1.0.4",
4+
"description": "Playwright driver for all Lambdatest functionalities",
55
"main": "index.js",
6-
"scripts": {
7-
"test": "echo \"Error: no test specified\" && exit 1"
8-
},
96
"repository": {
107
"type": "git",
118
"url": "git+https://github.com/LambdaTest/lambdatest-js-sdk.git",
129
"directory": "packages/playwright"
1310
},
11+
"bugs": {
12+
"url": "https://github.com/LambdaTest/lambdatest-js-sdk/issues"
13+
},
14+
"homepage": "https://github.com/LambdaTest/lambdatest-js-sdk/packages/playwright#readme",
15+
"scripts": {
16+
"test": "echo \"Error: no test specified\" && exit 1"
17+
},
1418
"keywords": [
1519
"lambdatest",
16-
"playwright",
17-
"smartui"
20+
"playwright"
1821
],
1922
"author": "LambdaTest <keys@lambdatest.com>",
2023
"license": "MIT",
21-
"bugs": {
22-
"url": "https://github.com/LambdaTest/lambdatest-js-sdk/issues"
23-
},
24-
"homepage": "https://github.com/LambdaTest/lambdatest-js-sdk#readme",
2524
"dependencies": {
2625
"@lambdatest/sdk-utils": "workspace:^"
26+
},
27+
"peerDependencies": {
28+
"playwright-core": ">=1"
29+
},
30+
"devDependencies": {
31+
"playwright-core": ">=1"
2732
}
2833
}
29-

‎packages/playwright/src/smartui.js

+26-32
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,36 @@
11
const utils = require('@lambdatest/sdk-utils');
22
const pkgName = require('../package.json').name;
3+
const testType = 'js-playwright-driver';
34

4-
// Take a DOM snapshot and post it to the snapshot endpoint
5-
async function smartuiSnapshot(page, name, options) {
6-
if (!page) throw new Error('A Playwright `page` object is required.');
7-
if (!name || typeof name !== 'string') throw new Error('The `name` argument is required.');
8-
if (!(await utils.isSmartUIRunning())) throw new Error('Cannot find SmartUI server.');
5+
async function smartuiSnapshot(page, name, options = {}) {
6+
if (!page) throw new Error('A Playwright `page` object is required.');
7+
if (!name || typeof name !== 'string') throw new Error('The `name` argument is required.');
8+
if (!(await utils.isSmartUIRunning())) throw new Error('Cannot find SmartUI server.');
99

10-
let log = utils.logger(pkgName);
10+
let log = utils.logger(pkgName);
11+
try {
12+
const resp = await utils.fetchDOMSerializer();
13+
await page.evaluate(resp.body.data.dom);
1114

12-
try {
13-
// Inject the DOM serialization script
14-
const resp = await utils.fetchDOMSerializer();
15-
await page.evaluate(resp.body.data.dom);
16-
17-
// Serialize and capture the DOM
18-
/* istanbul ignore next: no instrumenting injected code */
19-
let { dom } = await page.evaluate((options) => ({
20-
/* eslint-disable-next-line no-undef */
21-
dom: SmartUIDOM.serialize(options)
22-
}), {});
15+
let { dom } = await page.evaluate((options) => ({
16+
dom: SmartUIDOM.serialize(options)
17+
}), {});
2318

24-
// Post the DOM to the snapshot endpoint with snapshot options and other info
25-
let { body } = await utils.postSnapshot({
26-
dom,
27-
url: page.url(),
28-
name,
29-
options
30-
}, pkgName);
19+
let { body } = await utils.postSnapshot({
20+
dom,
21+
url: page.url(),
22+
name,
23+
options
24+
}, testType);
25+
if (body && body.data && body.data.warnings?.length !== 0) body.data.warnings.map(e => log.warn(e));
3126

32-
log.info(`Snapshot captured: ${name}`);
33-
34-
if (body && body.data && body.data.warnings?.length !== 0) body.data.warnings.map(e => log.warn(e));
35-
} catch (err) {
36-
throw err;
37-
}
27+
log.info(`Snapshot captured: ${name}`);
28+
} catch (error) {
29+
log.error(`SmartUI snapshot failed "${name}"`);
30+
log.error(error);
31+
}
3832
}
3933

4034
module.exports = {
41-
smartuiSnapshot
42-
}
35+
smartuiSnapshot
36+
}

‎packages/puppeteer/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# @lambdatest/puppeteer-driver

‎packages/puppeteer/package.json

+16-11
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,33 @@
11
{
22
"name": "@lambdatest/puppeteer-driver",
3-
"version": "1.0.3",
4-
"description": "Puppeteer SDK for smart UI",
3+
"version": "1.0.4",
4+
"description": "Puppeteer driver for all Lambdatest functionalities",
55
"main": "index.js",
6-
"scripts": {
7-
"test": "echo \"Error: no test specified\" && exit 1"
8-
},
96
"repository": {
107
"type": "git",
118
"url": "git+https://github.com/LambdaTest/lambdatest-js-sdk.git",
129
"directory": "packages/puppeteer"
1310
},
11+
"bugs": {
12+
"url": "https://github.com/LambdaTest/lambdatest-js-sdk/issues"
13+
},
14+
"homepage": "https://github.com/LambdaTest/lambdatest-js-sdk/packages/puppeteer#readme",
15+
"scripts": {
16+
"test": "echo \"Error: no test specified\" && exit 1"
17+
},
1418
"keywords": [
1519
"lambdatest",
16-
"puppeteer",
17-
"smartui"
20+
"puppeteer"
1821
],
1922
"author": "LambdaTest <keys@lambdatest.com>",
2023
"license": "MIT",
21-
"bugs": {
22-
"url": "https://github.com/LambdaTest/lambdatest-js-sdk/issues"
23-
},
24-
"homepage": "https://github.com/LambdaTest/lambdatest-js-sdk#readme",
2524
"dependencies": {
2625
"@lambdatest/sdk-utils": "workspace:^"
26+
},
27+
"devDependencies": {
28+
"puppeteer": ">=1"
29+
},
30+
"peerDependencies": {
31+
"puppeteer": ">=1"
2732
}
2833
}

‎packages/puppeteer/src/smartui.js

+6-18
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,32 @@
11
const utils = require('@lambdatest/sdk-utils');
22
const pkgName = require('../package.json').name;
3-
3+
const testType = 'js-puppeteer-driver';
44

55
async function smartuiSnapshot(page, name, options = {}) {
66
if (!page) throw new Error('puppeteer `page` argument is required.');
77
if (!name || typeof name !== 'string') throw new Error('The `name` argument is required.');
88
if (!(await utils.isSmartUIRunning())) throw new Error('Cannot find SmartUI server.');
99

1010
let log = utils.logger(pkgName);
11-
1211
try {
13-
// Fetch the DOM serializer from the SmartUI server.
1412
let resp = await utils.fetchDOMSerializer();
15-
16-
// Inject the DOM serializer into the page.
1713
await page.evaluate(resp.body.data.dom);
1814

19-
// Serialize the DOM
2015
let { dom, url } = await page.evaluate(options => ({
2116
dom: SmartUIDOM.serialize(options),
2217
url: document.URL
2318
}), {});
2419

25-
26-
// Post it to the SmartUI server.
27-
let { body } = await utils.postSnapshot({
28-
dom,
29-
url,
30-
name,
31-
options
32-
}, pkgName);
20+
let { body } = await utils.postSnapshot({ dom, url, name, options }, testType);
21+
if (body && body.data && body.data.warnings?.length !== 0) body.data.warnings.map(e => log.warn(e));
3322

3423
log.info(`Snapshot captured: ${name}`);
35-
36-
if (body && body.data && body.data.warnings?.length !== 0) body.data.warnings.map(e => log.warn(e));
3724
} catch (error) {
38-
throw new Error(error);
25+
log.error(`SmartUI snapshot failed "${name}"`);
26+
log.error(error);
3927
}
4028
}
4129

4230
module.exports = {
4331
smartuiSnapshot
44-
};
32+
};

‎packages/sdk-utils/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# @lambdatest/sdk-utils

‎packages/sdk-utils/package.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
{
22
"name": "@lambdatest/sdk-utils",
33
"version": "1.0.3",
4-
"description": "",
4+
"description": "LambdaTest driver utils",
55
"main": "index.js",
66
"repository": {
77
"type": "git",
88
"url": "git+https://github.com/LambdaTest/lambdatest-js-sdk",
99
"directory": "packages/sdk-utils"
1010
},
11+
"bugs": {
12+
"url": "https://github.com/LambdaTest/lambdatest-js-sdk/issues"
13+
},
14+
"homepage": "https://github.com/LambdaTest/lambdatest-js-sdk/packages/sdk-utils#readme",
1115
"scripts": {
1216
"test": "echo \"Error: no test specified\" && exit 1"
1317
},

‎packages/selenium/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# @lambdatest/selenium-driver
File renamed without changes.

‎packages/selenium-driver/package.json ‎packages/selenium/package.json

+12-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
{
22
"name": "@lambdatest/selenium-driver",
3-
"version": "1.0.3",
3+
"version": "1.0.4",
44
"description": "Selenium driver for all Lambdatest functionalities",
55
"main": "index.js",
66
"repository": {
77
"type": "git",
88
"url": "git+https://github.com/LambdaTest/lambdatest-js-sdk",
9-
"directory": "packages/selenium-driver"
9+
"directory": "packages/selenium"
1010
},
11+
"bugs": {
12+
"url": "https://github.com/LambdaTest/lambdatest-js-sdk/issues"
13+
},
14+
"homepage": "https://github.com/LambdaTest/lambdatest-js-sdk/packages/selenium#readme",
1115
"scripts": {
1216
"test": "echo \"Error: no test specified\" && exit 1"
1317
},
@@ -19,5 +23,11 @@
1923
"license": "MIT",
2024
"dependencies": {
2125
"@lambdatest/sdk-utils": "workspace:^"
26+
},
27+
"devDependencies": {
28+
"selenium-webdriver": ">=4"
29+
},
30+
"peerDependencies": {
31+
"selenium-webdriver": ">=4"
2232
}
2333
}

‎packages/selenium-driver/src/smartui.js ‎packages/selenium/src/smartui.js

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
const utils = require('@lambdatest/sdk-utils');
22
const pkgName = require('../package.json').name;
3+
const testType = 'js-selenium-driver';
34

45
async function smartuiSnapshot(driver, name, options = {}) {
5-
// TODO: check if driver is selenium webdriver object
66
if (!driver) throw new Error('An instance of the selenium driver object is required.');
77
if (!name || typeof name !== 'string') throw new Error('The `name` argument is required.');
88
if (!(await utils.isSmartUIRunning())) throw new Error('Cannot find SmartUI server.');
9-
let log = utils.logger(pkgName);
109

10+
let log = utils.logger(pkgName);
1111
try {
1212
let resp = await utils.fetchDOMSerializer();
1313
await driver.executeScript(resp.body.data.dom);
@@ -18,10 +18,12 @@ async function smartuiSnapshot(driver, name, options = {}) {
1818
}), {});
1919

2020
let { body } = await utils.postSnapshot({url, name, dom, options}, pkgName);
21-
log.info(`Snapshot captured: ${name}`);
2221
if (body && body.data && body.data.warnings?.length !== 0) body.data.warnings.map(e => log.warn(e));
22+
23+
log.info(`Snapshot captured: ${name}`);
2324
} catch (error) {
24-
throw new Error(error);
25+
log.error(`SmartUI snapshot failed "${name}"`);
26+
log.error(error);
2527
}
2628
}
2729

‎packages/testcafe/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# @lambdatest/testcafe-driver

‎packages/testcafe/package.json

+13-8
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,33 @@
11
{
22
"name": "@lambdatest/testcafe-driver",
3-
"version": "1.0.3",
3+
"version": "1.0.4",
44
"description": "Testcafe SDK for LambdaTest smart UI",
5+
"main": "index.js",
56
"repository": {
67
"type": "git",
78
"url": "git+https://github.com/LambdaTest/lambdatest-js-sdk.git",
89
"directory": "packages/testcafe"
910
},
10-
"main": "index.js",
11+
"bugs": {
12+
"url": "https://github.com/LambdaTest/lambdatest-js-sdk/issues"
13+
},
14+
"homepage": "https://github.com/LambdaTest/lambdatest-js-sdk/packages/testcafe#readme",
1115
"scripts": {
1216
"test": "echo \"Error: no test specified\" && exit 1"
1317
},
1418
"keywords": [
1519
"lambdatest",
16-
"testcafe",
17-
"smartui"
20+
"testcafe"
1821
],
1922
"author": "LambdaTest <keys@lambdatest.com>",
2023
"license": "MIT",
21-
"bugs": {
22-
"url": "https://github.com/LambdaTest/lambdatest-js-sdk/issues"
23-
},
24-
"homepage": "https://github.com/LambdaTest/lambdatest-js-sdk#readme",
2524
"dependencies": {
2625
"@lambdatest/sdk-utils": "workspace:^"
26+
},
27+
"devDependencies": {
28+
"testcafe": ">=1"
29+
},
30+
"peerDependencies": {
31+
"testcafe": ">=1"
2732
}
2833
}

0 commit comments

Comments
 (0)
Failed to load comments.