percy-appium-app 0.0.9.beta1 → 0.0.9.beta.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 47bb435221c28272d50b8e17f6540177bf9c656f128bcfb51f3e5468bf89772d
4
- data.tar.gz: 5ea3c75e8ea54331a06729fd253219fa40acbabf3936929b0465b77ca10b6c84
3
+ metadata.gz: c6f74600a42302bf5300a766e19c17ebdd04b7458ce55f8685acf7f674f96e43
4
+ data.tar.gz: 9b4442060ca02d391eb2ee5863989f0736dabe38e58fa0d4b83e43c51af042e7
5
5
  SHA512:
6
- metadata.gz: c73191b25d04b044662995228926349eb37838cb03edd9a3f25c72afc6898872dde22b2b01a87f54f4d7b9277873e2784e8874766c40ae947b4e5690f5fc2118
7
- data.tar.gz: b3b16e11cb7c83f5845d92e1773d71d140b4a0b4ccc5c905cbdab11a52beeb96b1d40762e02a0ba8ace7ce25cb45c112711226d0db08b9eef8824bfbaa21cc6e
6
+ metadata.gz: 25b974f6c6de47ec6ecf38547296cbc280ca85a24b356b907fce4db8d416588197d786fddd38df5ec2297e26b28a42eb0aebaed6c6a8591f379f3f9c5d84fe71
7
+ data.tar.gz: 40e6e18819248f11358abd3aa2b0047cfda9062a9519858aad2eeb7a36d92809763bc46f6f68bf0f2dd830b9c33c36bbca2cd0e59aeba10483dbc46713e85e0e
@@ -27,8 +27,7 @@ jobs:
27
27
 
28
28
  container:
29
29
  # A Docker image with Semgrep installed. Do not change this.
30
- image: returntocorp/semgrep
31
-
30
+ image: returntocorp/semgrep:1.166.0
32
31
  # Skip any PR created by dependabot to avoid permission issues:
33
32
  if: (github.actor != 'dependabot[bot]')
34
33
 
@@ -15,12 +15,15 @@ module Percy
15
15
  def device_screen_size
16
16
  caps = capabilities
17
17
  caps = caps.as_json unless caps.is_a?(Hash)
18
+ # Use string keys to match the IosMetadata implementation and every
19
+ # consumer (generic_provider, app_automate, _get_tag), all of which read
20
+ # device_screen_size['width'] / ['height'].
18
21
  if caps['deviceScreenSize'].nil?
19
22
  size = driver.window_size
20
- { width: size.width.to_i, height: size.height.to_i }
23
+ { 'width' => size.width.to_i, 'height' => size.height.to_i }
21
24
  else
22
25
  width, height = caps['deviceScreenSize'].split('x')
23
- { width: width.to_i, height: height.to_i }
26
+ { 'width' => width.to_i, 'height' => height.to_i }
24
27
  end
25
28
  end
26
29
 
@@ -137,7 +137,10 @@ module Percy
137
137
 
138
138
  def get_regions_by_xpath(elements_array, xpaths)
139
139
  xpaths.each do |xpath|
140
- element = driver.find_element(Appium::Core::Base::SearchContext::FINDERS[:xpath], xpath)
140
+ # Pass the :xpath finder symbol directly. appium_lib_core 12.x removed
141
+ # Appium::Core::Base::SearchContext::FINDERS; the symbol form works
142
+ # across all supported appium_lib versions.
143
+ element = driver.find_element(:xpath, xpath)
141
144
  selector = "xpath: #{xpath}"
142
145
  if element
143
146
  region = get_region_object(selector, element)
data/percy/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Percy
4
- VERSION = '0.0.9.beta1'.freeze
4
+ VERSION = '0.0.9.beta.2'.freeze
5
5
  end
@@ -46,13 +46,21 @@ class TestAndroidMetadata < Minitest::Test
46
46
 
47
47
  # Call the method and assert the result
48
48
  result = @android_metadata.device_screen_size
49
- assert_equal({ width: 1080, height: 1920 }, result)
49
+ assert_equal({ 'width' => 1080, 'height' => 1920 }, result)
50
50
 
51
51
  # Verify mocks
52
52
  mock_window_size.verify
