capybara_error_intel 1.0.0 → 1.0.1

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: 5862341b63629cf16f8b3339b62789c905b61170
4
- data.tar.gz: b9472f2a9161625dbea7f8596fa49dc074ba8108
3
+ metadata.gz: 81b194d9c5e7129751a873fa127b42a9bdc0a4a7
4
+ data.tar.gz: aa716d7326530d1bb0e7ba5ff46b2f20ec1e6543
5
5
  SHA512:
6
- metadata.gz: 33d204d510b83490e5fff56da2b4018c79fb6f031ff8eedfe6195ec60b995b5a6672f6009a480df95d3497e063795fbe66e2fdfffd0cdc66f7e2a87597f833e8
7
- data.tar.gz: 332f5782bf6eac411f4b6a01ff76159d8e97e0b89ef930809053113a5728a6b8c6a4170bb15a573658c2eb5f6f450b2cfc1a6796f51778a8ce6d5a8eb4aeb715
6
+ metadata.gz: 47c67c1c8c075df865c9f74a74f781240bd3d6a490dac915361210f55a0c4448d043c5699164d298a5d9504d12903054098003549b7274a5ca77d4d9aad279a7
7
+ data.tar.gz: 56645910801df9e620c9fd926fba6d26065fbedc8f426c7385204c4e5db8a7d5b6f45f652110fb5c698195e0ffef2ed922b8c3b20da466ba92bab55767fb875e
data/.codeclimate.yml ADDED
@@ -0,0 +1,16 @@
1
+ ---
2
+ engines:
3
+ duplication:
4
+ enabled: true
5
+ config:
6
+ languages:
7
+ - ruby
8
+ fixme:
9
+ enabled: true
10
+ rubocop:
11
+ enabled: true
12
+ ratings:
13
+ paths:
14
+ - "**.rb"
15
+ exclude_paths:
16
+ - spec/
data/.gitignore CHANGED
@@ -9,3 +9,4 @@
9
9
  /tmp/
10
10
  /vendor/bundle
11
11
  *.gem
12
+ .cadre
data/.rubocop.yml ADDED
@@ -0,0 +1,9 @@
1
+ Metrics/LineLength:
2
+ Max: 999
3
+ Style/PredicateName:
4
+ Enabled: false
5
+ AllCops:
6
+ Exclude:
7
+ - '*.gemspec'
8
+ - 'vendor/**/*'
9
+
data/.travis.yml CHANGED
@@ -3,4 +3,8 @@ language: ruby
3
3
  rvm:
4
4
  - 2.3.1
5
5
  - 2.2.0
6
+ - 2.1.0
6
7
  before_install: gem install bundler -v 1.12.5
8
+ addons:
9
+ code_climate:
10
+ repo_token: d11a38ad79ee8bc4d2972305aeaf999e0de48508813f76ba0ec991842dafc45f
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  ![CapybaraErrorIntel](img/CapybaraErrorIntel.png)
2
2
 
