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 +4 -4
- data/lib/watir_pump/component.rb +25 -3
- data/lib/watir_pump/errors/element_mismatch.rb +12 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ee18bfe88d1c960ab0eea77c154a0c8cd5bdbf0f
|
4
|
+
data.tar.gz: 6148984fde63b139d4065b5910f370e2d94e59f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4943fcbb68cb2c31ab71b7e63d75a189506c31a53abee9e5b79e13e4b083016213445286dc13b75a7d96a2ffa77fc747c6aa7f372d5dbba0e3b92d7f7595bc28
|
7
|
+
data.tar.gz: f09295a0103d7945940020727d626d2b83dff890117dc4d3f30159186a27e7385cfc8748263254f11982850d5a9639b534ace827328e275b87ec83730e4db45b
|
data/lib/watir_pump/component.rb
CHANGED
@@ -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
|
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
|
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
|
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.
|
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-
|
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.
|
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.
|