53
53
  @mock_webdriver.verify
54
54
  end
55
55
 
56
+ def test_device_screen_size_when_device_screen_size_is_present
57
+ # 'deviceScreenSize' => '1080x2280' from get_android_capabilities; parsed into string-keyed hash
58
+ @mock_webdriver.expect(:capabilities, get_android_capabilities)
59
+ result = @android_metadata.device_screen_size
60
+ assert_equal({ 'width' => 1080, 'height' => 2280 }, result)
61
+ @mock_webdriver.verify
62
+ end
63
+
56
64
  def test_get_system_bars
57
65
  system_bars = {
58
66
  'statusBar' => { 'height' => 83 },
@@ -67,9 +67,12 @@ class TestAppAutomate < Minitest::Test
67
67
  end
68
68
 
69
69
  def test_execute_percy_screenshot_end
70
- @app_automate.stub(:execute_percy_screenshot_begin, 'deviceName' => 'abc', 'osVersion' => '123') do
70
+ # Wrap the stub return hashes in explicit braces. Under Ruby 3 keyword
71
+ # argument separation, a bare trailing hash is otherwise parsed as keyword
72
+ # args to Minitest's stub, raising ArgumentError.
73
+ @app_automate.stub(:execute_percy_screenshot_begin, { 'deviceName' => 'abc', 'osVersion' => '123' }) do
71
74
  @app_automate.stub(:execute_percy_screenshot_end, nil) do
72
- @app_automate.stub(:screenshot, 'link' => 'https://link') do
75
+ @app_automate.stub(:screenshot, { 'link' => 'https://link' }) do
73
76
  @app_automate.screenshot('name')
74
77
  end
75
78
  end
@@ -256,7 +256,7 @@ class TestGenericProvider < Minitest::Test
256
256
  end
257
257
 
258
258
  @mock_webdriver.expect(:find_element, mock_element,
259
- [Appium::Core::Base::SearchContext::FINDERS[:xpath], '//path/to/element'])
259
+ [:xpath, '//path/to/element'])
260
260
 
261
261
  elements_array = []
262
262
  xpaths = ['//path/to/element']
@@ -271,7 +271,7 @@ class TestGenericProvider < Minitest::Test
271
271
  end
272
272
 
273
273
  def test_get_regions_by_xpath_with_non_existing_element
274
- @mock_webdriver.expect(:find_element, [Appium::Core::Base::SearchContext::FINDERS[:xpath], '//path/to/element']) do
274
+ @mock_webdriver.expect(:find_element, [:xpath, '//path/to/element']) do
275
275
  raise Appium::Core::Error::NoSuchElementError, 'Test error'
276
276
  end
277
277
  elements_array = []
@@ -309,7 +309,7 @@ class TestGenericProvider < Minitest::Test
309
309
  mock_element.expect(:size, Selenium::WebDriver::Dimension.new(100, 200))
310
310
  end
311
311
 
312
- @mock_webdriver.expect(:find_element, [Appium::Core::Base::SearchContext::FINDERS[:accessibility_id], 'id1']) do
312
+ @mock_webdriver.expect(:find_element, [:accessibility_id, 'id1']) do
313
313
  raise Appium::Core::Error::NoSuchElementError, 'Test error'
314
314
  end
315
315
 
data/specs/screenshot.rb CHANGED
@@ -383,7 +383,7 @@ class TestPercyScreenshot < Minitest::Test
383
383
  })
384
384
  end
385
385
  driver.expect(:find_element, mock_element,
386
- [Appium::Core::Base::SearchContext::FINDERS[:xpath], '//path/to/element'])
386
+ [:xpath, '//path/to/element'])
387
387
 
388
388
  percy_screenshot(driver, 'screenshot 1', ignore_regions_xpaths: xpaths)
389
389
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: percy-appium-app
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9.beta1
4
+ version: 0.0.9.beta.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - BroswerStack
@@ -200,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
200
200
  - !ruby/object:Gem::Version
201
201
  version: '0'
202
202
  requirements: []
203
- rubygems_version: 3.6.7
203
+ rubygems_version: 3.6.9
204
204
  specification_version: 4
205
205
  summary: Percy visual testing for Ruby Appium Mobile Apps
206
206
  test_files: []