eyes_core 4.1.0 → 4.1.3

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: e93c92ea7bf2188c0733a85b8d5e10358656e8b16d607769949d21c12a4259a7
4
- data.tar.gz: fc73b7253f9af9761ce5e9337ca171fbbaaf21e239e24c74a390c32fcf5771be
3
+ metadata.gz: 6a34e17a6c2a870dd6787bae9f86c1afde6da1c4ebc9f15e71f2e39a9b07f1b2
4
+ data.tar.gz: 0b252b84c448e4154b5ea556c273271469176476ea485f568faf2bf0b3b48d9f
5
5
  SHA512:
6
- metadata.gz: 433ba797f4415fe082c8b2676d0e24c1bca578031aa545f84c2caa748a8d82ee97505d0fa514f7080a6c6243dfea437df78fa514e2349944b9b2d4cc657f7968
7
- data.tar.gz: b4a60fc90fbae0e9c032c4cfc9584aa87d81ae1e0e530c98d7370018847dc50d725f2dc9cf0797ffdcd314a8611f8ae8d2c6c5d8e653de92870cb588b603d1b3
6
+ metadata.gz: 04ddbfeb56a144a0a33a757c07c87fc09542d12901bf141c926b6d3be8d7bfd10124dbedac82b74f473b2ecac25d2bec9d81d899c9f3006383a41fb27f50138c
7
+ data.tar.gz: a83145de613b7681683f92d5dcbb290ab6796fe43fe46f929988f08fb16963e9907bd8c289bde4ec0ca9fa30b5f8d6283967919dd44293c24a6867688d0c5f4f
@@ -23,5 +23,15 @@ module Applitools
23
23
 
24
24
  ZERO_PADDING = PaddingBounds.new(0, 0, 0, 0).freeze
25
25
  PIXEL_PADDING = PaddingBounds.new(1, 1, 1, 1).freeze
26
+
27
+ def to_hash
28
+ {
29
+ left: padding_left,
30
+ top: padding_top,
31
+ right: padding_right,
32
+ bottom: padding_bottom
33
+ }
34
+ end
35
+
26
36
  end
27
37
  end
@@ -15,7 +15,8 @@ module Applitools
15
15
  # renderId?: string
16
16
  # variationGroupId?: string
17
17
  # timeout?: number
18
- # waitBeforeCapture?: number
18
+ # waitBeforeCapture?: number,
19
+ # lazyLoad?: boolean | LazyLoadOptions
19
20
  # }
20
21
  json_fields :name,
21
22
  :disableBrowserFetching,
@@ -26,7 +27,8 @@ module Applitools
26
27
  :renderId,
27
28
  :variationGroupId,
28
29
  :timeout,
29
- :waitBeforeCapture
30
+ :waitBeforeCapture,
31
+ :lazyLoad
30
32
 
31
33
  # export type MatchSettings<TRegion> = {
32
34
  # exact?: {
@@ -144,6 +146,7 @@ module Applitools
144
146
  self.timeout = target.options[:timeout]
145
147
  self.variation_group_id = target.options[:variation_group_id]
146
148
  self.wait_before_capture = target.options[:wait_before_capture]
149
+ self.lazy_load = target.options[:lazy_load]
147
150
  self.page_id = target.options[:page_id]
148
151
 
149
152
  self.scroll_root_element = target.options[:scroll_root_element] || eyes.scroll_root_element
@@ -234,10 +234,54 @@ module Applitools::Connectivity
234
234
  end
235
235
  end
236
236
 
237
+ def get_command_result(name, key)
238
+ web_socket_result = receive_result(name)
239
+ results = convert_web_socket_result(web_socket_result)
240
+
241
+ this_key_responses, other_responses = results.partition {|h| h['name'] === name && h['key'] === key}
242
+ process_other_responses other_responses
243
+
244
+ if this_key_responses.empty?
245
+ get_command_result(name, key)
246
+ elsif this_key_responses.size === 1
247
+ convert_responses(this_key_responses)
248
+ else # size > 1
249
+ raise Applitools::EyesError.new "Result mismatch : #{name} #{key} (#{this_key_responses})"
250
+ end
251
+ end
252
+
253
+ def convert_web_socket_result(web_socket_result)
254
+ encoded_frame = WebSocket::Frame::Incoming::Client.new(version: @handshake_version)
255
+ encoded_frame << web_socket_result
256
+ decoded_frames = []
257
+ until (decoded_frame = encoded_frame.next).nil?
258
+ decoded_frames.push(decoded_frame)
259
+ end
260
+ decoded_frames.map {|frame| JSON.parse(frame.to_s)}
261
+ end
262
+
263
+ def process_other_responses(other_responses)
264
+ other_responses.each do |incoming_json|
265
+ if incoming_json['name'] === 'Server.log'
266
+ if ENV['APPLITOOLS_SHOW_UNIVERSAL_LOGS']
267
+ Applitools::EyesLogger.logger.debug "[Server.log] #{incoming_json['payload']['message']}"
268
+ end
269
+ else
270
+ Applitools::EyesLogger.logger.info "[Server.info] #{incoming_json}"
271
+ end
272
+ end
273
+ end
274
+
275
+ def convert_responses(one_response_array)
276
+ incoming_json = one_response_array.first
277
+ incoming_payload = incoming_json['payload']
278
+ result = incoming_payload.key?('error') ? incoming_payload['error'] : incoming_payload['result']
279
+ Applitools::Utils.deep_symbolize_keys result
280
+ end
281
+
237
282
  def command_with_result name, payload, key = SecureRandom.uuid
238
283
  command(name, payload, key)
239
- web_socket_result = receive_result(name)
240
- format_result(name, key, web_socket_result)
284
+ get_command_result(name, key)
241
285
  end
242
286
 
243
287
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: false
2
2
 
3
3
  module Applitools
4
- VERSION = '4.1.0'.freeze
5
- UNIVERSAL_VERSION = '2.7.2'.freeze
4
+ VERSION = '4.1.3'.freeze
5
+ UNIVERSAL_VERSION = '2.10.3'.freeze
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eyes_core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 4.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Applitools Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-06-16 00:00:00.000000000 Z
11
+ date: 2022-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 2.7.2
117
+ version: 2.10.3
118
118
  type: :runtime
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 2.7.2
124
+ version: 2.10.3
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: bundler
127
127
  requirement: !ruby/object:Gem::Requirement