watir_pump 0.3.7 → 0.3.8

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
  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.