eyes_core 4.1.0.alpha → 4.1.2

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: 1dd946c2bc4beda797d8036429650a915b5e556edc90ddb4e81562b387e89c22
4
- data.tar.gz: c995b0a7ae6479cb2a2a4ecb78e7352ba0cdcf69a1b011e59cfbfc1028874a34
3
+ metadata.gz: 0de07c4333f2eb419422f6701bd0b853777072aa408f59390088f644bc8ccc21
4
+ data.tar.gz: 1f67f9079dde416580f1726473b491fa0094ecb10a0dc2bdb7f4fce6c2fb29a8
5
5
  SHA512:
6
- metadata.gz: 82b42ce49694a6e8d83da4a75699fbe9779e43c5b5df98373d4d2d20b721406dc4ca17d9a5c430d3d9fb536918e10295ff12a2337919b3f985f5798c70ec1216
7
- data.tar.gz: 18a29287d67aca7d1b302c25ad4093c4bf5a1173f7e909cc52e8a56a848a04c1e1ccb85f62fb98be59d39da3d843ffede11fa7a8941e6d2aef3ce2649650ec7c
6
+ metadata.gz: c0b840e04ecb9ba7c933ba861bc20967f854a2efa9549ab8a827b6a12d9de10508dcc1b6e07453da3c6fdb2655d9ab7726037ad4a98595dc2eabe4a622451555
7
+ data.tar.gz: e2ba459ea74622bd29ae5b9142636097c322e1fd319fcf6c1be4add444dc5104292f34b9dc8acec8f5c739c5fa122869c5267f5964f4ed861d64d23ca51937aa
@@ -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.alpha'.freeze
5
- UNIVERSAL_VERSION = '2.7.2'.freeze
4
+ VERSION = '4.1.2'.freeze
5
+ UNIVERSAL_VERSION = '2.9.5'.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.alpha
4
+ version: 4.1.2
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-13 00:00:00.000000000 Z
11
+ date: 2022-07-07 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.9.5
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.9.5
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: bundler
127
127
  requirement: !ruby/object:Gem::Requirement
@@ -420,9 +420,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
420
420
  version: '0'
421
421
  required_rubygems_version: !ruby/object:Gem::Requirement
422
422
  requirements:
423
- - - ">"
423
+ - - ">="
424
424
  - !ruby/object:Gem::Version
425
- version: 1.3.1
425
+ version: '0'
426
426
  requirements: []
427
427
  rubygems_version: 3.3.14
428
428
  signing_key: