eyes_core 4.1.0 → 4.1.3

Sign up to get free protection for your applications and to get access to all the features.
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