Skip to content

Commit 08b32bd

Browse files
authored
Merge pull request #19 from pinanks/DOT-2299
Release v1.0.2
2 parents 11a31cb + a8c2815 commit 08b32bd

File tree

11 files changed

+87
-67
lines changed

11 files changed

+87
-67
lines changed

packages/sdk-utils/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { isSmartUIRunning, fetchDOMSerializer, postSnapshot } from './src/smartui.js'
2-
import logger from './src/lib/logger.js'
1+
const { isSmartUIRunning, fetchDOMSerializer, postSnapshot } = require('./src/smartui');
2+
const logger = require('./src/lib/logger');
33

4-
export default {
4+
module.exports = {
55
logger,
66
fetchDOMSerializer,
77
postSnapshot,

packages/sdk-utils/package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
{
22
"name": "@lambdatest/sdk-utils",
3-
"version": "1.0.1",
3+
"version": "1.0.2",
44
"description": "",
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-
"type": "module",
1211
"scripts": {
1312
"test": "echo \"Error: no test specified\" && exit 1"
1413
},
@@ -19,7 +18,7 @@
1918
"license": "MIT",
2019
"dependencies": {
2120
"axios": "^1.6.2",
22-
"chalk": "^5.3.0",
21+
"chalk": "4",
2322
"winston": "^3.11.0"
2423
}
2524
}

packages/sdk-utils/src/lib/httpClient.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import axios from 'axios'
2-
import utils from './utils.js'
1+
const axios = require('axios');
2+
const utils = require('./utils');
33

4-
class httpClient {
4+
module.exports = new class httpClient {
55
async request(config) {
66
return axios.request(config)
77
.then(resp => {
@@ -14,7 +14,7 @@ class httpClient {
1414
})
1515
.catch(error => {
1616
if (error.response) {
17-
throw new Error(JSON.stringify(error.response.data));
17+
throw new Error(error.response.data.error.message);
1818
}
1919
if (error.request) {
2020
throw new Error(error.toJSON().message);
@@ -47,6 +47,4 @@ class httpClient {
4747
}
4848
})
4949
}
50-
}
51-
52-
export default new httpClient();
50+
};

packages/sdk-utils/src/lib/logger.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import { createLogger, transports, format, config } from 'winston'
2-
import chalk from 'chalk'
1+
const { createLogger, transports, format } = require('winston');
2+
const chalk = require('chalk');
33

44
const logLevel = () => {
55
let debug = (process.env.LT_SDK_DEBUG === 'true') ? 'debug' : undefined;
66
return debug || process.env.LT_SDK_LOG_LEVEL || 'info'
77
}
88

9-
export default (logContext) => {
9+
module.exports = function logger(logContext) {
1010
return createLogger({
1111
level: logLevel(),
1212
format: format.combine(
@@ -20,10 +20,10 @@ export default (logContext) => {
2020
message = chalk.blue(message);
2121
break;
2222
case 'warn':
23-
message = chalk.yellow(message);
23+
message = chalk.yellow(`Warning: ${message}`);
2424
break;
2525
case 'error':
26-
message = chalk.red(message);
26+
message = chalk.red(`Error: ${message}`);
2727
break;
2828
}
2929
return `[${logContext}] ${message}`;

packages/sdk-utils/src/lib/utils.js

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,7 @@
1-
import fs from 'fs';
2-
import { fileURLToPath } from 'url';
3-
import { dirname, join } from 'path';
4-
5-
export function getSmartUIServerAddress() {
1+
function getSmartUIServerAddress() {
62
return process.env.SMARTUI_SERVER_ADDRESS || 'http://localhost:8080'
73
}
84

9-
export function getPackageName() {
10-
return JSON.parse(fs.readFileSync(join(dirname(fileURLToPath(import.meta.url)), '../../package.json'), 'utf-8')).name
11-
}
12-
13-
export * as default from './utils.js';
5+
module.exports = {
6+
getSmartUIServerAddress
7+
};

packages/sdk-utils/src/smartui.js

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import client from './lib/httpClient.js'
2-
import logger from './lib/logger.js'
3-
import utils from './lib/utils.js'
4-
const log = logger(utils.getPackageName())
1+
const client = require('./lib/httpClient');
2+
const logger = require('./lib/logger');
3+
const utils = require('./lib/utils');
4+
const log = logger(require('../package.json').name);
55

6-
export async function isSmartUIRunning() {
6+
async function isSmartUIRunning() {
77
try {
88
await client.isSmartUIRunning();
99
return true;
@@ -13,28 +13,31 @@ export async function isSmartUIRunning() {
1313
}
1414
}
1515

16-
export async function fetchDOMSerializer() {
16+
async function fetchDOMSerializer() {
1717
try {
1818
return await client.fetchDOMSerializer();
1919
} catch (error) {
2020
log.debug(error);
21-
throw new Error(`fetch DOMSerializer failed`);
21+
throw new Error(`fetch DOMSerializer failed; ${error.message}`);
2222
}
2323
}
2424

25-
export async function postSnapshot(snapshotDOM, snapshotName, testType) {
25+
async function postSnapshot(snapshot, testType) {
2626
const data = JSON.stringify({
27-
snapshot: {
28-
dom: snapshotDOM,
29-
name: snapshotName
30-
},
27+
snapshot,
3128
testType
3229
});
3330

3431
try {
3532
return await client.postSnapshot(data);
3633
} catch (error) {
3734
log.debug(error);
38-
throw new Error(`post snapshot failed`);
35+
throw new Error(`post snapshot failed; ${error.message}`);
3936
}
4037
}
38+
39+
module.exports = {
40+
isSmartUIRunning,
41+
fetchDOMSerializer,
42+
postSnapshot
43+
}

packages/selenium-driver/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { smartuiSnapshot } from './src/smartui.js';
1+
const { smartuiSnapshot } = require('./src/smartui');
22

3-
export {
3+
module.exports = {
44
smartuiSnapshot
5-
};
5+
}

packages/selenium-driver/package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@lambdatest/selenium-driver",
3-
"version": "1.0.1",
3+
"version": "1.0.2",
44
"description": "Selenium driver for all Lambdatest functionalities",
55
"main": "index.js",
66
"repository": {
@@ -11,7 +11,6 @@
1111
"scripts": {
1212
"test": "echo \"Error: no test specified\" && exit 1"
1313
},
14-
"type": "module",
1514
"keywords": [
1615
"lambdatest",
1716
"selenium"
Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,30 @@
1-
import utils from '@lambdatest/sdk-utils'
2-
import { getPackageName } from './utils.js';
3-
const pkgName = getPackageName()
1+
const utils = require('@lambdatest/sdk-utils');
2+
const pkgName = require('../package.json').name;
43

5-
export async function smartuiSnapshot(driver, snapshotName) {
4+
async function smartuiSnapshot(driver, name, options = {}) {
65
// TODO: check if driver is selenium webdriver object
76
if (!driver) throw new Error('An instance of the selenium driver object is required.');
8-
if (!snapshotName) throw new Error('The `snapshotName` argument is required.');
7+
if (!name) throw new Error('The `name` argument is required.');
98
if (!(await utils.isSmartUIRunning())) throw new Error('SmartUI server is not running.');
109
let log = utils.logger(pkgName);
1110

1211
try {
1312
let resp = await utils.fetchDOMSerializer();
1413
await driver.executeScript(resp.body.data.dom);
1514

16-
let { dom } = await driver.executeScript(options => ({
17-
dom: SmartUIDOM.serialize(options)
15+
let { dom, url } = await driver.executeScript(options => ({
16+
dom: SmartUIDOM.serialize(options),
17+
url: document.URL
1818
}), {});
1919

20-
await utils.postSnapshot(dom.html, snapshotName, pkgName);
21-
log.info(`Snapshot captured: ${snapshotName}`);
20+
let { body } = await utils.postSnapshot({url, name, dom, options}, pkgName);
21+
log.info(`Snapshot captured: ${name}`);
22+
if (body && body.data && body.data.warnings?.length !== 0) body.data.warnings.map(e => log.warn(e));
2223
} catch (error) {
2324
throw new Error(error);
2425
}
2526
}
27+
28+
module.exports = {
29+
smartuiSnapshot
30+
}

packages/selenium-driver/src/utils.js

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

pnpm-lock.yaml

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

0 commit comments

Comments
 (0)