From 4ce030c0b1c059e079141d93573021f032632e6a Mon Sep 17 00:00:00 2001 From: Pinank Solanki Date: Mon, 22 Jan 2024 20:44:17 +0530 Subject: [PATCH] Add options argument in smartuiSnapshot --- packages/sdk-utils/src/smartui.js | 7 ++----- packages/selenium-driver/src/smartui.js | 13 +++++++------ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/packages/sdk-utils/src/smartui.js b/packages/sdk-utils/src/smartui.js index 86d2eae..058386f 100644 --- a/packages/sdk-utils/src/smartui.js +++ b/packages/sdk-utils/src/smartui.js @@ -22,12 +22,9 @@ async function fetchDOMSerializer() { } } -async function postSnapshot(snapshotDOM, snapshotName, testType) { +async function postSnapshot(snapshot, testType) { const data = JSON.stringify({ - snapshot: { - dom: snapshotDOM, - name: snapshotName - }, + snapshot, testType }); diff --git a/packages/selenium-driver/src/smartui.js b/packages/selenium-driver/src/smartui.js index 8a6f1f3..d6ffa99 100644 --- a/packages/selenium-driver/src/smartui.js +++ b/packages/selenium-driver/src/smartui.js @@ -1,10 +1,10 @@ const utils = require('@lambdatest/sdk-utils'); const pkgName = require('../package.json').name; -async function smartuiSnapshot(driver, snapshotName) { +async function smartuiSnapshot(driver, name, options = {}) { // TODO: check if driver is selenium webdriver object if (!driver) throw new Error('An instance of the selenium driver object is required.'); - if (!snapshotName) throw new Error('The `snapshotName` argument is required.'); + if (!name) throw new Error('The `name` argument is required.'); if (!(await utils.isSmartUIRunning())) throw new Error('SmartUI server is not running.'); let log = utils.logger(pkgName); @@ -12,12 +12,13 @@ async function smartuiSnapshot(driver, snapshotName) { let resp = await utils.fetchDOMSerializer(); await driver.executeScript(resp.body.data.dom); - let { dom } = await driver.executeScript(options => ({ - dom: SmartUIDOM.serialize(options) + let { dom, url } = await driver.executeScript(options => ({ + dom: SmartUIDOM.serialize(options), + url: document.URL }), {}); - await utils.postSnapshot(dom.html, snapshotName, pkgName); - log.info(`Snapshot captured: ${snapshotName}`); + await utils.postSnapshot({url, name, dom, options}, pkgName); + log.info(`Snapshot captured: ${name}`); } catch (error) { throw new Error(error); }