3
- [![Build Status](https://travis-ci.org/dkarter/capybara_error_intel.svg?branch=master)](https://travis-ci.org/dkarter/capybara_error_intel)
3
+ [![Build Status](https://travis-ci.org/dkarter/capybara_error_intel.svg?branch=master)](https://travis-ci.org/dkarter/capybara_error_intel) [![Code Climate](https://codeclimate.com/github/dkarter/capybara_error_intel/badges/gpa.svg)](https://codeclimate.com/github/dkarter/capybara_error_intel) [![Test Coverage](https://codeclimate.com/github/dkarter/capybara_error_intel/badges/coverage.svg)](https://codeclimate.com/github/dkarter/capybara_error_intel/coverage) [![Issue Count](https://codeclimate.com/github/dkarter/capybara_error_intel/badges/issue_count.svg)](https://codeclimate.com/github/dkarter/capybara_error_intel)
4
4
 
5
- Capybara provides excellent error messages for its built in predicate methods: `has_selector?`, `has_text?`, and `has_title?` but when those are used from Page Objects while exposing predicate methods from the PageObjects themselves the error messages are lost and all we get is `expected true, got false`. Including this module into your PageObject by adding `include CapybaraErrorIntel::DSL` after `include Capybara::DSL` will return the heuristic error messages.
5
+ Capybara provides excellent error messages for its built in predicate methods: `has_selector?`, `has_text?`, `has_title?` etc., but when those are used from Page Objects while exposing predicate methods from the PageObjects themselves the error messages are lost and all we get is `expected true, got false`. Including this module into your PageObject by adding `include CapybaraErrorIntel::DSL` after `include Capybara::DSL` will return the heuristic error messages.
6
6
 
7
7
  ## Example
8
8
 
@@ -76,9 +76,7 @@ end
76
76
  - `has_table?(locator, options={})`
77
77
 
78
78
 
79
- It should be rather trivial to add more of them like `has_css` etc. I will try
80
- to implement the rest in the near future but feel free to submit a pull
81
- request.
79
+ It should be rather trivial to add more of them. Please open an issue or submit a pull request if something you need is missing.
82
80
 
83
81
 
84
82
 
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+ require 'rubocop/rake_task'
3
4
 
5
+ RuboCop::RakeTask.new
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: [:spec, :rubocop]
data/bin/console CHANGED
@@ -1,12 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "capybara_error_intel"
3
+ require 'bundler/setup'
4
+ require 'capybara_error_intel'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
8
8
 
9
9
  # (If you use this, don't forget to add pry to your Gemfile!)
10
- require "pry"
10
+ require 'pry'
11
11
  Pry.start
12
-
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ['Dorian Karter']
10
10
  spec.email = ['jobs@doriankarter.com']
11
11
 
12
- spec.summary = %q{Provides Capybara's heuristic error messages for Page Objects}
13
- spec.description = %q{Capybara provides excellent error messages for its
12
+ spec.summary = 'Provides Capybara\'s heuristic error messages for Page Objects'
13
+ spec.description = 'Capybara provides excellent error messages for its
14
14
  built in predicate methods: has_selector?, has_text?,
15
15
  has_title? etc.. but when those are used from Page
16
16
  Objects while exposing predicate methods from the
@@ -19,12 +19,12 @@ Gem::Specification.new do |spec|
19
19
  Including this module into your PageObject by adding
20
20
  "include CapybaraErrorIntel::DSL" after
21
21
  "include Capybara::DSL" will return the heuristic
22
- error messages.}
22
+ error messages.'
23
23
  spec.homepage = 'https://github.com/dkarter/capybara_error_intel'
24
24
  spec.license = 'MIT'
25
25
 
26
26
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
27
- spec.require_paths = ["lib"]
27
+ spec.require_paths = ['lib']
28
28
 
29
29
  spec.add_development_dependency 'bundler', '~> 1.12'
30
30
  spec.add_development_dependency 'rake', '~> 10.0'
@@ -32,9 +32,13 @@ Gem::Specification.new do |spec|
32
32
  spec.add_development_dependency 'launchy', '~> 0'
33
33
  spec.add_development_dependency 'rack', '~> 1.6', '>= 1.6.4'
34
34
  spec.add_development_dependency 'rack-test', '~> 0.5', '>= 0.5.4'
35
- spec.add_development_dependency 'pry', '~> 0.10'
36
- spec.add_development_dependency 'pry-byebug', '~> 3.4'
35
+ spec.add_development_dependency 'pry'
36
+ spec.add_development_dependency 'pry-byebug'
37
+ spec.add_development_dependency 'rubocop'
38
+ spec.add_development_dependency 'cadre'
39
+ spec.add_development_dependency 'simplecov'
40
+ spec.add_development_dependency 'codeclimate-test-reporter'
37
41
 
38
- spec.add_runtime_dependency 'rspec', '~> 2.1'
42
+ spec.add_runtime_dependency 'rspec', '~> 2'
39
43
  spec.add_runtime_dependency 'capybara', '~> 2'
40
44
  end
@@ -5,6 +5,9 @@ require 'capybara/dsl'
5
5
  require 'capybara/rspec/matchers'
6
6
  require 'rspec'
7
7
 
8
+ # Provides Capybara::DSL predicate method wrappers that fail the test with heuristic
9
+ # Capybara errors when the result is `false`. Particularly useful when used
10
+ # inside page objects, allowing the user to expose predicate methods of their
11
+ # own.
8
12
  module CapybaraErrorIntel
9
-
10
13
  end
@@ -1,39 +1,40 @@
1
1
  module CapybaraErrorIntel
2
+ # Wraps Capybara::DSL
2
3
  module DSL
3
4
  def has_selector?(*args)
4
5
  matcher = has_selector(*args)
5
6
  match_or_error(matcher)
6
7
  end
7
8
 
8
- def has_css?(css, options={})
9
+ def has_css?(css, options = {})
9
10
  has_selector?(:css, css, options)
10
11
  end
11
12
 
12
- def has_button?(locator, options={})
13
+ def has_button?(locator, options = {})
13
14
  has_selector?(:button, locator, options)
14
15
  end
15
16
 
16
- def has_field?(locator, options={})
17
+ def has_field?(locator, options = {})
17
18
  has_selector?(:field, locator, options)
18
19
  end
19
20
 
20
- def has_xpath?(xpath, options={})
21
+ def has_xpath?(_xpath, options = {})
21
22
  has_selector?(:xpath, locator, options)
22
23
  end
23
24
 
24
- def has_checked_field?(locator, options={})
25
- has_selector?(:field, locator, options.merge(:checked => true))
25
+ def has_checked_field?(locator, options = {})
26
+ has_selector?(:field, locator, options.merge(checked: true))
26
27
  end
27
28
 
28
- def has_unchecked_field?(locator, options={})
29
- has_selector?(:field, locator, options.merge(:unchecked => true))
29
+ def has_unchecked_field?(locator, options = {})
30
+ has_selector?(:field, locator, options.merge(unchecked: true))
30
31
  end
31
32
 
32
- def has_select?(locator, options={})
33
+ def has_select?(locator, options = {})
33
34
  has_selector?(:select, locator, options)
34
35
  end
35
36
 
36
- def has_table?(locator, options={})
37
+ def has_table?(locator, options = {})
37
38
  has_selector?(:table, locator, options)
38
39
  end
39
40
 
@@ -41,7 +42,7 @@ module CapybaraErrorIntel
41
42
  matcher = has_text(*args)
42
43
  match_or_error(matcher)
43
44
  end
44
- alias_method :has_content?, :has_text?
45
+ alias has_content? has_text?
45
46
 
46
47
  def has_title?(title, options = {})
47
48
  matcher = has_title(title, options)
@@ -50,30 +51,30 @@ module CapybaraErrorIntel
50
51
 
51
52
  private
52
53
 
53
- def has_selector(*args)
54
- Capybara::RSpecMatchers::HaveSelector.new(*args)
55
- end
54
+ def has_selector(*args)
55
+ Capybara::RSpecMatchers::HaveSelector.new(*args)
56
+ end
56
57
 
57
- def has_text(*args)
58
- Capybara::RSpecMatchers::HaveText.new(*args)
59
- end
58
+ def has_text(*args)
59
+ Capybara::RSpecMatchers::HaveText.new(*args)
60
+ end
60
61
 
61
- def has_title(title, options)
62
- Capybara::RSpecMatchers::HaveTitle.new(title, options)
63
- end
62
+ def has_title(title, options)
63
+ Capybara::RSpecMatchers::HaveTitle.new(title, options)
64
+ end
64
65
 
65
- def match_or_error(matcher)
66
- matcher.matches?(Capybara.current_session) || handle_failure(matcher)
67
- end
66
+ def match_or_error(matcher)
67
+ matcher.matches?(Capybara.current_session) || handle_failure(matcher)
68
+ end
68
69
 
69
- def handle_failure(matcher)
70
- message = matcher.failure_message
70
+ def handle_failure(matcher)
71
+ message = matcher.failure_message
71
72
 
72
- if matcher.respond_to?(:diffable?) && matcher.diffable?
73
- RSpec::Expectations.fail_with message, matcher.expected, matcher.actual
74
- else
75
- RSpec::Expectations.fail_with message
76
- end
73
+ if matcher.respond_to?(:diffable?) && matcher.diffable?
74
+ RSpec::Expectations.fail_with message, matcher.expected, matcher.actual
75
+ else
76
+ RSpec::Expectations.fail_with message
77
77
  end
78
+ end
78
79
  end
79
80
  end
@@ -1,3 +1,3 @@
1
1
  module CapybaraErrorIntel
2
- VERSION = "1.0.0"
2
+ VERSION = '1.0.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capybara_error_intel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Karter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-09-19 00:00:00.000000000 Z
11
+ date: 2016-10-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,44 +116,100 @@ dependencies:
116
116
  name: pry
117
117
  requirement: !ruby/object:Gem::Requirement
118
118
  requirements:
119
- - - "~>"
119
+ - - ">="
120
120
  - !ruby/object:Gem::Version
121
- version: '0.10'
121
+ version: '0'
122
122
  type: :development
123
123
  prerelease: false
124
124
  version_requirements: !ruby/object:Gem::Requirement
125
125
  requirements:
126
- - - "~>"
126
+ - - ">="
127
127
  - !ruby/object:Gem::Version
128
- version: '0.10'
128
+ version: '0'
129
129
  - !ruby/object:Gem::Dependency
130
130
  name: pry-byebug
131
131
  requirement: !ruby/object:Gem::Requirement
132
132
  requirements:
133
- - - "~>"
133
+ - - ">="
134
134
  - !ruby/object:Gem::Version
135
- version: '3.4'
135
+ version: '0'
136
136
  type: :development
137
137
  prerelease: false
138
138
  version_requirements: !ruby/object:Gem::Requirement
139
139
  requirements:
140
- - - "~>"
140
+ - - ">="
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ - !ruby/object:Gem::Dependency
144
+ name: rubocop
145
+ requirement: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - ">="
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - ">="
155
+ - !ruby/object:Gem::Version
156
+ version: '0'
157
+ - !ruby/object:Gem::Dependency
158
+ name: cadre
159
+ requirement: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - ">="
162
+ - !ruby/object:Gem::Version
163
+ version: '0'
164
+ type: :development
165
+ prerelease: false
166
+ version_requirements: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
141
169
  - !ruby/object:Gem::Version
142
- version: '3.4'
170
+ version: '0'
171
+ - !ruby/object:Gem::Dependency
172
+ name: simplecov
173
+ requirement: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: !ruby/object:Gem::Requirement
181
+ requirements:
182
+ - - ">="
183
+ - !ruby/object:Gem::Version
184
+ version: '0'
185
+ - !ruby/object:Gem::Dependency
186
+ name: codeclimate-test-reporter
187
+ requirement: !ruby/object:Gem::Requirement
188
+ requirements:
189
+ - - ">="
190
+ - !ruby/object:Gem::Version
191
+ version: '0'
192
+ type: :development
193
+ prerelease: false
194
+ version_requirements: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '0'
143
199
  - !ruby/object:Gem::Dependency
144
200
  name: rspec
145
201
  requirement: !ruby/object:Gem::Requirement
146
202
  requirements:
147
203
  - - "~>"
148
204
  - !ruby/object:Gem::Version
149
- version: '2.1'
205
+ version: '2'
150
206
  type: :runtime
151
207
  prerelease: false
152
208
  version_requirements: !ruby/object:Gem::Requirement
153
209
  requirements:
154
210
  - - "~>"
155
211
  - !ruby/object:Gem::Version
156
- version: '2.1'
212
+ version: '2'
157
213
  - !ruby/object:Gem::Dependency
158
214
  name: capybara
159
215
  requirement: !ruby/object:Gem::Requirement
@@ -185,8 +241,10 @@ executables: []
185
241
  extensions: []
186
242
  extra_rdoc_files: []
187
243
  files:
244
+ - ".codeclimate.yml"
188
245
  - ".gitignore"
189
246
  - ".rspec"
247
+ - ".rubocop.yml"
190
248
  - ".travis.yml"
191
249
  - Gemfile
192
250
  - LICENSE.txt