@applitools/core 4.29.1 → 4.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [4.30.0](https://github.com/Applitools-Dev/sdk/compare/js/core@4.29.1...js/core@4.30.0) (2025-01-22)
4
+
5
+
6
+ ### Features
7
+
8
+ * regions and coded regions with android NML ([#2735](https://github.com/Applitools-Dev/sdk/issues/2735)) ([be0f670](https://github.com/Applitools-Dev/sdk/commit/be0f6707336e1308423079f4895e6df044c9ebcd))
9
+
3
10
  ## [4.29.1](https://github.com/Applitools-Dev/sdk/compare/js/core@4.29.0...js/core@4.29.1) (2025-01-19)
4
11
 
5
12
 
@@ -36,13 +36,16 @@ function hasCodedRegions(settings) {
36
36
  exports.hasCodedRegions = hasCodedRegions;
37
37
  async function extractMobileElementsIntoCheckSettings({ settings, driver, logger, }) {
38
38
  logger = logger.extend({ tags: [`extract-mobile-elements-${utils.general.shortid()}`] });
39
+ const environment = await driver.getEnvironment();
39
40
  if (settings.region) {
40
41
  logger.log('extract element form region', settings.region);
41
42
  const region = await driver.element(settings.region).catch(error => logger.log(error));
42
43
  if (!region) {
43
44
  throw new Error('region not found');
44
45
  }
45
- settings.region = await (region === null || region === void 0 ? void 0 : region.getAttribute('name'));
46
+ settings.region = environment.isAndroid
47
+ ? await (region === null || region === void 0 ? void 0 : region.getAttribute('content-desc'))
48
+ : await (region === null || region === void 0 ? void 0 : region.getAttribute('name'));
46
49
  }
47
50
  if (settings.scrollRootElement) {
48
51
  logger.log('extract element form scrollRootElement', settings.scrollRootElement);
@@ -50,7 +53,9 @@ async function extractMobileElementsIntoCheckSettings({ settings, driver, logger
50
53
  if (!scrollRootElement) {
51
54
  throw new Error('scrollRootElement not found');
52
55
  }
53
- settings.scrollRootElement = await scrollRootElement.getAttribute('name');
56
+ settings.scrollRootElement = environment.isAndroid
57
+ ? await (scrollRootElement === null || scrollRootElement === void 0 ? void 0 : scrollRootElement.getAttribute('content-desc'))
58
+ : await (scrollRootElement === null || scrollRootElement === void 0 ? void 0 : scrollRootElement.getAttribute('name'));
54
59
  }
55
60
  const codedRegionsAsElement = await regionTypes.reduce(async (promise, regionType) => {
56
61
  var _a, _b;
@@ -66,7 +71,9 @@ async function extractMobileElementsIntoCheckSettings({ settings, driver, logger
66
71
  return []; // elements not found
67
72
  return elements === null || elements === void 0 ? void 0 : elements.reduce(async (promise, element) => {
68
73
  const arr = await promise;
69
- const name = await element.getAttribute('name');
74
+ const name = environment.isAndroid
75
+ ? await element.getAttribute('content-desc')
76
+ : await element.getAttribute('name');
70
77
  if (handleRegion.has(name))
71
78
  return arr;
72
79
  handleRegion.add(name);
@@ -312,8 +312,11 @@ async function takeNMLScreenshot({ driver, settings, environments, logger, eyes,
312
312
  settings: { ...eyes.test.eyesServer, supportedEnvironmentsUrl: eyes.test.supportedEnvironmentsUrl },
313
313
  logger,
314
314
  });
315
- if (settings.scrollRootElement || settings.region || (0, to_base_check_settings_1.hasCodedRegions)(settings))
315
+ if (settings.scrollRootElement || settings.region || (0, to_base_check_settings_1.hasCodedRegions)(settings)) {
316
+ //TODO we can skip `preTakeScreenshot` if the element/s already have the attribute `content-desc` (for android)
317
+ // and send it to `takeScreenshot` right away (possibly with `name` attribute for ios as well)
316
318
  await nmlClient.preTakeScreenshot({ logger });
319
+ }
317
320
  const { elementReferences, getBaseCheckSettings } = (0, to_base_check_settings_1.toBaseCheckSettings)({
318
321
  settings: {
319
322
  ...settings,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@applitools/core",
3
- "version": "4.29.1",
3
+ "version": "4.30.0",
4
4
  "homepage": "https://applitools.com",
5
5
  "bugs": {
6
6
  "url": "https://github.com/applitools/eyes.sdk.javascript1/issues"