watir_pump 0.3.7 → 0.3.8

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
  SHA1:
3
- metadata.gz: 6ec31a031d8aedd7d62a03f29e2e3b7926efdc68
4
- data.tar.gz: 7089d63c641acb31767e957abb5854247d92aba6
3
+ metadata.gz: ee18bfe88d1c960ab0eea77c154a0c8cd5bdbf0f
4
+ data.tar.gz: 6148984fde63b139d4065b5910f370e2d94e59f1
5
5
  SHA512:
6
- metadata.gz: c9c9372a6656ff88907f40f71346d232f378cce8f7324f072d17ba1085fd4efc603d2d1132815d629cc7fd327102d7bd4b58892f842c3397cae8df5ff817641b
7
- data.tar.gz: 1ef6400e082d0c038cbfa5ad4606a5078ff2cc376840764d86ec03f32a8048f3824a84eb047cbec9226ee320645164d5b71495117055a70dfe278494e2672277
6
+ metadata.gz: 4943fcbb68cb2c31ab71b7e63d75a189506c31a53abee9e5b79e13e4b083016213445286dc13b75a7d96a2ffa77fc747c6aa7f372d5dbba0e3b92d7f7595bc28
7
+ data.tar.gz: f09295a0103d7945940020727d626d2b83dff890117dc4d3f30159186a27e7385cfc8748263254f11982850d5a9639b534ace827328e275b87ec83730e4db45b
@@ -3,6 +3,7 @@
3
3
  require 'set'
4
4
  require 'forwardable'
5
5
 
6
+ require_relative 'errors/element_mismatch'
6
7
  require_relative 'component_collection'
7
8
  require_relative 'decorated_element'
8
9
  require_relative 'constants'
@@ -131,7 +132,10 @@ module WatirPump
131
132
  define_method(name) do |*args|
132
133
  ret = instance_exec(*args, &p)
133
134
  unless ret.is_a?(Watir::Element)
134
- raise 'element method did not return a Watir::Element'
135
+ raise Errors::ElementMismatch.new(
136
+ expected: Watir::Element,
137
+ actual: ret.class
138
+ )
135
139
  end
136
140
  ret
137
141
  end
@@ -141,7 +145,10 @@ module WatirPump
141
145
  define_method(name) do |*args|
142
146
  ret = instance_exec(*args, &p)
143
147
  unless ret.is_a?(Watir::ElementCollection)
144
- raise 'elements method did not return a Watir::ElementCollection'
148
+ raise Errors::ElementMismatch.new(
149
+ expected: Watir::ElementCollection,
150
+ actual: ret.class
151
+ )
145
152
  end
146
153
  ret
147
154
  end
@@ -158,6 +165,12 @@ module WatirPump
158
165
  watir_method_args: loc_args,
159
166
  code: loc_method,
160
167
  code_args: args)
168
+ unless node.is_a?(Watir::Element) || node.nil?
169
+ raise Errors::ElementMismatch.new(
170
+ expected: Watir::Element,
171
+ actual: node.class
172
+ )
173
+ end
161
174
  klass.new(browser, self, node)
162
175
  end
163
176
  end
@@ -168,6 +181,12 @@ module WatirPump
168
181
  watir_method_args: loc_args,
169
182
  code: loc_method,
170
183
  code_args: args)
184
+ unless nodes.is_a?(Watir::ElementCollection)
185
+ raise Errors::ElementMismatch.new(
186
+ expected: Watir::ElementCollection,
187
+ actual: nodes.class
188
+ )
189
+ end
171
190
  ComponentCollection.new(nodes.map { |n| klass.new(browser, self, n) })
172
191
  end
173
192
  end
@@ -273,7 +292,10 @@ module WatirPump
273
292
  def check_watir_method_mapping(watir_method, evaluated)
274
293
  return evaluated unless watir_method.is_a?(Symbol)
275
294
  return evaluated if evaluated.class == WATIR_METHOD_MAPPING[watir_method]
276
- raise "#{evaluated.class} class does not match expected: #{watir_method}"
295
+ raise Errors::ElementMismatch.new(
296
+ expected: WATIR_METHOD_MAPPING[watir_method],
297
+ actual: evaluated.class
298
+ )
277
299
  end
278
300
 
279
301
  def method_missing(name, *args, &blk)
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module WatirPump
4
+ module Errors
5
+ class ElementMismatch < StandardError
6
+ def initialize(expected:, actual:, msg: nil)
7
+ msg ||= "Element type mismatch. Expected: #{expected}, actual: #{actual}" # rubocop:disable Metrics/LineLength
8
+ super(msg)
9
+ end
10
+ end
11
+ end
12
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watir_pump
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.3.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bartek Wilczek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-25 00:00:00.000000000 Z
11
+ date: 2018-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -142,6 +142,7 @@ files:
142
142
  - lib/watir_pump/components/radio_group.rb
143
143
  - lib/watir_pump/constants.rb
144
144
  - lib/watir_pump/decorated_element.rb
145
+ - lib/watir_pump/errors/element_mismatch.rb
145
146
  - lib/watir_pump/page.rb
146
147
  - lib/watir_pump/watir_method_mapping.rb
147
148
  homepage: https://github.com/bwilczek/watir_pump
@@ -164,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
165
  version: '0'
165
166
  requirements: []
166
167
  rubyforge_project:
167
- rubygems_version: 2.6.13
168
+ rubygems_version: 2.6.14.1
168
169
  signing_key:
169
170
  specification_version: 4
170
171
  summary: Page Object pattern for Watir. Hacker friendly and enterprise ready.